forked from len0rd/rockbox
[BugFix] Multiboot Database duplicate files
When the sd card is mounted into the root namespace the database
picks up files through both paths
previously we hid the mounted drive but this causes issues with users
databases when the drive letter changes
Adds a way to keep track of volumes mounted in the root namespace
Hides the enumerated volume in root
Database:
we can just parse the root directory ('/') and get to any mounted
volume but we can also enumerate a volume in the root directory
when this occurs it leads to multiple entries since the files can
be reached through multiple paths ex, /Foo could also be /SD1/Foo
Instead we will attempt to rewrite the root with any non-hidden volumes
failing that just leave the paths alone
Change-Id: I7bdba8cfaf63902d2a3852d28484bcf8ca317ebd
This commit is contained in:
parent
ae01ea7fd9
commit
fdc3668a6a
11 changed files with 198 additions and 51 deletions
|
|
@ -63,6 +63,9 @@
|
|||
#ifndef dir_exists
|
||||
#define dir_exists FS_PREFIX(dir_exists)
|
||||
#endif
|
||||
#ifndef root_realpath
|
||||
#define root_realpath FS_PREFIX(root_realpath)
|
||||
#endif
|
||||
#endif /* !DIRFUNCTIONS_DEFINED */
|
||||
|
||||
#ifndef DIRENT_DEFINED
|
||||
|
|
@ -83,6 +86,9 @@ struct dirinfo
|
|||
#ifndef DIRFUNCTIONS_DECLARED
|
||||
/* TIP: set errno to zero before calling to see if anything failed */
|
||||
struct dirinfo dir_get_info(DIR *dirp, struct DIRENT *entry);
|
||||
const char* root_realpath(void);
|
||||
#endif /* !DIRFUNCTIONS_DECLARED */
|
||||
|
||||
|
||||
|
||||
#endif /* _DIR_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue