X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmakepath.c;h=422bcda82ac5c27113e04d6570b4d753b6bfa150;hb=2234a524956f7a24cd5d1396f0773d0583a5cca9;hp=0d1a1ef26abcc2353797e86b5a3914e9552de30f;hpb=48dbf2c191cd60b64354849d8e0a8fe4a7d613f2;p=gnulib.git diff --git a/lib/makepath.c b/lib/makepath.c index 0d1a1ef26..422bcda82 100644 --- a/lib/makepath.c +++ b/lib/makepath.c @@ -1,5 +1,7 @@ /* makepath.c -- Ensure that a directory path exists. - Copyright (C) 1990, 1997-1999, 2000, 2002-2003 Free Software Foundation, Inc. + + Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003 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 @@ -21,6 +23,8 @@ # include #endif +#include "makepath.h" + #include #include @@ -42,26 +46,15 @@ # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif -#if STDC_HEADERS -# include -#endif +#include -#if HAVE_ERRNO_H -# include -#endif +#include #ifndef errno extern int errno; #endif -#if HAVE_STRING_H -# include -#else -# include -# ifndef strchr -# define strchr index -# endif -#endif +#include #ifndef S_ISUID # define S_ISUID 04000 @@ -88,9 +81,6 @@ extern int errno; #define WX_USR (S_IWUSR | S_IXUSR) -/* Include this before libintl.h so we get our definition of PARAMS. */ -#include "makepath.h" - #include "gettext.h" #define _(msgid) gettext (msgid) @@ -106,10 +96,16 @@ extern int errno; Restore working directory. */ \ if (do_chdir) \ { \ - int _fail = restore_cwd (&cwd, NULL, NULL); \ + if (restore_cwd (&cwd) != 0) \ + { \ + int _saved_errno = errno; \ + error (0, errno, \ + _("failed to return to initial working directory")); \ + free_cwd (&cwd); \ + errno = _saved_errno; \ + return 1; \ + } \ free_cwd (&cwd); \ - if (_fail) \ - return 1; \ } \ } \ while (0) @@ -387,7 +383,7 @@ make_path (const char *argpath, *(p->dirname_end) = '\0'; if (chmod (dirpath, parent_mode)) { - error (0, errno, "cannot change permissions of %s", + error (0, errno, _("cannot change permissions of %s"), quote (dirpath)); retval = 1; }