]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
maint: prefer 'return status;' to 'exit (status);' in 'main'
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 8 Sep 2014 23:31:14 +0000 (16:31 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 9 Sep 2014 03:48:44 +0000 (20:48 -0700)
* build-aux/gen-single-binary.sh: Don't use ATTRIBUTE_NORETURN
for main functions.
* src/base64.c, src/basename.c, src/cat.c, src/chcon.c, src/chgrp.c:
* src/chmod.c, src/chown.c, src/chroot.c, src/cksum.c, src/comm.c:
* src/cp.c, src/csplit.c, src/cut.c, src/date.c, src/dd.c, src/df.c:
* src/dircolors.c, src/dirname.c, src/du.c, src/echo.c, src/env.c:
* src/expand.c, src/expr.c, src/factor.c, src/fmt.c, src/fold.c:
* src/getlimits.c, src/groups.c, src/head.c, src/hostid.c:
* src/hostname.c, src/id.c, src/install.c, src/join.c, src/kill.c:
* src/link.c, src/ln.c, src/logname.c, src/ls.c, src/make-prime-list.c:
* src/md5sum.c, src/mkdir.c, src/mkfifo.c, src/mknod.c, src/mktemp.c:
* src/mv.c, src/nice.c, src/nl.c, src/nohup.c, src/nproc.c:
* src/numfmt.c, src/od.c, src/paste.c, src/pathchk.c, src/pinky.c:
* src/pr.c, src/printenv.c, src/printf.c, src/ptx.c, src/pwd.c:
* src/readlink.c, src/realpath.c, src/rm.c, src/rmdir.c, src/runcon.c:
* src/seq.c, src/shred.c, src/shuf.c, src/sleep.c, src/sort.c:
* src/split.c, src/stat.c, src/stdbuf.c, src/stty.c, src/sum.c:
* src/sync.c, src/tac.c, src/tail.c, src/tee.c, src/timeout.c:
* src/touch.c, src/tr.c, src/true.c, src/truncate.c, src/tsort.c:
* src/tty.c, src/uname.c, src/unexpand.c, src/uniq.c, src/unlink.c:
* src/uptime.c, src/users.c, src/wc.c, src/who.c, src/whoami.c:
In 'main' functions, Prefer 'return status;' to 'exit (status);'.
* src/coreutils-arch.c (_single_binary_main_uname)
(_single_binary_main_arch):
* src/coreutils-dir.c, src/coreutils-vdir.c (_single_binary_main_ls)
(_single_binary_main_dir, _single_binary_main_vdir):
Omit ATTRIBUTE_NORETURN.  Return a value.
* src/coreutils.c (SINGLE_BINARY_PROGRAM): Omit ATTRIBUTE_NORETURN.
(launch_program): Now static.
* src/dd.c (finish_up): New function.
(quit, main): Use it.
* src/getlimits.c (main): Return a proper exit status.
* src/test.c (test_main_return): New macro.
(main): Use it.
* src/logname.c, src/nohup.c, src/whoami.c:
Use 'error' to simplify exit status in 'main' function.
* src/yes.c (main): Use 'return' rather than 'error' to exit,
so that GCC doesn't suggest ATTRIBUTE_NORETURN.

102 files changed:
build-aux/gen-single-binary.sh
src/base64.c
src/basename.c
src/cat.c
src/chcon.c
src/chgrp.c
src/chmod.c
src/chown.c
src/chroot.c
src/cksum.c
src/comm.c
src/coreutils-arch.c
src/coreutils-dir.c
src/coreutils-vdir.c
src/coreutils.c
src/cp.c
src/csplit.c
src/cut.c
src/date.c
src/dd.c
src/df.c
src/dircolors.c
src/dirname.c
src/du.c
src/echo.c
src/env.c
src/expand.c
src/expr.c
src/factor.c
src/fmt.c
src/fold.c
src/getlimits.c
src/groups.c
src/head.c
src/hostid.c
src/hostname.c
src/id.c
src/install.c
src/join.c
src/kill.c
src/link.c
src/ln.c
src/logname.c
src/ls.c
src/make-prime-list.c
src/md5sum.c
src/mkdir.c
src/mkfifo.c
src/mknod.c
src/mktemp.c
src/mv.c
src/nice.c
src/nl.c
src/nohup.c
src/nproc.c
src/numfmt.c
src/od.c
src/paste.c
src/pathchk.c
src/pinky.c
src/pr.c
src/printenv.c
src/printf.c
src/ptx.c
src/pwd.c
src/readlink.c
src/realpath.c
src/rm.c
src/rmdir.c
src/runcon.c
src/seq.c
src/shred.c
src/shuf.c
src/sleep.c
src/sort.c
src/split.c
src/stat.c
src/stdbuf.c
src/stty.c
src/sum.c
src/sync.c
src/tac.c
src/tail.c
src/tee.c
src/test.c
src/timeout.c
src/touch.c
src/tr.c
src/true.c
src/truncate.c
src/tsort.c
src/tty.c
src/uname.c
src/unexpand.c
src/uniq.c
src/unlink.c
src/uptime.c
src/users.c
src/wc.c
src/who.c
src/whoami.c
src/yes.c

index a2423e60d7173aa17dc4fb448e247d9398de243b..1128f40c6e9315f540420489af2fdbd6a2831f63 100755 (executable)
@@ -91,8 +91,8 @@ for cmd in $ALL_PROGRAMS; do
   # CFLAGS
   # Hack any other program defining a main() replacing its main by
   # _single_binary_main_$PROGRAM_NAME.
-  echo "${base}_CFLAGS = \"-Dmain=_single_binary_main_${cmd}(int, char**) " \
-       "ATTRIBUTE_NORETURN; int _single_binary_main_${cmd}\" " \
+  echo "${base}_CFLAGS = \"-Dmain=_single_binary_main_${cmd} (int, char **);" \
+       " int _single_binary_main_${cmd}\" " \
        "-Dusage=_usage_${cmd} \$(src_coreutils_CFLAGS)"
   var=src_${cmd}_CFLAGS
   eval "value=\$$var"
index b065604380be29d9bbe4c24eaf6527c2d89634c1..7b4ffdaebf84f0313967c7b25f464928a1a11de4 100644 (file)
@@ -321,5 +321,5 @@ main (int argc, char **argv)
         error (EXIT_FAILURE, errno, "%s", infile);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 95215399409a9b4e4c2f16a97e5dc6ff52af059e..9bd54d5f318a196a1033f51017dfd518e1846f98 100644 (file)
@@ -185,5 +185,5 @@ main (int argc, char **argv)
     perform_basename (argv[optind],
                       optind + 2 == argc ? argv[optind + 1] : NULL, use_nuls);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 8aef79fa029a955353e46a2bed38363b92b1a93f..026348c0417276f222972380e7f3c8c79c4ba21d 100644 (file)
--- a/src/cat.c
+++ b/src/cat.c
@@ -780,5 +780,5 @@ main (int argc, char **argv)
   if (have_read_stdin && close (STDIN_FILENO) < 0)
     error (EXIT_FAILURE, errno, _("closing standard input"));
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index cda06612fe94a3f75fb5e1b474280a6489168558..21375bc6f3d85dccde367f54efeb7a663f215106 100644 (file)
@@ -582,5 +582,5 @@ main (int argc, char **argv)
 
   ok = process_files (argv + optind, bit_flags | FTS_NOSTAT);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index c7297c81b2df777460f7bc02c2385b7b628df41b..8da6a36da841f09d691ea41667b0c3a6ee135591 100644 (file)
@@ -313,5 +313,5 @@ main (int argc, char **argv)
 
   chopt_free (&chopt);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 756ec5a46fd25c58613911cf6421698c48c9c841..a37075cb6ba4baeb0f755cc1f4f0c01fb81e64a9 100644 (file)
@@ -566,5 +566,5 @@ main (int argc, char **argv)
   ok = process_files (argv + optind,
                       FTS_COMFOLLOW | FTS_PHYSICAL | FTS_DEFER_STAT);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 13a192330837a834461a561d7e413df0bb7d8220..8036d1a8c543ee459afd12e137c85e71a36b044f 100644 (file)
@@ -326,5 +326,5 @@ main (int argc, char **argv)
 
   chopt_free (&chopt);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 418ea673f0d05ae3eaa4ff5fa802566fca970f97..757573a2ea65fa582f9a2a2143b1e44cec5a13af 100644 (file)
@@ -388,7 +388,7 @@ main (int argc, char **argv)
       if (parse_additional_groups (groups, &in_gids, &n_gids, !n_gids) != 0)
         {
           if (! n_gids)
-            exit (EXIT_CANCELED);
+            return EXIT_CANCELED;
           /* else look-up outside the chroot worked, then go with those.  */
         }
       else
@@ -428,9 +428,7 @@ main (int argc, char **argv)
   /* Execute the given command.  */
   execvp (argv[0], argv);
 
-  {
-    int exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
-    error (0, errno, _("failed to run command %s"), quote (argv[0]));
-    exit (exit_status);
-  }
+  int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
+  error (0, errno, _("failed to run command %s"), quote (argv[0]));
+  return exit_status;
 }
