summaryrefslogtreecommitdiff
path: root/lib/makepath.c
AgeCommit message (Collapse)Author
1999-01-02Include locale.h and libintl.h, and define `_()'.Jim Meyering
Mark translatable strings.
1999-01-02(make_dir): New function, factored out of make_path.Jim Meyering
(make_path): Use make_dir rather than open-coding it twice. This effectively reverses the order of the latter pair of stat/mkdir calls and fixes a race condition bug whereby one of two concurrent `mkdir -p' processes could fail with EEXIST.
1998-02-11Add my comment from ChangeLog entry for gkm's change.Jim Meyering
1998-01-10(make_path): Reformat 3 if-stmts to test `if (newly_created_dir)' only once.Jim Meyering
Suggestion from Andreas Schwab.
1998-01-10(make_path): Put only newly created directories on the LEADING_DIRS list.Jim Meyering
1998-01-02(make_path): Try to change ownership only if we've just created theJim Meyering
directory. Fix latent bug (s/&&/||/ in two places -- also, note that it could not be exercised via install or mkdir) whereby chown would not be invoked when only one of owner/group is not -1.
1997-12-28(make_path) [!__STDC__]: Remove K&R-style definition.Jim Meyering
1997-10-06(make_path): Print verbose message using fprintf, not error.Jim Meyering
1997-10-06(make_path): Print message IFF the directory wasJim Meyering
just created and the format string is non-NULL.
1997-07-09(make_path): Chdir to `/' before starting if necessary.Jim Meyering
Call save_cwd before while loop rather than from first iteration inside it.
1997-07-09Add comments.Jim Meyering
1997-07-01(make_path): Reorder stat-then-mkdir-if-missingJim Meyering
calls so that mkdir is called first. Before make_path would first `stat' a directory, then call mkdir if it didn't exist. But if some other process created the directory between the stat & mkdir, the mkdir would fail with EEXIST. Diagnosis and suggestion from Greg McGary.
1997-06-15Rewrite using save-cwd.c and chdir to remove quadratic component of complexity.Jim Meyering
Before, it processed O(n^2) directory name components via stat and mkdir. Now it's O(n). This makes mkdir -p a lot more efficient when creating directories with very many components. On a Linux 2.0.30 ext2fs filesystem this command: mkdir -p `perl -e 'print "a/" x 500'` now runs in 0.77 seconds (user+sys). Contrast that with the 9.5(!) seconds it took before.
1996-11-04libitizeJim Meyering
1996-09-28.Jim Meyering
1996-07-15update FSF address in copyrightJim Meyering
1996-07-14Remove my address.Jim Meyering
1995-05-19No longer include safe-l?stat.h.Jim Meyering
1995-05-13(make_path): Use stat, not SAFE_STAT.Jim Meyering
Use strchr, not index. Adjust defines accordingly.
1994-11-06merge with 1.12Jim Meyering
1994-11-04Include makepath.h.Jim Meyering
Add an argument: PRESERVE_EXISTING. Declare char* arguments const.
1994-10-02merge with 3.9hJim Meyering
1994-08-27.Jim Meyering
1994-08-27.Jim Meyering
1994-07-30Use SAFE_STAT instead of stat to avoid unnecessary failureJim Meyering
on systems for which stat can return EINTR.
1994-07-03.Jim Meyering
1993-10-12merge with 3.8.4cJim Meyering
1993-10-12merge with 3.8.4bJim Meyering
1993-10-06merge with 3.8.3bJim Meyering
1993-10-06merge with 3.8.3aJim Meyering
1993-05-13merge with 3.5.4Jim Meyering
1993-05-02merge with 3.5.1Jim Meyering
1993-04-04(make_path): Explicitly cast alloca return value to (char *).Jim Meyering
1993-03-29merge with 3.4.1Jim Meyering
1992-10-31Add parentheses to expressions like (c = *p++) as per suggestionJim Meyering
from gcc -Wall.
1992-10-31Initial revisionJim Meyering