Fix the pwd and group functions. The bb_ stuff was a leftover from
[oweals/busybox.git] / busybox.c
index 0439fb566cb5892d8abed2a1ff784d6750ddecac..e56d2a4ed805e9b2112e559ddcfd9cf268d9608b 100644 (file)
--- a/busybox.c
+++ b/busybox.c
@@ -2,7 +2,9 @@
 #include "busybox.h"
 #include <stdio.h>
 #include <string.h>
+#include <unistd.h>
 #include <errno.h>
+#include <stdlib.h>
 
 #undef APPLET
 #undef APPLET_NOUSAGE
@@ -14,8 +16,6 @@
 #include "messages.c"
 
 static int been_there_done_that = 0;
-
-
 const char *applet_name;
 
 #ifdef BB_FEATURE_INSTALLER
@@ -69,12 +69,12 @@ static void install_links(const char *busybox, int use_symbolic_links)
        int i;
        int rc;
 
-       if (use_symbolic_links) Link = symlink;
+       if (use_symbolic_links) 
+               Link = symlink;
 
        for (i = 0; applets[i].name != NULL; i++) {
                sprintf ( command, "%s/%s", 
-                               install_dir[applets[i].location], 
-                               applets[i].name);
+                               install_dir[applets[i].location], applets[i].name);
                rc = Link(busybox, command);
 
                if (rc) {
@@ -89,37 +89,6 @@ int main(int argc, char **argv)
 {
        struct BB_applet search_applet, *applet;
        const char                              *s;
-       applet_name = "busybox";
-
-#ifdef BB_FEATURE_INSTALLER    
-       /* 
-        * This style of argument parsing doesn't scale well 
-        * in the event that busybox starts wanting more --options.
-        * If someone has a cleaner approach, by all means implement it.
-        */
-       if (argc > 1 && (strcmp(argv[1], "--install") == 0)) {
-               int use_symbolic_links = 0;
-               int rc = 0;
-               char *busybox;
-
-               /* to use symlinks, or not to use symlinks... */
-               if (argc > 2) {
-                       if ((strcmp(argv[2], "-s") == 0)) { 
-                               use_symbolic_links = 1; 
-                       }
-               }
-
-               /* link */
-               busybox = busybox_fullpath();
-               if (busybox) {
-                       install_links(busybox, use_symbolic_links);
-                       free(busybox);
-               } else {
-                       rc = 1;
-               }
-               return rc;
-       }
-#endif /* BB_FEATURE_INSTALLER */
 
        for (s = applet_name = argv[0]; *s != '\0';) {
                if (*s++ == '/')
@@ -144,7 +113,7 @@ int main(int argc, char **argv)
                exit((*(applet->main)) (argc, argv));
        }
 
-       return(busybox_main(argc, argv));
+       error_msg_and_die("applet not found\n");
 }
 
 
@@ -152,6 +121,36 @@ int busybox_main(int argc, char **argv)
 {
        int col = 0, len, i;
 
+#ifdef BB_FEATURE_INSTALLER    
+       /* 
+        * This style of argument parsing doesn't scale well 
+        * in the event that busybox starts wanting more --options.
+        * If someone has a cleaner approach, by all means implement it.
+        */
+       if (argc > 1 && (strcmp(argv[1], "--install") == 0)) {
+               int use_symbolic_links = 0;
+               int rc = 0;
+               char *busybox;
+
+               /* to use symlinks, or not to use symlinks... */
+               if (argc > 2) {
+                       if ((strcmp(argv[2], "-s") == 0)) { 
+                               use_symbolic_links = 1; 
+                       }
+               }
+
+               /* link */
+               busybox = busybox_fullpath();
+               if (busybox) {
+                       install_links(busybox, use_symbolic_links);
+                       free(busybox);
+               } else {
+                       rc = 1;
+               }
+               return rc;
+       }
+#endif /* BB_FEATURE_INSTALLER */
+
        argc--;
 
        /* If we've already been here once, exit now */
@@ -190,7 +189,7 @@ int busybox_main(int argc, char **argv)
 
        /* Fix up the argv pointers */
        len = argv[1] - argv[0];
-       memmove(argv, argv+1, sizeof(char *) * (argc + 1));
+       memmove(argv, argv + 1, sizeof(char *) * (argc + 1));
        for (i = 0; i < argc; i++)
                argv[i] -= len;