commit - 50c63039ab458da77c04eca7fff565f780e6086a
commit + b25c983405c21750cf731190add53f19c1583109
blob - 3fbd42de54fd47f7f2f1ff8992151dd199cecdbd
blob + 516b436536204bd3220957d034540d1ae7ebf5e4
--- rover.c
+++ rover.c
}
free(marks->entries);
}
+
+static void message(const char *msg, color_t color);
/* Curses clean up. Must be called before exiting browser. */
static void
strcat(subpath, "/");
process_dir(pre, proc, pos, subpath);
}
- else
- proc(subpath);
+ else proc(subpath);
}
closedir(dp);
if (pos) pos(path);
for (i = 0; i < rover.marks.bulk; i++)
if (rover.marks.entries[i]) {
sprintf(path, "%s%s", rover.marks.dirpath, rover.marks.entries[i]);
- if (strchr(rover.marks.entries[i], '/'))
- process_dir(pre, proc, pos, path);
- else
- proc(path);
+ if (strchr(rover.marks.entries[i], '/')) {
+ if (!strncmp(path, CWD, strlen(path)))
+ message("Cannot copy/move directory inside itself.", RED);
+ else
+ process_dir(pre, proc, pos, path);
+ }
+ else proc(path);
}
}