(svn r10152) [0.5] -Fix: MorphOS interprets // as /../, so do not add any duplicate slashes (tokai).
--- a/unix.c Wed Jun 13 20:30:48 2007 +0000
+++ b/unix.c Wed Jun 13 20:48:11 2007 +0000
@@ -88,6 +88,12 @@
/* 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);