(svn r10152) [0.5] -Fix: MorphOS interprets // as /../, so do not add any duplicate slashes (tokai).

This commit is contained in:
rubidium 2007-06-13 20:48:11 +00:00
parent 516a01c761
commit 95adb04eae
1 changed files with 6 additions and 0 deletions

6
unix.c
View File

@ -88,6 +88,12 @@ bool FiosIsValidFile(const char *path, const struct dirent *ent, struct stat *sb
/* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
if (FiosIsRoot(path)) {
snprintf(filename, lengthof(filename), "%s:%s", path, ent->d_name);
} else if (path[strlen(path) - 1] == PATHSEPCHAR) { // PATHSEP is only one byte
/* Paths with double PATHSEP like "directory//foobar.ext" won't work under MorphOS/AmigaOS
* (the extra slash is interpreted like ".." under UNIXes). UNIXes simply interpret double
* slash as single slash, so the adding of the PATHSEP further below could actually be
* removed. */
snprintf(filename, lengthof(filename), "%s%s", path, ent->d_name);
} else // XXX - only next line!
#endif
snprintf(filename, lengthof(filename), "%s" PATHSEP "%s", path, ent->d_name);