From caf54306a311557434658a82d9df4c92b10e1784 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 18 Nov 2000 13:36:24 +0000 Subject: (main): With --parents, remove any trailing slashes from the argument to the final mkdir call. Required for NetBSD. --- src/mkdir.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/mkdir.c') diff --git a/src/mkdir.c b/src/mkdir.c index 398677faf..c597f35df 100644 --- a/src/mkdir.c +++ b/src/mkdir.c @@ -34,6 +34,8 @@ #define AUTHORS "David MacKenzie" +void strip_trailing_slashes (); + /* The name this program was run with. */ char *program_name; @@ -147,6 +149,17 @@ main (int argc, char **argv) fail = make_path (parents, parent_mode, parent_mode, -1, -1, 1, verbose_fmt_string); free (parents); + + /* If we're creating parent directories, then it's ok to remove + trailing slashes. In fact, *not* removing them would lead + to calling `mkdir ("dir/", mode)' for the command `mkdir -p dir/', + and such a call fails on NetBSD systems if `dir' doesn't already + exist. */ + /* An alternate approach would be to change make_path to interpret + an argument with a trailing slash as if it also had a trailing + `.'. In fact, that would be more consistent with POSIX, so + FIXME: some day. */ + strip_trailing_slashes (argv[optind]); } if (fail == 0) -- cgit v1.2.3-54-g00ecf