index 8db39a485ea824cc3201ff163e7c3dbf37e6cebe..baae55ac0310333ace25d18157a115aa4c55727a 100644 (file)
@@ -102,7 +102,7 @@ main (void)
               crc_remainder (i * 5 + 5));
     }
   printf ("\n};\n");
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
 
 #else /* !CRCTAB */
@@ -312,7 +312,7 @@ main (int argc, char **argv)
 
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, "-");
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 #endif /* !CRCTAB */
index 5a3eec68f1f45469b08bc7804441a64b8643f23d..b5c6840af2010ad59d13b838d8c4d2d0aee67d8a 100644 (file)
@@ -443,7 +443,7 @@ main (int argc, char **argv)
   compare_files (argv + optind);
 
   if (issued_disorder_warning[0] || issued_disorder_warning[1])
-    exit (EXIT_FAILURE);
+    return EXIT_FAILURE;
   else
-    exit (EXIT_SUCCESS);
+    return EXIT_SUCCESS;
 }
index 899cc937b7d3622d10e6f41b0b860474d1fbeb08..f55bef9d947970eb72b8931887205b28837a73fc 100644 (file)
 #include "uname.h"
 /* Ensure that the main for uname is declared even if the tool is not being
    built in this single-binary. */
-int _single_binary_main_uname (int argc, char** argv) ATTRIBUTE_NORETURN;
-int _single_binary_main_arch (int argc, char** argv) ATTRIBUTE_NORETURN;
+int _single_binary_main_uname (int argc, char **argv);
+int _single_binary_main_arch (int argc, char **argv);
 
-int _single_binary_main_arch (int argc, char** argv)
+int
+_single_binary_main_arch (int argc, char **argv)
 {
   uname_mode = UNAME_ARCH;
-  _single_binary_main_uname (argc, argv);
+  return _single_binary_main_uname (argc, argv);
 }
index 4b488f4157c056b21af06b6355b0ec04196073ed..afbe39a502bc4634efa1709199e3e70dd3e57870 100644 (file)
 #include "ls.h"
 /* Ensure that the main for ls is declared even if the tool is not being built
    in this single-binary. */
-int _single_binary_main_ls (int argc, char** argv) ATTRIBUTE_NORETURN;
-int _single_binary_main_dir (int argc, char** argv) ATTRIBUTE_NORETURN;
+int _single_binary_main_ls (int argc, char **argv);
+int _single_binary_main_dir (int argc, char **argv);
 
-int _single_binary_main_dir (int argc, char** argv)
+int
+_single_binary_main_dir (int argc, char **argv)
 {
   ls_mode = LS_MULTI_COL;
-  _single_binary_main_ls (argc, argv);
+  return _single_binary_main_ls (argc, argv);
 }
index 036367f6debde426add7fa3393dfa09e5c58b212..b1b0194ee3e84a347c976b09c8fcb9076f78786c 100644 (file)
 #include "ls.h"
 /* Ensure that the main for ls is declared even if the tool is not being built
    in this single-binary. */
-int _single_binary_main_ls (int argc, char** argv) ATTRIBUTE_NORETURN;
-int _single_binary_main_vdir (int argc, char** argv) ATTRIBUTE_NORETURN;
+int _single_binary_main_ls (int argc, char **argv);
+int _single_binary_main_vdir (int argc, char **argv);
 
-int _single_binary_main_vdir (int argc, char** argv)
+int
+_single_binary_main_vdir (int argc, char** argv)
 {
   ls_mode = LS_LONG_FORMAT;
-  _single_binary_main_ls (argc, argv);
+  return _single_binary_main_ls (argc, argv);
 }
index c459b1d6200af3f9c764e049e2909191bc3e58af..898fe841362417e13a10a047b0ab7f06e7a68d63 100644 (file)
@@ -35,7 +35,7 @@
    needs to match the one passed as CFLAGS on single-binary.mk (generated
    by gen-single-binary.sh). */
 # define SINGLE_BINARY_PROGRAM(prog_name_str, main_name) \
-  int _single_binary_main_##main_name (int, char**) ATTRIBUTE_NORETURN;
+  int _single_binary_main_##main_name (int, char **);
 # include "coreutils.h"
 # undef SINGLE_BINARY_PROGRAM
 #endif
@@ -46,9 +46,6 @@
 #define AUTHORS \
   proper_name ("Alex Deymo")
 
-void
-launch_program (const char *prog_name, int prog_argc, char **prog_argv);
-
 static struct option const long_options[] =
 {
   {GETOPT_HELP_OPTION_DECL},
@@ -92,10 +89,10 @@ Use: '%s --coreutils-prog=PROGRAM_NAME --help' for individual program help.\n"),
   exit (status);
 }
 
