From 8c10d25fd0e66bbdd25160a97a06aac8363dce2f Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 28 Sep 2002 07:51:17 +0000 Subject: Fix things so `mkdir -p' can create very deep directories, e.g., mkdir -p $(perl -e 'print "a/" x 40000') now works. (main): For --parents (-p), call make_path with the entire directory name, so we don't ever require that file operations like stat or chmod be performed on the entire command line argument. --- src/mkdir.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mkdir.c b/src/mkdir.c index 5df9c1849..382d8027b 100644 --- a/src/mkdir.c +++ b/src/mkdir.c @@ -149,13 +149,11 @@ main (int argc, char **argv) if (create_parents) { - char *parents = dir_name (argv[optind]); - fail = make_path (parents, parent_mode, parent_mode, + char *dir = argv[optind]; + fail = make_path (dir, newmode, parent_mode, -1, -1, 1, verbose_fmt_string); - free (parents); } - - if (fail == 0) + else { const char *dir = argv[optind]; int dir_created; -- cgit v1.2.3-54-g00ecf