(send_signals): Don't check command line arguments here.
authorJim Meyering <jim@meyering.net>
Sat, 10 May 2003 15:45:00 +0000 (15:45 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 10 May 2003 15:45:00 +0000 (15:45 +0000)
(main): Check them here instead.  Handle argc < optind.

src/kill.c

index 32ae99b38a185c28a929a2877e4c92caa1d09f34..cd33366d14248a213e7641e0abb5c06aa786abe3 100644 (file)
@@ -259,12 +259,6 @@ send_signals (int signum, char *const *argv)
   int status = EXIT_SUCCESS;
   char const *arg = *argv;
 
-  if (! arg)
-    {
-      error (0, 0, _("missing operand after `%s'"), argv[-1]);
-      usage (EXIT_FAILURE);
-    }
-
   do
     {
       char *endp;
@@ -370,7 +364,13 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
+  if ( ! list && argc <= optind)
+    {
+      error (0, 0, _("no process ID specified"));
+      usage (EXIT_FAILURE);
+    }
+
   return (list
-         ? list_signals (table, optind == argc ? NULL : argv + optind)
-         : send_signals (signum, argv + optind));
+         ? list_signals (table, optind < argc ? argv + optind : NULL)
+         : send_signals (signum, argv));
 }