- add libbb function str_tolower to convert a string to lowercase.
[oweals/busybox.git] / miscutils / setsid.c
index 7df35be3b725c2772d85b9191dff94052de1521c..1abb54530ee3c8abc749040ebd7e6c738a2e9804 100644 (file)
@@ -1,3 +1,4 @@
+/* vi: set sw=4 ts=4: */
 /*
  * setsid.c -- execute a command in a new session
  * Rick Sladkey <jrs@world.std.com>
  * - busyboxed
  */
 
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
 #include "busybox.h"
 
-int
-setsid_main(int argc, char *argv[]) {
-       
-       if (argc < 2) {
+int setsid_main(int argc, char **argv);
+int setsid_main(int argc, char **argv)
+{
+       if (argc < 2)
                bb_show_usage();
-       }
 
-       if (getpgrp() == getpid()) {
-               switch(fork()){
-               case -1:
-                       bb_perror_msg_and_die("fork");
-               case 0:
-                       break;
-               default:        /* parent */
-                       exit(0);
-               }
-               /* child falls through */
-       }
+       /* Comment why is this necessary? */
+       if (getpgrp() == getpid())
+               forkexit_or_rexec(argv);
 
        setsid();  /* no error possible */
 
-       execvp(argv[1], argv + 1);
-
-       bb_perror_msg_and_die(argv[1]);
-
+       BB_EXECVP(argv[1], argv + 1);
+       bb_perror_msg_and_die("%s", argv[1]);
 }