1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-20 18:56:39 +02:00

(main): Adjust to new modechange API.

Also, free the mode_change object when done.
This commit is contained in:
Paul Eggert
2005-04-28 16:31:09 +00:00
parent 30f5286c50
commit b1fdaf5ac7
4 changed files with 25 additions and 30 deletions

View File

@@ -353,12 +353,11 @@ main (int argc, char **argv)
if (specified_mode)
{
struct mode_change *change = mode_compile (specified_mode, 0);
if (change == MODE_INVALID)
struct mode_change *change = mode_compile (specified_mode);
if (!change)
error (EXIT_FAILURE, 0, _("invalid mode %s"), quote (specified_mode));
else if (change == MODE_MEMORY_EXHAUSTED)
xalloc_die ();
mode = mode_adjust (0, change);
mode = mode_adjust (0, change, 0);
mode_free (change);
}
get_ids ();

View File

@@ -125,22 +125,24 @@ main (int argc, char **argv)
}
newmode = S_IRWXUGO;
if (specified_mode)
{
struct mode_change *change = mode_compile (specified_mode, MODE_MASK_ALL);
if (change == MODE_INVALID)
error (EXIT_FAILURE, 0, _("invalid mode %s"), quote (specified_mode));
else if (change == MODE_MEMORY_EXHAUSTED)
xalloc_die ();
newmode = mode_adjust (newmode, change);
}
if (specified_mode || create_parents)
{
mode_t umask_value = umask (0);
if (! specified_mode)
umask (umask_value);
parent_mode = (S_IRWXUGO & ~umask_value) | (S_IWUSR | S_IXUSR);
if (specified_mode)
{
struct mode_change *change = mode_compile (specified_mode);
if (!change)
error (EXIT_FAILURE, 0, _("invalid mode %s"),
quote (specified_mode));
newmode = mode_adjust (S_IRWXUGO, change, umask_value);
mode_free (change);
}
else
umask (umask_value);
}
for (; optind < argc; ++optind)

View File

@@ -75,7 +75,6 @@ int
main (int argc, char **argv)
{
mode_t newmode;
struct mode_change *change;
const char *specified_mode;
int exit_status = EXIT_SUCCESS;
int optc;
@@ -116,13 +115,11 @@ main (int argc, char **argv)
newmode = (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (specified_mode)
{
change = mode_compile (specified_mode, MODE_MASK_ALL);
if (change == MODE_INVALID)
struct mode_change *change = mode_compile (specified_mode);
if (!change)
error (EXIT_FAILURE, 0, _("invalid mode"));
else if (change == MODE_MEMORY_EXHAUSTED)
xalloc_die ();
newmode = mode_adjust (newmode, change);
umask (0);
newmode = mode_adjust (newmode, change, umask (0));
mode_free (change);
}
for (; optind < argc; ++optind)

View File

@@ -88,7 +88,6 @@ int
main (int argc, char **argv)
{
mode_t newmode;
struct mode_change *change;
const char *specified_mode;
int optc;
int expected_operands;
@@ -121,13 +120,11 @@ main (int argc, char **argv)
newmode = (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (specified_mode)
{
change = mode_compile (specified_mode, MODE_MASK_ALL);
if (change == MODE_INVALID)
struct mode_change *change = mode_compile (specified_mode);
if (!change)
error (EXIT_FAILURE, 0, _("invalid mode"));
else if (change == MODE_MEMORY_EXHAUSTED)
xalloc_die ();
newmode = mode_adjust (newmode, change);
umask (0);
newmode = mode_adjust (newmode, change, umask (0));
mode_free (change);
}
/* If the number of arguments is 0 or 1,