-void
+static void
 launch_program (const char *prog_name, int prog_argc, char **prog_argv)
 {
-  int (*prog_main)(int, char **) = NULL;
+  int (*prog_main) (int, char **) = NULL;
 
   /* Ensure that at least one parameter was passed.  */
   if (!prog_argc || !prog_argv || !prog_argv[0] || !prog_name)
@@ -103,7 +100,7 @@ launch_program (const char *prog_name, int prog_argc, char **prog_argv)
 
 #ifdef SINGLE_BINARY
   if (false);
-  /* Lookup the right main program.  */
+  /* Look up the right main program.  */
 # define SINGLE_BINARY_PROGRAM(prog_name_str, main_name) \
   else if (STREQ (prog_name_str, prog_name)) \
     prog_main = _single_binary_main_##main_name;
@@ -124,7 +121,7 @@ launch_program (const char *prog_name, int prog_argc, char **prog_argv)
   prctl (PR_SET_MM_ARG_START, prog_argv[0]);
 #endif
 
-  exit ((*prog_main) (prog_argc, prog_argv));
+  exit (prog_main (prog_argc, prog_argv));
 }
 
 int
index 6c7231a8736c73e697ef4ad1f26d4c4ec02778d8..60be688b7d70bbc1774ef227cf536b50df89017f 100644 (file)
--- a/src/cp.c
+++ b/src/cp.c
@@ -1218,5 +1218,5 @@ main (int argc, char **argv)
   forget_all ();
 #endif
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index a30f09b7718514277e251852f17046d81da8d8e4..f8062ea550c85a577f04b0f590d639f72dd06c4f 100644 (file)
@@ -1466,7 +1466,7 @@ main (int argc, char **argv)
       cleanup_fatal ();
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
 
 void
index 312551f0869ac321386f515fa61892e6823fd79c..bdc723b61fa8df2a0d5b246803534b15f59aa795 100644 (file)
--- a/src/cut.c
+++ b/src/cut.c
@@ -827,5 +827,5 @@ main (int argc, char **argv)
       ok = false;
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index ef04cb58c27e40faa2505e910bbed168adea8d7c..ba1918f3567b03811e2937e02c28b4fd12771c82 100644 (file)
@@ -540,7 +540,7 @@ main (int argc, char **argv)
       ok &= show_date (format, when);
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 /* Display the date and/or time in WHEN according to the format specified
index 1e387f3d8ef432649ba8610c66588a93f44bbec3..71c334cf88609afceaf410f6161d6ebd9cc75a8d 100644 (file)
--- a/src/dd.c
+++ b/src/dd.c
@@ -917,12 +917,18 @@ process_signals (void)
     }
 }
 
-static void ATTRIBUTE_NORETURN
-quit (int code)
+static void
+finish_up (void)
 {
   cleanup ();
   print_stats ();
   process_signals ();
+}
+
+static void ATTRIBUTE_NORETURN
+quit (int code)
+{
+  finish_up ();
   exit (code);
 }
 
@@ -2340,5 +2346,6 @@ main (int argc, char **argv)
         invalidate_cache (STDOUT_FILENO, 0);
     }
 
-  quit (exit_status);
+  finish_up ();
+  return exit_status;
 }
index e907b9409073e60ef0f198df05f62aa4fe6741f2..a7776652b9166dea18eafb0f63ea263092ddeaae 100644 (file)
--- a/src/df.c
+++ b/src/df.c
@@ -1620,7 +1620,7 @@ main (int argc, char **argv)
           }
       }
     if (match)
-      exit (EXIT_FAILURE);
+      return EXIT_FAILURE;
   }
 
   if (optind < argc)
@@ -1714,5 +1714,5 @@ main (int argc, char **argv)
 
   IF_LINT (free (columns));
 
-  exit (exit_status);
+  return exit_status;
 }
index 99605367818dab85d344d8f959da94faf9e5ba03..5544419ac5170ddb7dd43b8cec10306272348739 100644 (file)
@@ -503,5 +503,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index e0599a36a35213a05cd546c28c7bbb3ea5e203d0..5a268e1c20cd567272a62aa8eb1797508bf6ae8e 100644 (file)
@@ -132,5 +132,5 @@ main (int argc, char **argv)
       putchar (use_nuls ? '\0' :'\n');
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 0966326b5a8afc23ed09e17043cfd6076eb39df9..5466e17f45e6ead6fc6dcdbfa72ce62a112324b4 100644 (file)
--- a/src/du.c
+++ b/src/du.c
@@ -1108,5 +1108,5 @@ main (int argc, char **argv)
   if (print_grand_total)
     print_size (&tot_dui, _("total"));
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 93f4a820eebbd3ab833b67e1e98d00e233bcf5bc..63b263ed7e0518d209cbb837d40daf1a3c1a490e 100644 (file)
@@ -136,7 +136,7 @@ main (int argc, char **argv)
         {
           version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version, AUTHORS,
                        (char *) NULL);
-          exit (EXIT_SUCCESS);
+          return EXIT_SUCCESS;
         }
     }
 
@@ -204,7 +204,7 @@ just_echo:
                     {
                     case 'a': c = '\a'; break;
                     case 'b': c = '\b'; break;
-                    case 'c': exit (EXIT_SUCCESS);
+                    case 'c': return EXIT_SUCCESS;
                     case 'e': c = '\x1B'; break;
                     case 'f': c = '\f'; break;
                     case 'n': c = '\n'; break;
@@ -268,5 +268,5 @@ just_echo:
 
   if (display_return)
     putchar ('\n');
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 2b37d986e21d0e789700a52771c1b8bde331d62a..b776052c69cc68e94db6d29b93a0b34321a5ed67 100644 (file)
--- a/src/env.c
+++ b/src/env.c
@@ -144,7 +144,7 @@ main (int argc, char **argv)
       char *const *e = environ;
       while (*e)
         printf ("%s%c", *e++, opt_nul_terminate_output ? '\0' : '\n');
-      exit (EXIT_SUCCESS);
+      return EXIT_SUCCESS;
     }
 
   if (opt_nul_terminate_output)
@@ -155,9 +155,7 @@ main (int argc, char **argv)
 
   execvp (argv[optind], &argv[optind]);
 
-  {
-    int exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
-    error (0, errno, "%s", argv[optind]);
-    exit (exit_status);
-  }
+  int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
+  error (0, errno, "%s", argv[optind]);
+  return exit_status;
 }
index 082b5d4ef042c5121f7c403f2cbd57da6336393d..bbaf0e7fdcfdea7de8a2ef639e3db59946b5eb00 100644 (file)
@@ -426,5 +426,5 @@ main (int argc, char **argv)
   if (have_read_stdin && fclose (stdin) != 0)
     error (EXIT_FAILURE, errno, "-");
 
-  exit (exit_status);
+  return exit_status;
 }
index a97663a1d643ba7084046d57748528381c899f12..bbf32519687741263fdceb5bd695311769d243f9 100644 (file)
@@ -326,7 +326,7 @@ main (int argc, char **argv)
     syntax_error ();
   printv (v);
 
-  exit (null (v));
+  return null (v);
 }
 
 /* Return a VALUE for I.  */
