Update internal.h to conditionally include asm/string.h
[oweals/busybox.git] / busybox.c
index 9ee5d2e3a064eb031e87cee2f6b46402703224ba..191dee13fdc3d2a74d1847488c997f839dd9d843 100644 (file)
--- a/busybox.c
+++ b/busybox.c
@@ -189,6 +189,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_MATH
        {"math", math_main, _BB_DIR_USR_BIN},
 #endif
+#ifdef BB_MD5SUM
+       {"md5sum", md5sum_main, _BB_DIR_USR_BIN},
+#endif
 #ifdef BB_MKDIR
        {"mkdir", mkdir_main, _BB_DIR_BIN},
 #endif
@@ -324,6 +327,12 @@ const struct BB_applet applets[] = {
 #ifdef BB_UPTIME
        {"uptime", uptime_main, _BB_DIR_USR_BIN},
 #endif
+#ifdef BB_UUENCODE
+       {"uuencode", uuencode_main, _BB_DIR_USR_BIN},
+#endif
+#ifdef BB_UUDECODE
+       {"uudecode", uudecode_main, _BB_DIR_USR_BIN},
+#endif
 #ifdef BB_USLEEP
        {"usleep", usleep_main, _BB_DIR_BIN},
 #endif
@@ -365,18 +374,11 @@ int main(int argc, char **argv)
 
        while (a->name != 0) {
                if (strcmp(name, a->name) == 0) {
-                       int status;
-
-                       status = ((*(a->main)) (argc, argv));
-                       if (status < 0) {
-                               fprintf(stderr, "%s: %s\n", a->name, strerror(errno));
-                       }
-                       fprintf(stderr, "\n");
-                       exit(status);
+                       exit(((*(a->main)) (argc, argv)));
                }
                a++;
        }
-       exit(busybox_main(argc, argv));
+       return(busybox_main(argc, argv));
 }
 
 
@@ -410,11 +412,10 @@ int busybox_main(int argc, char **argv)
                }
                fprintf(stderr, "\n\n");
                exit(-1);
-       } else {
-               /* If we've already been here once, exit now */
-               been_there_done_that = 1;
-               return (main(argc, argv));
        }
+       /* If we've already been here once, exit now */
+       been_there_done_that = 1;
+       return (main(argc, argv));
 }
 
 /*