diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mkdir.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/mkdir.c b/src/mkdir.c index c9d03eddd..3a92cfc4f 100644 --- a/src/mkdir.c +++ b/src/mkdir.c @@ -143,23 +143,19 @@ main (int argc, char **argv) for (; optind < argc; ++optind) { int fail = 0; + + /* Remove any trailing slashes. Not removing them would lead to calling + `mkdir ("dir/", mode)' for e.g., the commands `mkdir dir/' and + `mkdir -p dir/', and such a call fails on NetBSD systems when `dir' + doesn't already exist. */ + strip_trailing_slashes (argv[optind]); + if (create_parents) { char *parents = dir_name (argv[optind]); 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) |