index f7beaeb94ddd22bde68d6e0799c09d584f1fa6b9..f636e36f1d4e028c219fd9e278dc9f1ecef13f15 100644 (file)
@@ -2543,5 +2543,5 @@ main (int argc, char **argv)
     }
 #endif
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index dbd180b45d0ce3c7dc3d079048fdb6c54ba77855..3ee04d99a82e0e2ad1ef6c3b1dd299e94cf025c0 100644 (file)
--- a/src/fmt.c
+++ b/src/fmt.c
@@ -456,7 +456,7 @@ main (int argc, char **argv)
         }
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 /* Trim space from the front and back of the string P, yielding the prefix,
index 444dc8b46d05ae0ea5c08726ee3683cdd1c9a18e..1f03c2ea674914f490d7e62acfcdfe16abdc48fc 100644 (file)
@@ -311,5 +311,5 @@ main (int argc, char **argv)
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, "-");
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 597efd82b4254d2b04dcfe83fb008d1949873369..3a7d7e1504074d28355901af6ef3ad86c4f5c1c3 100644 (file)
@@ -167,4 +167,6 @@ main (int argc, char **argv)
   print_float (FLT);
   print_float (DBL);
   print_float (LDBL);
+
+  return EXIT_SUCCESS;
 }
index f19ff0accf1aef1f315643b67648513e639b00ff..c904f32509e003d4ad34bf520bca4095c5c67407 100644 (file)
@@ -136,5 +136,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 65bd52a1f524f7da77d9a32382bd746f841282f1..09bc33d0dcae9a5361f8faa2380231c45e00e93e 100644 (file)
@@ -1066,5 +1066,5 @@ main (int argc, char **argv)
   if (have_read_stdin && close (STDIN_FILENO) < 0)
     error (EXIT_FAILURE, errno, "-");
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 5b40eb016df680ab2ecd7fc22a8e3dc6c2f001a6..867181285befa048b63206201d3151422c3546d6 100644 (file)
@@ -84,5 +84,5 @@ main (int argc, char **argv)
 
   printf ("%08x\n", id);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index bab51ae4a0b2dbea7ac340f3f62b70451df405e5..9ef759863a1cc3fbb331ac9ec75b2c50275f6f0b 100644 (file)
@@ -112,5 +112,5 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index ccd1e879af5073dd9f7b00898990f48e2f1a6ace..33445a0008dd806537e63b624b6d153327458a40 100644 (file)
--- a/src/id.c
+++ b/src/id.c
@@ -314,7 +314,7 @@ main (int argc, char **argv)
   putchar (opt_zero ? '\0' : '\n');
 
   IF_LINT (free (pw_name));
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 /* Convert a gid_t to string.  Do not use this function directly.
index c3424227beda7db2bf1666784a42ed4c83208d10..db4ee457d2b156d94802ba342c654cee3f5b6323 100644 (file)
@@ -1042,5 +1042,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (exit_status);
+  return exit_status;
 }
index 5c26e78aae1fc055cadec7b250896a481224e6f9..965ab4900291c1b3355a196ab3918542059c104e 100644 (file)
@@ -1191,7 +1191,7 @@ main (int argc, char **argv)
     error (EXIT_FAILURE, errno, "%s", g_names[1]);
 
   if (issued_disorder_warning[0] || issued_disorder_warning[1])
-    exit (EXIT_FAILURE);
+    return EXIT_FAILURE;
   else
-    exit (EXIT_SUCCESS);
+    return EXIT_SUCCESS;
 }
index 724667e0efee879a9e4466153d76c041eb4c2c38..4ab86a48fdcd48a81c8bef7f6923687fc088d4c7 100644 (file)
@@ -306,7 +306,7 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  exit (list
-        ? list_signals (table, optind < argc ? argv + optind : NULL)
-        : send_signals (signum, argv + optind));
+  return (list
+          ? list_signals (table, optind < argc ? argv + optind : NULL)
+          : send_signals (signum, argv + optind));
 }
index 9f18fe2e5cf8815104aadb07c3da5662bfcfb663..6f3a297a0b8dddc445f5947e943a70f7e9d23e46 100644 (file)
@@ -90,5 +90,5 @@ main (int argc, char **argv)
     error (EXIT_FAILURE, errno, _("cannot create link %s to %s"),
            quote_n (0, argv[optind + 1]), quote_n (1, argv[optind]));
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 42bccfce770e01e594559ac76f8cba0ac2475465..5140e92dcd7d162ff812a4dfdde2b76d921bfdc8 100644 (file)
--- a/src/ln.c
+++ b/src/ln.c
@@ -647,5 +647,5 @@ main (int argc, char **argv)
   else
     ok = do_link (file[0], file[1]);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 6afa1b50f33b07ed99d1d7ebc5947cb0f2db1bee..368c4c9e9c011267e815961126b2e6ad49dfbc6c 100644 (file)
@@ -72,15 +72,12 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  /* POSIX requires using getlogin (or equivalent code).  */
+  /* POSIX requires using getlogin (or equivalent code) and prohibits
+     using a fallback technique.  */
   cp = getlogin ();
-  if (cp)
-    {
-      puts (cp);
-      exit (EXIT_SUCCESS);
-    }
-  /* POSIX prohibits using a fallback technique.  */
+  if (! cp)
+    error (EXIT_FAILURE, 0, _("no login name"));
 
-  error (0, 0, _("no login name"));
-  exit (EXIT_FAILURE);
+  puts (cp);
+  return EXIT_SUCCESS;
 }
index a45cfc1746f0920fcf020feef3c17e0e608bc2d3..94276b65bcc121d9c6a90fbcde354f3b63b61424 100644 (file)
--- a/src/ls.c
+++ b/src/ls.c
@@ -1513,7 +1513,7 @@ main (int argc, char **argv)
       hash_free (active_dir_set);
     }
 
-  exit (exit_status);
+  return exit_status;
 }
 
 /* Set all the option flags according to the switches specified.
index c01b1200146f504ecd5485f257c71761ac24b17d..5c79acecb2394e576282d6fa32244922300ebe2c 100644 (file)
@@ -187,7 +187,7 @@ main (int argc, char **argv)
     }
   limit = atoi (argv[1]);
   if (limit < 3)
-    exit (EXIT_SUCCESS);
+    return EXIT_SUCCESS;
 
   /* Make limit odd */
   if ( !(limit & 1))
index cc6dd49e9c84de0f94cb92c60252d3e79a77be6c..cd27e8060d4db3728623c0b0233dd2a047dc2ae4 100644 (file)
@@ -874,5 +874,5 @@ main (int argc, char **argv)
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, _("standard input"));
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index eb9693cc9ae36b87172fa6b339160a9c50d6fa59..70bca07b5300ec367a626db5e8089351b538e2f3 100644 (file)
@@ -301,6 +301,6 @@ main (int argc, char **argv)
         options.mode = S_IRWXUGO;
     }
 
-  exit (savewd_process_files (argc - optind, argv + optind,
-                              process_dir, &options));
+  return savewd_process_files (argc - optind, argv + optind,
+                               process_dir, &options);
 }
index 415ae562fd4228df8b5812bad0ed24f14df603af..632472983277fd5a856b93d8e7757958eabe2537 100644 (file)
@@ -177,5 +177,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (exit_status);
+  return exit_status;
 }
