X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmakepath.c;h=f2dfe8891411e582f61f8a7cee175f538b5aee71;hb=be1f94e3d6e1f561cb62a73e26e40c7051d966d9;hp=0d1a1ef26abcc2353797e86b5a3914e9552de30f;hpb=48dbf2c191cd60b64354849d8e0a8fe4a7d613f2;p=gnulib.git diff --git a/lib/makepath.c b/lib/makepath.c index 0d1a1ef26..f2dfe8891 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 @@ -46,9 +48,7 @@ # include #endif -#if HAVE_ERRNO_H -# include -#endif +#include #ifndef errno extern int errno; @@ -88,7 +88,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" @@ -106,10 +105,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 +392,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; }