From cc27b86c6046e0144b7a8491e51ca63463ac4633 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 2 Dec 2000 13:20:37 +0000 Subject: (main): Remove any trailing slash unconditionally. Reported by Volker Borchert. --- src/mkdir.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/mkdir.c') 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) -- cgit v1.2.3-54-g00ecf