index 8f547e9c6193acb71afc14700fc5bfab5d058fff..797e6bbf1d8d12a43af76f66d1e329a206b53534 100644 (file)
@@ -269,5 +269,5 @@ main (int argc, char **argv)
     error (EXIT_FAILURE, errno, _("cannot set permissions of %s"),
            quote (argv[optind]));
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 2bd80bae719ac2fbc3728ce3f5f21dedb1a7a21f..d36e502c18fa255f3aeee77fd20f639af8abaefa 100644 (file)
@@ -345,5 +345,5 @@ main (int argc, char **argv)
   free (template);
 #endif
 
-  exit (status);
+  return status;
 }
index 1db404ffb603240963b0f1602b7835eb89d113b9..b71d210f31da9cb8ef197ed8a1a1f93c8392d628 100644 (file)
--- a/src/mv.c
+++ b/src/mv.c
@@ -508,5 +508,5 @@ main (int argc, char **argv)
   else
     ok = movefile (file[0], file[1], false, &x);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 488ef95ac72d0c5e876b6722a7f74022125de5a5..91e8f99fe3a816bb48689bccc0f15ff3a081f3eb 100644 (file)
@@ -187,7 +187,7 @@ main (int argc, char **argv)
       if (current_niceness == -1 && errno != 0)
         error (EXIT_CANCELED, errno, _("cannot get niceness"));
       printf ("%d\n", current_niceness);
-      exit (EXIT_SUCCESS);
+      return EXIT_SUCCESS;
     }
 
   errno = 0;
@@ -209,14 +209,12 @@ main (int argc, char **argv)
          encountered a write failure, there is no need to try calling
          error() again.  */
       if (ferror (stderr))
-        exit (EXIT_CANCELED);
+        return EXIT_CANCELED;
     }
 
   execvp (argv[i], &argv[i]);
 
-  {
-    int exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
-    error (0, errno, "%s", argv[i]);
-    exit (exit_status);
-  }
+  int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
+  error (0, errno, "%s", argv[i]);
+  return exit_status;
 }
index 982f468e55a078d8f341d36034ccc654eabf2664..d45dcbd6c11301eda1e243005a558940a4fa0e42 100644 (file)
--- a/src/nl.c
+++ b/src/nl.c
@@ -612,5 +612,5 @@ main (int argc, char **argv)
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, "-");
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index eca1f51249b755ddbdd43dcc44ec4f29013cf220..13bb045311066254b24d13522dd43be97a72a022 100644 (file)
@@ -123,10 +123,8 @@ main (int argc, char **argv)
   if (ignoring_input)
     {
       if (fd_reopen (STDIN_FILENO, "/dev/null", O_WRONLY, 0) < 0)
-        {
-          error (0, errno, _("failed to render standard input unusable"));
-          exit (exit_internal_failure);
-        }
+        error (exit_internal_failure, errno,
+               _("failed to render standard input unusable"));
       if (!redirecting_stdout && !redirecting_stderr)
         error (0, 0, _("ignoring input"));
     }
@@ -164,7 +162,7 @@ main (int argc, char **argv)
               if (in_home)
                 error (0, saved_errno2, _("failed to open %s"),
                        quote (in_home));
-              exit (exit_internal_failure);
+              return exit_internal_failure;
             }
           file = in_home;
         }
@@ -213,28 +211,23 @@ main (int argc, char **argv)
      error() again, particularly since we may have just changed the
      underlying fd out from under stderr.  */
   if (ferror (stderr))
-    exit (exit_internal_failure);
+    return exit_internal_failure;
 
   signal (SIGHUP, SIG_IGN);
 
-  {
-    int exit_status;
-    int saved_errno;
-    char **cmd = argv + optind;
-
-    execvp (*cmd, cmd);
-    exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
-    saved_errno = errno;
-
-    /* The execve failed.  Output a diagnostic to stderr only if:
-       - stderr was initially redirected to a non-tty, or
-       - stderr was initially directed to a tty, and we
-         can dup2 it to point back to that same tty.
-       In other words, output the diagnostic if possible, but only if
-       it will go to the original stderr.  */
-    if (dup2 (saved_stderr_fd, STDERR_FILENO) == STDERR_FILENO)
-      error (0, saved_errno, _("failed to run command %s"), quote (*cmd));
-
-    exit (exit_status);
-  }
+  char **cmd = argv + optind;
+  execvp (*cmd, cmd);
+  int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
+  int saved_errno = errno;
+
+  /* The execve failed.  Output a diagnostic to stderr only if:
+     - stderr was initially redirected to a non-tty, or
+     - stderr was initially directed to a tty, and we
+     can dup2 it to point back to that same tty.
+     In other words, output the diagnostic if possible, but only if
+     it will go to the original stderr.  */
+  if (dup2 (saved_stderr_fd, STDERR_FILENO) == STDERR_FILENO)
+    error (0, saved_errno, _("failed to run command %s"), quote (*cmd));
+
+  return exit_status;
 }
index 9bfc8b398319870900382e5b0fcd69e67e45f7d8..44ee483d6b8bc47dfbd96fea1d2653b060610926 100644 (file)
@@ -129,5 +129,5 @@ main (int argc, char **argv)
 
   printf ("%lu\n", nproc);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index b524e65bfa6fcf1508aedac9ab06107fe15588ce..f1113748ffe2782e4eabecefc2828d2835166fdf 100644 (file)
@@ -1538,5 +1538,5 @@ main (int argc, char **argv)
   if (!valid_numbers && _invalid != inval_warn && _invalid != inval_ignore)
     exit_status = EXIT_CONVERSION_WARNINGS;
 
-  exit (exit_status);
+  return exit_status;
 }
index 7bc0e2a8b555622dba5b5867d53a7b0cc169a8be..c32d785aa9a0568fe40f71d40c5dcc2f202215bd 100644 (file)
--- a/src/od.c
+++ b/src/od.c
@@ -1781,7 +1781,7 @@ main (int argc, char **argv)
     }
 
   if (!ok)
