(STATUS_OPTION, STRING_OPTION): New enums.
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 19 Sep 2004 02:21:09 +0000 (02:21 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 19 Sep 2004 02:21:09 +0000 (02:21 +0000)
(long_options, main): Use them instead of magic numbers 2 and 1.
For --string, optarg can't possibly be NULL.

src/md5sum.c

index 4bf353db53c48eea2f1c06ffab0992338e9e6146..9a9bdb22365c46ff70832feb32e573033b7012f0 100644 (file)
@@ -101,12 +101,20 @@ static bool warn = false;
 /* The name this program was run with.  */
 char *program_name;
 
+/* For long options that have no equivalent short option, use a
+   non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
+enum
+{
+  STATUS_OPTION = CHAR_MAX + 1,
+  STRING_OPTION
+};
+
 static const struct option long_options[] =
 {
   { "binary", no_argument, 0, 'b' },
   { "check", no_argument, 0, 'c' },
-  { "status", no_argument, 0, 2 },
-  { "string", required_argument, 0, 1 },
+  { "status", no_argument, 0, STATUS_OPTION },
+  { "string", required_argument, 0, STRING_OPTION },
   { "text", no_argument, 0, 't' },
   { "warn", no_argument, 0, 'w' },
   { GETOPT_HELP_OPTION_DECL },
@@ -576,15 +584,10 @@ main (int argc, char **argv)
   while ((opt = getopt_long (argc, argv, "bctw", long_options, NULL)) != -1)
     switch (opt)
       {
-      case 0:                  /* long option */
-       break;
-      case 1: /* --string */
+      case STRING_OPTION:
        {
          if (string == NULL)
            string = xnmalloc (argc - 1, sizeof *string);
-
-         if (optarg == NULL)
-           optarg = "";
          string[n_strings++] = optarg;
        }
        break;
@@ -595,7 +598,7 @@ main (int argc, char **argv)
       case 'c':
        do_check = true;
        break;
-      case 2:
+      case STATUS_OPTION:
        status_only = true;
        warn = false;
        break;