diff options
author | Thomas Martitz <kugel@rockbox.org> | 2014-12-09 23:20:00 +0100 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2014-12-09 23:20:00 +0100 |
commit | a2136a811f912ac5d7a4f7f07a5c303fac6051a2 (patch) | |
tree | 4655f5f4846ffec0f2b6a88f03fc7475d31d2b92 /firmware/target/hosted | |
parent | 9454ad4c9780230667a7f32d2b8b201342509d91 (diff) | |
download | rockbox-a2136a811f912ac5d7a4f7f07a5c303fac6051a2.tar.gz rockbox-a2136a811f912ac5d7a4f7f07a5c303fac6051a2.zip |
ypr0: Get it up and running again
7d1a47cf13 introduced a regression that broke it completely so that
it couldn't boot into the main menu anymore. It had a faulty call to
get_volume_name() which made handle_special_links() act up. This broke
every open() and opendir() (and friends) library calls.
Change-Id: I399960ca8fb6e3bcc1f25c9b4a3c19a6d28b77bd
Diffstat (limited to 'firmware/target/hosted')
-rw-r--r-- | firmware/target/hosted/filesystem-app.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/firmware/target/hosted/filesystem-app.c b/firmware/target/hosted/filesystem-app.c index 93fadc6d6e..d73704737a 100644 --- a/firmware/target/hosted/filesystem-app.c +++ b/firmware/target/hosted/filesystem-app.c | |||
@@ -69,18 +69,22 @@ static const char *handle_special_links(const char* link, unsigned flags, | |||
69 | { | 69 | { |
70 | (void) flags; | 70 | (void) flags; |
71 | char vol_string[VOL_MAX_LEN + 1]; | 71 | char vol_string[VOL_MAX_LEN + 1]; |
72 | int len = get_volume_name(-1, vol_string); | 72 | int len; |
73 | 73 | ||
74 | /* link might be passed with or without HOME_DIR expanded. To handle | 74 | for (int i = 1; i < NUM_VOLUMES; i++) |
75 | * both perform substring matching (VOL_NAMES is unique enough) */ | ||
76 | const char *begin = strstr(link, vol_string); | ||
77 | if (begin) | ||
78 | { | 75 | { |
79 | /* begin now points to the start of vol_string within link, | 76 | len = get_volume_name(i, vol_string); |
80 | * we want to copy the remainder of the paths, prefixed by | 77 | /* link might be passed with or without HOME_DIR expanded. To handle |
81 | * the actual mount point (the remainder might be "") */ | 78 | * both perform substring matching (VOL_NAMES is unique enough) */ |
82 | snprintf(buf, bufsize, MULTIDRIVE_DIR"%s", begin + len); | 79 | const char *begin = strstr(link, vol_string); |
83 | return buf; | 80 | if (begin) |
81 | { | ||
82 | /* begin now points to the start of vol_string within link, | ||
83 | * we want to copy the remainder of the paths, prefixed by | ||
84 | * the actual mount point (the remainder might be "") */ | ||
85 | snprintf(buf, bufsize, MULTIDRIVE_DIR"%s", begin + len); | ||
86 | return buf; | ||
87 | } | ||
84 | } | 88 | } |
85 | 89 | ||
86 | return link; | 90 | return link; |