]> granicus.if.org Git - shadow/commitdiff
* NEWS, src/gpasswd.c: Use getopt_long instead of getopt. Added
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Fri, 22 Aug 2008 02:28:15 +0000 (02:28 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Fri, 22 Aug 2008 02:28:15 +0000 (02:28 +0000)
support for long options --add (-a), --delete (-d),
--remove-password (-r), --restrict (-R), --administrators (-A),
and --members (-M)
* man/gpasswd.1.xml: Document the new long options.
* src/gpasswd.c: The sgrp structure is only used if SHADOWGRP is
defined.

ChangeLog
NEWS
man/gpasswd.1.xml
src/gpasswd.c

index 33bb208fa4ff6d627df231dcc6748d5812665485..60d611008224635e3fb0ca2ed2e41e5288bf5d95 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-08-20  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * NEWS, src/gpasswd.c: Use getopt_long instead of getopt. Added
+       support for long options --add (-a), --delete (-d),
+       --remove-password (-r), --restrict (-R), --administrators (-A),
+       and --members (-M) 
+       * man/gpasswd.1.xml: Document the new long options.
+       * src/gpasswd.c: The sgrp structure is only used if SHADOWGRP is
+       defined.
+
 2008-08-18  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/grpck.c: Added function fail_exit(). Check failure to unlock
diff --git a/NEWS b/NEWS
index 4b4f51fe5d953a360d75808e91949b49d31b024e..16af8c04af46c28729900e81055d0d629cd4289a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,10 @@ shadow-4.1.2.1 -> shadow-4.1.3                                         UNRELEASED
 - packaging
   * Added support for OpenPAM.
 
+- gpasswd
+  * Added support for long options --add (-a), --delete (-d),
+    --remove-password (-r), --restrict (-R), --administrators (-A), and
+    --members (-M).
 - groupmems
   * Check if user exist before they are added to groups.
   * Avoid segfault in case the specified group does not exist in /etc/group.
index b57312e5e02565aa3d1d57e3bb147a3dbb5c1c35..819ee1ebdaa34d707e0db9b8bad35b34f58cb413 100644 (file)
@@ -91,7 +91,7 @@
     <variablelist remap='IP'>
       <varlistentry>
        <term>
-         <option>-a</option> <replaceable>user</replaceable>
+         <option>-a</option>, <option>--add</option> <replaceable>user</replaceable>
        </term>
        <listitem>
          <para>
     <variablelist remap='IP'>
       <varlistentry>
        <term>
-         <option>-d</option> <replaceable>user</replaceable>
+         <option>-d</option>, <option>--delete</option> <replaceable>user</replaceable>
        </term>
        <listitem>
          <para>
     <variablelist remap='IP'>
       <varlistentry>
        <term>
-         <option>-r</option>
+         <option>-r</option>, <option>--remove-password</option>
        </term>
        <listitem>
          <para>
     <variablelist remap='IP'>
       <varlistentry>
        <term>
-         <option>-R</option>
+         <option>-R</option>, <option>--restrict</option>
        </term>
        <listitem>
          <para>
     <variablelist remap='IP' condition="gshadow">
       <varlistentry>
        <term>
-         <option>-A</option> <replaceable>user</replaceable>,...
+         <option>-A</option>, <option>--administrators</option> <replaceable>user</replaceable>,...
        </term>
        <listitem>
          <para>
     <variablelist remap='IP'>
       <varlistentry>
        <term>
-         <option>-M</option> <replaceable>user</replaceable>,...
+         <option>-M</option>, <option>--members</option> <replaceable>user</replaceable>,...
        </term>
        <listitem>
          <para>
index ba11e7b1fd8775b221251f674801190457e40be2..9e1edb470caa55871a473dffe73736abad90691e 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <getopt.h>
 #include <grp.h>
 #include <pwd.h>
 #include <signal.h>
@@ -244,8 +245,18 @@ static void failure (void)
 static void process_flags (int argc, char **argv)
 {
        int flag;
-
-       while ((flag = getopt (argc, argv, "a:A:d:gM:rR")) != EOF) {
+       int option_index = 0;
+       static struct option long_options[] = {
+               {"add", required_argument, NULL, 'a'},
+               {"delete", required_argument, NULL, 'd'},
+               {"remove-password", no_argument, NULL, 'r'},
+               {"restrict", no_argument, NULL, 'R'},
+               {"administrators", required_argument, NULL, 'A'},
+               {"members", required_argument, NULL, 'M'},
+               {NULL, 0, NULL, '\0'}
+               };
+
+       while ((flag = getopt_long (argc, argv, "a:A:d:gM:rR", long_options, &option_index)) != -1) {
                switch (flag) {
                case 'a':       /* add a user */
                        user = optarg;
@@ -605,7 +616,9 @@ static void get_group (struct group *gr)
 #endif
 {
        struct group const*tmpgr = NULL;
+#ifdef SHADOWGRP
        struct sgrp const*tmpsg = NULL;
+#endif
 
        if (gr_open (O_RDONLY) == 0) {
                fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());