-    exit (EXIT_FAILURE);
+    return EXIT_FAILURE;
 
   if (flag_dump_strings && n_specs > 0)
     error (EXIT_FAILURE, 0,
@@ -1972,5 +1972,5 @@ cleanup:
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, _("standard input"));
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 3663aaf6e253ae55a7bcca27efe8f61330ddef01..8f8f465b4bd8209a83cd84d02fb15a11dc6641c3 100644 (file)
@@ -518,5 +518,5 @@ main (int argc, char **argv)
 
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, "-");
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 4b3884fe30330e6e7bb64d856d4ee0b8b223a339..3cb8bef62e5fdc0356082dcbdc2c51f4e145a032 100644 (file)
@@ -153,7 +153,7 @@ main (int argc, char **argv)
     ok &= validate_file_name (argv[optind],
                               check_basic_portability, check_extra_portability);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 /* If FILE contains a component with a leading "-", report an error
index c48e17054c174ac0fa286774cac8b17af50c5a4b..154b6aafb74be2167d42b61648d8ca4abdc1d428 100644 (file)
@@ -604,5 +604,5 @@ main (int argc, char **argv)
   else
     long_pinky (n_users, argv + optind);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 1515b4a473eee02698accf5eeebfcfa6deb0be2e..a3dc9bf1c289a9d800593eb904b2e1b19eba26da 100644 (file)
--- a/src/pr.c
+++ b/src/pr.c
@@ -1170,9 +1170,7 @@ main (int argc, char **argv)
 
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, _("standard input"));
-  if (failed_opens)
-    exit (EXIT_FAILURE);
-  exit (EXIT_SUCCESS);
+  return failed_opens ? EXIT_FAILURE : EXIT_SUCCESS;
 }
 
 /* Parse options of the form -scNNN.
index e1faeb5fd1dfdbf2476f1093be172dfa1b8b251e..0646c700938e67ad3322801f20a7684cc180484d 100644 (file)
@@ -150,5 +150,5 @@ main (int argc, char **argv)
       ok = (matches == argc - optind);
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 7d523100fe6f706c45330c66407ec4e4196d6aa7..3d303be70ae7ef489836515e7fa531ce423b6c2f 100644 (file)
@@ -657,7 +657,7 @@ main (int argc, char **argv)
         {
           version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version, AUTHORS,
                        (char *) NULL);
-          exit (EXIT_SUCCESS);
+          return EXIT_SUCCESS;
         }
     }
 
@@ -692,5 +692,5 @@ main (int argc, char **argv)
            _("warning: ignoring excess arguments, starting with %s"),
            quote (argv[0]));
 
-  exit (exit_status);
+  return exit_status;
 }
index d165e966589d63cf4f94835638faac0ff66818f1..39ac5e4b08a92550048c69e1b97da4932c62f7a7 100644 (file)
--- a/src/ptx.c
+++ b/src/ptx.c
@@ -2155,5 +2155,5 @@ main (int argc, char **argv)
 
   /* All done.  */
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index d126ed7547f70d3555ff590528d8ea1ab2dac8aa..9bbd78743bc53c090ae84388ded284ffc6250cf9 100644 (file)
--- a/src/pwd.c
+++ b/src/pwd.c
@@ -372,7 +372,7 @@ main (int argc, char **argv)
       if (wd)
         {
           puts (wd);
-          exit (EXIT_SUCCESS);
+          return EXIT_SUCCESS;
         }
     }
 
@@ -390,5 +390,5 @@ main (int argc, char **argv)
       file_name_free (file_name);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index f46d948e1be1ffc4215f136c603e2c461511b21a..d63f07b40578c111d7a59b43abf1098acde021e8 100644 (file)
@@ -174,5 +174,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (status);
+  return status;
 }
index 0c553271020d49ecbe0186b3c1ae4d124610dd2e..930530cd44a3c7fcce33b8e25eb210937e06c21e 100644 (file)
@@ -273,5 +273,5 @@ main (int argc, char **argv)
   for (; optind < argc; ++optind)
     ok &= process_path (argv[optind], can_mode);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 708d85d213443d6fa8b0e7648f7d5c2d5729d88c..7ab1c07e93cc65c2f80d145bc351d19425842da2 100644 (file)
--- a/src/rm.c
+++ b/src/rm.c
@@ -315,7 +315,7 @@ main (int argc, char **argv)
   if (argc <= optind)
     {
       if (x.ignore_missing_files)
-        exit (EXIT_SUCCESS);
+        return EXIT_SUCCESS;
       else
         {
           error (0, 0, _("missing operand"));
@@ -347,10 +347,10 @@ main (int argc, char **argv)
                             select_plural (n_files))),
                program_name, n_files);
       if (!yesno ())
-        exit (EXIT_SUCCESS);
+        return EXIT_SUCCESS;
     }
 
   enum RM_status status = rm (file, &x);
   assert (VALID_STATUS (status));
-  exit (status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS);
+  return status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS;
 }
index e67d3b00239f15413a997c72f882241c8740085a..6bdfb0fc28926f742f12539b1471bd017674942c 100644 (file)
@@ -248,5 +248,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 14ccc3d586d5196254cfa8ad7deaab27f47a5ffe..efe83f28c74f509a847b7ae960a3315e0cbfc2e1 100644 (file)
@@ -177,7 +177,7 @@ main (int argc, char **argv)
         error (EXIT_FAILURE, errno, _("failed to get current context"));
       fputs (cur_context, stdout);
       fputc ('\n', stdout);
-      exit (EXIT_SUCCESS);
+      return EXIT_SUCCESS;
     }
 
   if (!(user || role || type || range || compute_trans))
@@ -258,9 +258,7 @@ main (int argc, char **argv)
 
   execvp (argv[optind], argv + optind);
 
-  {
-    int exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
-    error (0, errno, "%s", argv[optind]);
-    exit (exit_status);
-  }
+  int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
+  error (0, errno, "%s", argv[optind]);
+  return exit_status;
 }
index 1124358cf14562b633ff550127207a3e08ece09d..7943824d1796cc719e1152f25457b9c41e023984 100644 (file)
--- a/src/seq.c
+++ b/src/seq.c
@@ -574,7 +574,7 @@ main (int argc, char **argv)
       char const *s1 = n_args == 1 ? "1" : argv[optind];
       char const *s2 = argv[optind + (n_args - 1)];
       if (seq_fast (s1, s2))
-        exit (EXIT_SUCCESS);
+        return EXIT_SUCCESS;
 
       /* Upon any failure, let the more general code deal with it.  */
     }
@@ -608,7 +608,7 @@ main (int argc, char **argv)
         {
           IF_LINT (free (s1));
           IF_LINT (free (s2));
-          exit (EXIT_SUCCESS);
+          return EXIT_SUCCESS;
         }
 
       free (s1);
@@ -621,5 +621,5 @@ main (int argc, char **argv)
 
   print_numbers (format_str, layout, first.value, step.value, last.value);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index bd88e383170ffe509b3c8e0b30faeb5f71ad1468..d17c870f876929b6b22077a373cf3d4685a14a09 100644 (file)
@@ -1318,7 +1318,7 @@ main (int argc, char **argv)
       free (qname);
     }
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 /*
  * vim:sw=2:sts=2:
index 2505be6f1e98a28801b7d8cb16239b1c335cf083..915f7b7a53840d436032e4b527d918d098927bb7 100644 (file)
@@ -622,5 +622,5 @@ main (int argc, char **argv)
     }
 #endif
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index e24c251204f07adaf73e92e4e69c3fbcf6bc2326..10fd989b50727f2f0c0a42c6a7bea6deb124365b 100644 (file)
@@ -145,5 +145,5 @@ main (int argc, char **argv)
   if (xnanosleep (seconds))
     error (EXIT_FAILURE, errno, _("cannot read realtime clock"));
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index c2493192039e511b8b0116a91bb8f0f4301b70b8..deb7c3a5bdcafe3cb15185812a687e711ab64a42 100644 (file)
@@ -4708,7 +4708,7 @@ main (int argc, char **argv)
 
       /* POSIX requires that sort return 1 IFF invoked with -c or -C and the
          input is not properly sorted.  */
