Simplify gpasswd's main():
Also split check_flags() out of main().
This commit is contained in:
parent
c81bf3e06f
commit
c919701466
@ -10,7 +10,7 @@
|
|||||||
update_group(). Split out from main() to simplify this (too) big
|
update_group(). Split out from main() to simplify this (too) big
|
||||||
function.
|
function.
|
||||||
* src/gpasswd.c: New functions: check_perms(), get_group(),
|
* src/gpasswd.c: New functions: check_perms(), get_group(),
|
||||||
change_passwd(). Split out of main() to simplify main().
|
change_passwd(), check_flags(). Split out of main() to simplify main().
|
||||||
|
|
||||||
2007-12-27 Nicolas François <nicolas.francois@centraliens.net>
|
2007-12-27 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
|
@ -88,6 +88,7 @@ static void usage (void);
|
|||||||
static RETSIGTYPE catch_signals (int killed);
|
static RETSIGTYPE catch_signals (int killed);
|
||||||
static int check_list (const char *users);
|
static int check_list (const char *users);
|
||||||
static void process_flags (int argc, char **argv);
|
static void process_flags (int argc, char **argv);
|
||||||
|
static void check_flags (int argc, int opt_index);
|
||||||
static void open_files (void);
|
static void open_files (void);
|
||||||
static void close_files (void);
|
static void close_files (void);
|
||||||
#ifdef SHADOWGRP
|
#ifdef SHADOWGRP
|
||||||
@ -265,6 +266,30 @@ static void process_flags (int argc, char **argv)
|
|||||||
usage ();
|
usage ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get the name of the group that is being affected. */
|
||||||
|
group = argv[optind];
|
||||||
|
|
||||||
|
check_flags (argc, optind);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* check_flags - check the validity of options
|
||||||
|
*/
|
||||||
|
static void check_flags (int argc, int opt_index)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Make sure exclusive flags are exclusive
|
||||||
|
*/
|
||||||
|
if (aflg + dflg + rflg + Rflg + (Aflg || Mflg) > 1)
|
||||||
|
usage ();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make sure one (and only one) group was provided
|
||||||
|
*/
|
||||||
|
if ((argc != (opt_index+1)) || (NULL == group)) {
|
||||||
|
usage ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -676,13 +701,6 @@ int main (int argc, char **argv)
|
|||||||
/* Parse the options */
|
/* Parse the options */
|
||||||
process_flags (argc, argv);
|
process_flags (argc, argv);
|
||||||
|
|
||||||
/*
|
|
||||||
* Make sure exclusive flags are exclusive
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (aflg + dflg + rflg + Rflg + (Aflg || Mflg) > 1)
|
|
||||||
usage ();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determine the name of the user that invoked this command. This
|
* Determine the name of the user that invoked this command. This
|
||||||
* is really hit or miss because there are so many ways that command
|
* is really hit or miss because there are so many ways that command
|
||||||
@ -701,14 +719,6 @@ int main (int argc, char **argv)
|
|||||||
}
|
}
|
||||||
myname = xstrdup (pw->pw_name);
|
myname = xstrdup (pw->pw_name);
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the name of the group that is being affected. The group entry
|
|
||||||
* will be completely replicated so it may be modified later on.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!(group = argv[optind]))
|
|
||||||
usage ();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Replicate the group so it can be modified later on.
|
* Replicate the group so it can be modified later on.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user