summaryrefslogtreecommitdiff
path: root/firmware/common
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/common')
-rw-r--r--firmware/common/dir_uncached.c30
-rw-r--r--firmware/common/dircache.c3
-rw-r--r--firmware/common/file.c1
3 files changed, 3 insertions, 31 deletions
diff --git a/firmware/common/dir_uncached.c b/firmware/common/dir_uncached.c
index dd157f0ade..ef9ce6f0af 100644
--- a/firmware/common/dir_uncached.c
+++ b/firmware/common/dir_uncached.c
@@ -35,36 +35,6 @@
35 35
36static DIR_UNCACHED opendirs[MAX_OPEN_DIRS]; 36static DIR_UNCACHED opendirs[MAX_OPEN_DIRS];
37 37
38#ifdef HAVE_MULTIVOLUME
39
40/* returns on which volume this is, and copies the reduced name
41 (sortof a preprocessor for volume-decorated pathnames) */
42int strip_volume(const char* name, char* namecopy)
43{
44 int volume = 0;
45 const char *temp = name;
46
47 while (*temp == '/') /* skip all leading slashes */
48 ++temp;
49
50 if (*temp && !strncmp(temp, VOL_NAMES, VOL_ENUM_POS))
51 {
52 temp += VOL_ENUM_POS; /* behind special name */
53 volume = atoi(temp); /* number is following */
54 temp = strchr(temp, '/'); /* search for slash behind */
55 if (temp != NULL)
56 name = temp; /* use the part behind the volume */
57 else
58 name = "/"; /* else this must be the root dir */
59 }
60
61 strlcpy(namecopy, name, MAX_PATH);
62
63 return volume;
64}
65#endif /* #ifdef HAVE_MULTIVOLUME */
66
67
68#ifdef HAVE_HOTSWAP 38#ifdef HAVE_HOTSWAP
69// release all dir handles on a given volume "by force", to avoid leaks 39// release all dir handles on a given volume "by force", to avoid leaks
70int release_dirs(int volume) 40int release_dirs(int volume)
diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c
index e846d55452..f844e548f6 100644
--- a/firmware/common/dircache.c
+++ b/firmware/common/dircache.c
@@ -182,6 +182,9 @@ static bool check_event_queue(void)
182static int dircache_scan(IF_MV2(int volume,) struct travel_data *td) 182static int dircache_scan(IF_MV2(int volume,) struct travel_data *td)
183{ 183{
184#ifdef SIMULATOR 184#ifdef SIMULATOR
185#ifdef HAVE_MULTIVOLUME
186 (void)volume;
187#endif
185 while ( ( td->entry = readdir_uncached(td->dir) ) ) 188 while ( ( td->entry = readdir_uncached(td->dir) ) )
186#else 189#else
187 while ( (fat_getnext(td->dir, &td->entry) >= 0) && (td->entry.name[0])) 190 while ( (fat_getnext(td->dir, &td->entry) >= 0) && (td->entry.name[0]))
diff --git a/firmware/common/file.c b/firmware/common/file.c
index 770930d80a..b7bcbaba46 100644
--- a/firmware/common/file.c
+++ b/firmware/common/file.c
@@ -795,4 +795,3 @@ int release_files(int volume)
795 return closed; /* return how many we did */ 795 return closed; /* return how many we did */
796} 796}
797#endif /* #ifdef HAVE_HOTSWAP */ 797#endif /* #ifdef HAVE_HOTSWAP */
798