X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmakepath.c;h=bebd245cdf0ce46f25bdd0d96418ec3882beae5a;hb=774a9d80728c1f9bb87f44a1296552fd899031d4;hp=55011d58b9f83a9f43998e2a151f35066f613f42;hpb=739bbd820148bef8e3d34bc525e13f36430f7d5f;p=gnulib.git diff --git a/lib/makepath.c b/lib/makepath.c index 55011d58b..bebd245cd 100644 --- a/lib/makepath.c +++ b/lib/makepath.c @@ -1,5 +1,5 @@ /* makepath.c -- Ensure that a directory path exists. - Copyright (C) 1990, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -115,11 +115,10 @@ extern int errno; #endif #include "save-cwd.h" +#include "dirname.h" #include "error.h" #include "quote.h" -void strip_trailing_slashes (); - #define CLEANUP_CWD \ do \ { \ @@ -148,10 +147,10 @@ void strip_trailing_slashes (); function creates DIR and to zero otherwise. Give a diagnostic and return non-zero if DIR cannot be created or cannot be determined to exist already. Use DIRPATH in any diagnostic, not DIR. - Note that if DIR already exists, this function will return zero - (indicating success) and will set *CREATED_DIR_P to zero. */ + Note that if DIR already exists, this function returns zero + (indicating success) and sets *CREATED_DIR_P to zero. */ -static int +int make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p) { int fail = 0; @@ -196,7 +195,6 @@ make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p) } /* Ensure that the directory ARGPATH exists. - Remove any trailing slashes from ARGPATH before calling this function. Create any leading directories that don't already exist, with permissions PARENT_MODE. @@ -340,7 +338,7 @@ make_path (const char *argpath, stat and mkdir process O(n^2) file name components. */ if (do_chdir && chdir (basename_dir) < 0) { - error (0, errno, _("cannot chdir to directory, %s"), + error (0, errno, _("cannot chdir to directory %s"), quote (dirpath)); CLEANUP; return 1; @@ -370,7 +368,7 @@ make_path (const char *argpath, umask (oldmask); if (verbose_fmt_string != NULL) - error (0, 0, verbose_fmt_string, dirpath); + error (0, 0, verbose_fmt_string, quote (dirpath)); if (owner != (uid_t) -1 || group != (gid_t) -1) {