-      exit (check (files[0], checkonly) ? EXIT_SUCCESS : SORT_OUT_OF_ORDER);
+      return check (files[0], checkonly) ? EXIT_SUCCESS : SORT_OUT_OF_ORDER;
     }
 
   /* Check all inputs are accessible, or exit immediately.  */
@@ -4746,5 +4746,5 @@ main (int argc, char **argv)
   if (have_read_stdin && fclose (stdin) == EOF)
     die (_("close failed"), "-");
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index dacacaa881457d7fdeebe0d6f596e519f1802f3b..36295c42ec556b9cdd7bbd66baed1b25c56077c5 100644 (file)
@@ -1488,5 +1488,5 @@ main (int argc, char **argv)
     error (EXIT_FAILURE, errno, "%s", infile);
   closeout (NULL, output_desc, filter_pid, outfile);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index b65dbe556cd4105f6b677fd539492f6fad8bb1ac..c78ab70d0cadac7c2285be043595e5d90964ca87 100644 (file)
@@ -1575,5 +1575,5 @@ main (int argc, char *argv[])
            ? do_statfs (argv[i], format)
            : do_stat (argv[i], format, format2));
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 92ee2826783cd18d707bd1d93f16503839908c64..c8398abc680c67c9a41021df74a4aacfae68abc1 100644 (file)
@@ -387,9 +387,7 @@ main (int argc, char **argv)
 
   execvp (*argv, argv);
 
-  {
-    int exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
-    error (0, errno, _("failed to run command %s"), quote (argv[0]));
-    exit (exit_status);
-  }
+  int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
+  error (0, errno, _("failed to run command %s"), quote (argv[0]));
+  return exit_status;
 }
index 3c4857865bf35980873a413139e31e15ec899904..4843b9b966e66d67c564af520205f6f5b243712d 100644 (file)
@@ -862,7 +862,7 @@ main (int argc, char **argv)
       max_col = screen_columns ();
       current_col = 0;
       display_settings (output_type, &mode, device_name);
-      exit (EXIT_SUCCESS);
+      return EXIT_SUCCESS;
     }
 
   speed_was_set = false;
@@ -1070,7 +1070,7 @@ main (int argc, char **argv)
         }
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
 
 /* Return false if not applied because not reversible; otherwise
index 442b7ad8ae033c3b01598e694d32af352f51b749..5c502ceb968b45c06b831b383df26881129bcfad 100644 (file)
--- a/src/sum.c
+++ b/src/sum.c
@@ -270,5 +270,5 @@ main (int argc, char **argv)
 
   if (have_read_stdin && fclose (stdin) == EOF)
     error (EXIT_FAILURE, errno, "-");
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 8c89043209ad3f61bd6f08a49b56e2505bdd0741..b706fbe9376032cf5236606d0555421b18219303 100644 (file)
@@ -69,5 +69,5 @@ main (int argc, char **argv)
     error (0, 0, _("ignoring all arguments"));
 
   sync ();
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index c76afc770c0c2eed65bc960230a803935a94aba2..ba055a016f1a45e08c5aa122fd9040a2a737b6ea 100644 (file)
--- a/src/tac.c
+++ b/src/tac.c
@@ -699,5 +699,5 @@ main (int argc, char **argv)
   free (G_buffer - offset);
 #endif
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 5ff738df8ab9c261f990afe757782aad946a1a51..7dd3f4a4417f661b3d123a0e6c16ddfbebe41034 100644 (file)
@@ -2218,7 +2218,7 @@ main (int argc, char **argv)
 
   /* Don't read anything if we'll never output anything.  */
   if (! n_units && ! forever && ! from_start)
-    exit (EXIT_SUCCESS);
+    return EXIT_SUCCESS;
 
   F = xnmalloc (n_files, sizeof *F);
   for (i = 0; i < n_files; i++)
@@ -2286,7 +2286,7 @@ main (int argc, char **argv)
                 error (EXIT_FAILURE, errno, _("write error"));
 
               if (!tail_forever_inotify (wd, F, n_files, sleep_interval))
-                exit (EXIT_FAILURE);
+                return EXIT_FAILURE;
             }
           error (0, errno, _("inotify cannot be used, reverting to polling"));
         }
@@ -2297,5 +2297,5 @@ main (int argc, char **argv)
 
   if (have_read_stdin && close (STDIN_FILENO) < 0)
     error (EXIT_FAILURE, errno, "-");
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index be365604deff9a0c9b70b98c50dc176efa9b54ca..821d825fe5dd1439bd55074a55e322d0dd371550 100644 (file)
--- a/src/tee.c
+++ b/src/tee.c
@@ -125,7 +125,7 @@ main (int argc, char **argv)
   if (close (STDIN_FILENO) != 0)
     error (EXIT_FAILURE, errno, _("standard input"));
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 /* Copy the standard input into each of the NFILES files in FILES
index 75968798c4209c03c4277ccc6f26437dbc9d0674..24bcb93c09870e314b7c515762184b1770cd7a9a 100644 (file)
@@ -57,10 +57,12 @@ enum { TEST_TRUE, TEST_FALSE, TEST_FAILURE };
 
 #if defined TEST_STANDALONE
 # define test_exit(val) exit (val)
+# define test_main_return(val) return val
 #else
    static jmp_buf test_exit_buf;
    static int test_error_return = 0;
 # define test_exit(val) test_error_return = val, longjmp (test_exit_buf, 1)
+# define test_main_return(val) test_exit (val)
 #endif /* !TEST_STANDALONE */
 
 static int pos;                /* The offset of the current argument in ARGV. */
@@ -851,7 +853,7 @@ main (int margc, char **margv)
             {
               version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version, AUTHORS,
                            (char *) NULL);
-              test_exit (EXIT_SUCCESS);
+              test_main_return (EXIT_SUCCESS);
             }
         }
       if (margc < 2 || !STREQ (margv[margc - 1], "]"))
@@ -864,12 +866,12 @@ main (int margc, char **margv)
   pos = 1;
 
   if (pos >= argc)
-    test_exit (TEST_FALSE);
+    test_main_return (TEST_FALSE);
 
   value = posixtest (argc - 1);
 
   if (pos != argc)
     test_syntax_error (_("extra argument %s"), quote (argv[pos]));
 
-  test_exit (value ? TEST_TRUE : TEST_FALSE);
+  test_main_return (value ? TEST_TRUE : TEST_FALSE);
 }
index 68baa23ce18ed7629b61b8d0c5d4e4ff8b402e5d..c4cc07407cce5252d4db161c2c577f3fc54680b3 100644 (file)
@@ -440,12 +440,10 @@ main (int argc, char **argv)
   if (monitored_pid == -1)
     {
       error (0, errno, _("fork system call failed"));
-      exit (EXIT_CANCELED);
+      return EXIT_CANCELED;
     }
   else if (monitored_pid == 0)
     {                           /* child */
-      int exit_status;
-
       /* exec doesn't reset SIG_IGN -> SIG_DFL.  */
       signal (SIGTTIN, SIG_DFL);
       signal (SIGTTOU, SIG_DFL);
@@ -453,9 +451,9 @@ main (int argc, char **argv)
       execvp (argv[0], argv);   /* FIXME: should we use "sh -c" ... here?  */
 
       /* exit like sh, env, nohup, ...  */
-      exit_status = (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
+      int exit_status = errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE;
       error (0, errno, _("failed to run command %s"), quote (argv[0]));
-      exit (exit_status);
+      return exit_status;
     }
   else
     {
@@ -500,8 +498,7 @@ main (int argc, char **argv)
         }
 
       if (timed_out && !preserve_status)
-        exit (EXIT_TIMEDOUT);
-      else
-        exit (status);
+        status = EXIT_TIMEDOUT;
+      return status;
     }
 }
