mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-08-06 00:29:44 +02:00
(main): When make_dir_parents changes the current working
directory, give a diagnostic about each subsequent failure to create a dot-relative directory.
This commit is contained in:
+16
-1
@@ -87,6 +87,7 @@ main (int argc, char **argv)
|
||||
const char *verbose_fmt_string = NULL;
|
||||
int exit_status = EXIT_SUCCESS;
|
||||
int optc;
|
||||
bool cwd_not_restored;
|
||||
|
||||
initialize_main (&argc, &argv);
|
||||
program_name = argv[0];
|
||||
@@ -145,15 +146,29 @@ main (int argc, char **argv)
|
||||
umask (umask_value);
|
||||
}
|
||||
|
||||
/* FIXME: when we assume C99, declare this here. */
|
||||
cwd_not_restored = false;
|
||||
for (; optind < argc; ++optind)
|
||||
{
|
||||
bool ok;
|
||||
|
||||
if (cwd_not_restored && IS_RELATIVE_FILE_NAME (argv[optind]))
|
||||
{
|
||||
error (0, 0, _("unable to create relative-named directory, %s,"
|
||||
" due to prior failure to restore working directory"),
|
||||
quote (argv[optind]));
|
||||
exit_status = EXIT_FAILURE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (create_parents)
|
||||
{
|
||||
bool different_cwd;
|
||||
char *dir = argv[optind];
|
||||
ok = make_dir_parents (dir, newmode, parent_mode,
|
||||
-1, -1, true, verbose_fmt_string);
|
||||
-1, -1, true, verbose_fmt_string,
|
||||
&different_cwd);
|
||||
cwd_not_restored |= different_cwd;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user