diff --git a/mlist.c b/mlist.c index 79bf286..725a76d 100644 --- a/mlist.c +++ b/mlist.c @@ -168,6 +168,19 @@ listdir(char *dir) void listarg(char *arg) { + char *s, *t; + + // squeeze slashes + s = t = arg; + while ((*s++ = *t)) + if (*t++ == '/') + while (*t == '/') + t++; + // remove trailing slashes + s--; + while (*--s == '/') + *s = 0; + struct stat st; if (stat(arg, &st) < 0) return;