From 5253e5dce47355d4f4490616bafbbabe1097e393 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 9 Jul 1997 14:00:27 +0000 Subject: [PATCH] Add comments. --- lib/makepath.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/makepath.c b/lib/makepath.c index e6e65f632a..17844318a5 100644 --- a/lib/makepath.c +++ b/lib/makepath.c @@ -210,6 +210,9 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing, saved_cwd = !save_cwd (&cwd); } + /* If save_cwd could not record the current directory, then don't + do the chdir optimization and resort to using full pathnames. */ + if (!saved_cwd) basename_dir = dirpath; @@ -258,6 +261,10 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing, leading_dirs = new; } + /* If we were able to save the initial working directory, + then we can use chdir to change into each directory before + creating an entry in that directory. This avoids making + stat and mkdir process O(n^2) file name components. */ if (saved_cwd && chdir (basename_dir) < 0) { error (0, errno, "cannot chdir to directory, %s", dirpath); -- 2.30.2