hush: remove env builtin (it is buggy). Add comments
[oweals/busybox.git] / init / halt.c
index 3ab41f1f2998e6beaf4a340befadc032c913a353..8faf9d8c3f404d0faeaea13ac5e638fc475b4995 100644 (file)
@@ -10,7 +10,8 @@
 #include "busybox.h"
 #include <sys/reboot.h>
 
-int halt_main(int argc, char *argv[])
+int halt_main(int argc, char **argv);
+int halt_main(int argc, char **argv)
 {
        static const int magic[] = {
 #ifdef RB_HALT_SYSTEM
@@ -25,29 +26,34 @@ RB_POWERDOWN,
 #endif
 RB_AUTOBOOT
        };
-       static const int signals[] = {SIGUSR1, SIGUSR2, SIGTERM};
+       static const int signals[] = { SIGUSR1, SIGUSR2, SIGTERM };
 
-       char *delay = "hpr";
+       char *delay;
        int which, flags, rc = 1;
 
        /* Figure out which applet we're running */
-       for(which=0;delay[which]!=*applet_name;which++);
+       for (which = 0; "hpr"[which] != *applet_name; which++);
 
        /* Parse and handle arguments */
        flags = getopt32(argc, argv, "d:nf", &delay);
-       if (flags&1) sleep(xatou(delay));
-       if (!(flags&2)) sync();
+       if (flags & 1) sleep(xatou(delay));
+       if (!(flags & 2)) sync();
 
        /* Perform action. */
        if (ENABLE_INIT && !(flags & 4)) {
                if (ENABLE_FEATURE_INITRD) {
-                       long *pidlist=find_pid_by_name("linuxrc");
-                       if (*pidlist>0) rc = kill(*pidlist,signals[which]);
-                       if (ENABLE_FEATURE_CLEAN_UP) free(pidlist);
+                       pid_t *pidlist = find_pid_by_name("linuxrc");
+                       if (pidlist[0] > 0)
+                               rc = kill(pidlist[0], signals[which]);
+                       if (ENABLE_FEATURE_CLEAN_UP)
+                               free(pidlist);
                }
-               if (rc) rc = kill(1,signals[which]);
-       } else rc = reboot(magic[which]);
+               if (rc)
+                       rc = kill(1, signals[which]);
+       } else
+               rc = reboot(magic[which]);
 
-       if (rc) bb_error_msg("no");
+       if (rc)
+               bb_error_msg("no");
        return rc;
 }