1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-08-12 12:00:21 +02:00

(make_dir_parents): New parameter: different_working_dir,

to tell caller if/when we change the working directory and are
unable to return to the initial one.
This commit is contained in:
Jim Meyering
2005-06-13 10:15:19 +00:00
parent 26438e44cd
commit ecd375b64a
+7 -1
View File
@@ -63,6 +63,7 @@
_("failed to return to initial working directory")); \
free_cwd (&cwd); \
errno = _saved_errno; \
*different_working_dir = true; \
return false; \
} \
free_cwd (&cwd); \
@@ -144,6 +145,9 @@ make_dir (char const *dir, char const *fulldir, mode_t mode,
with the name of the directory that was just made as an argument.
If PRESERVE_EXISTING is true and ARG is an existing directory,
then do not attempt to set its permissions and ownership.
Upon return, set *DIFFERENT_WORKING_DIR to true if this function
has changed the current working directory and is unable to restore
it to its initial state.
Return true iff ARG exists as a directory with the proper
ownership and permissions when done. */
@@ -155,10 +159,12 @@ make_dir_parents (char const *arg,
uid_t owner,
gid_t group,
bool preserve_existing,
char const *verbose_fmt_string)
char const *verbose_fmt_string,
bool *different_working_dir)
{
struct stat stats;
bool retval = true;
*different_working_dir = false;
if (stat (arg, &stats) != 0)
{