index 1ba24269bf7f9c1abfd57b5c95869bbdfd2e6a1d..b128e88363f2a4736989d0aa1ea4006f346f4b4e 100644 (file)
@@ -433,5 +433,5 @@ main (int argc, char **argv)
   for (; optind < argc; ++optind)
     ok &= touch (argv[optind]);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 06858f91dc0a3c52da4b3ad1f5d062aed0325899..5905a63f00b092939ac67ac12a0e9c65cd62e546 100644 (file)
--- a/src/tr.c
+++ b/src/tr.c
@@ -1804,13 +1804,13 @@ main (int argc, char **argv)
 
   spec_init (s1);
   if (!parse_str (argv[optind], s1))
-    exit (EXIT_FAILURE);
+    return EXIT_FAILURE;
 
   if (non_option_args == 2)
     {
       spec_init (s2);
       if (!parse_str (argv[optind + 1], s2))
-        exit (EXIT_FAILURE);
+        return EXIT_FAILURE;
     }
   else
     s2 = NULL;
@@ -1944,5 +1944,5 @@ main (int argc, char **argv)
   if (close (STDIN_FILENO) != 0)
     error (EXIT_FAILURE, errno, _("standard input"));
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 8a1c4f9202fc02211f3bfb69149eb2c43d7d454b..ea4833a646404ea26cc19648fec1d173d9480305 100644 (file)
@@ -76,5 +76,5 @@ main (int argc, char **argv)
                      (char *) NULL);
     }
 
-  exit (EXIT_STATUS);
+  return EXIT_STATUS;
 }
index f31250920982a10aecd32079f40a6ec705eb4510..44d0b9670b89f53aa3c78f96fe0c84584b8ab1f5 100644 (file)
@@ -420,5 +420,5 @@ main (int argc, char **argv)
         }
     }
 
-  exit (errors ? EXIT_FAILURE : EXIT_SUCCESS);
+  return errors ? EXIT_FAILURE : EXIT_SUCCESS;
 }
index 661c71730d6f2593cf4c627bf85dd78632d4ab64..8380ce809ec20663e5cec986aedc4ff159c5b248 100644 (file)
@@ -557,5 +557,5 @@ main (int argc, char **argv)
 
   ok = tsort (optind == argc ? "-" : argv[optind]);
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 16301e12bc17e68b3e8dc94a05342e21ebfe6228..f8c255458c6ac8d95f52022c946e35c1adc565ac 100644 (file)
--- a/src/tty.c
+++ b/src/tty.c
@@ -120,5 +120,5 @@ main (int argc, char **argv)
         puts (_("not a tty"));
     }
 
-  exit (isatty (STDIN_FILENO) ? EXIT_SUCCESS : EXIT_FAILURE);
+  return isatty (STDIN_FILENO) ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index e3bed488cc8256e6ab77e3a45ed0bdfab6703903..3cc3cbae58d17c518a0b576a4a35f1fab15cbb13 100644 (file)
@@ -371,5 +371,5 @@ main (int argc, char **argv)
 
   putchar ('\n');
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 505e223cd92b970aeec0110e2d6f05f178cc2258..03c9a2ef3ee15ead6a4610fe242e60504bf08953 100644 (file)
@@ -528,5 +528,5 @@ main (int argc, char **argv)
   if (have_read_stdin && fclose (stdin) != 0)
     error (EXIT_FAILURE, errno, "-");
 
-  exit (exit_status);
+  return exit_status;
 }
index 54200ff458b912723a051906e5cf392f8b7d520d..358d06c63c0e127ea15cc535d887a4c43acfa044 100644 (file)
@@ -662,5 +662,5 @@ main (int argc, char **argv)
 
   check_file (file[0], file[1], delimiter);
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 260a53015c76d4d484e9d7c9f74de86204548942..a05aa324e9742067befd33d489d24098c921da5e 100644 (file)
@@ -85,5 +85,5 @@ main (int argc, char **argv)
   if (unlink (argv[optind]) != 0)
     error (EXIT_FAILURE, errno, _("cannot unlink %s"), quote (argv[optind]));
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 4ab914f303a1f8af611b03f94025e47896a3c1e6..93931d2331ac8721f456872659fc049fe0793b57 100644 (file)
@@ -253,5 +253,5 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index ee44c815d7f9b88a025a29a641b483a676029808..a0dce1912fb38aa4676db6e857b69b0c486c3c06 100644 (file)
@@ -147,5 +147,5 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 4909d9fe855e82ac5ea5c652dfe3dd03734fce78..204802543ddd2e054e17e65adea62ca5ccab35c6 100644 (file)
--- a/src/wc.c
+++ b/src/wc.c
@@ -797,5 +797,5 @@ main (int argc, char **argv)
   if (have_read_stdin && close (STDIN_FILENO) != 0)
     error (EXIT_FAILURE, errno, "-");
 
-  exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
+  return ok ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index f07cee61c8e6c64b1ecc8f92773fc3c0fffbff02..23e25115668ca43df2238e9d0e9d7b3066448bf4 100644 (file)
--- a/src/who.c
+++ b/src/who.c
@@ -828,5 +828,5 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index 7301abb146418e36785801ff57a3946068b69fc5..545e521345137a6eac52852adcc2d5e253d39fab 100644 (file)
@@ -83,12 +83,9 @@ main (int argc, char **argv)
   errno = 0;
   uid = geteuid ();
   pw = (uid == NO_UID && errno ? NULL : getpwuid (uid));
-  if (pw)
-    {
-      puts (pw->pw_name);
-      exit (EXIT_SUCCESS);
-    }
-  fprintf (stderr, _("%s: cannot find name for user ID %lu\n"),
-           program_name, (unsigned long int) uid);
-  exit (EXIT_FAILURE);
+  if (!pw)
+    error (EXIT_FAILURE, errno, "cannot find name for user ID %lu",
+           (unsigned long int) uid);
+  puts (pw->pw_name);
+  return EXIT_SUCCESS;
 }
index 972131245744e5d4833ba3e2295fd7cfc3d0f387..e5957b9e963e31c270930fd94963752e0bd90c0e 100644 (file)
--- a/src/yes.c
+++ b/src/yes.c
@@ -83,6 +83,9 @@ main (int argc, char **argv)
       for (i = optind; i < argc; i++)
         if (fputs (argv[i], stdout) == EOF
             || putchar (i == argc - 1 ? '\n' : ' ') == EOF)
-          error (EXIT_FAILURE, errno, _("standard output"));
+          {
+            error (0, errno, _("standard output"));
+            return EXIT_FAILURE;
+          }
     }
 }