Fixed segfault with 'cut -f 1 -d:' and added 'cut -s' suport.
[oweals/busybox.git] / busybox.c
index 9ee5d2e3a064eb031e87cee2f6b46402703224ba..84629d2187acdfafceb6e00fa4addce61ea4a3e7 100644 (file)
--- a/busybox.c
+++ b/busybox.c
@@ -72,6 +72,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_DATE
        {"date", date_main, _BB_DIR_BIN},
 #endif
+#ifdef BB_DC
+       {"dc", dc_main, _BB_DIR_USR_BIN},
+#endif
 #ifdef BB_DD
        {"dd", dd_main, _BB_DIR_BIN},
 #endif
@@ -186,8 +189,8 @@ const struct BB_applet applets[] = {
 #ifdef BB_MAKEDEVS
        {"makedevs", makedevs_main, _BB_DIR_SBIN},
 #endif
-#ifdef BB_MATH
-       {"math", math_main, _BB_DIR_USR_BIN},
+#ifdef BB_MD5SUM
+       {"md5sum", md5sum_main, _BB_DIR_USR_BIN},
 #endif
 #ifdef BB_MKDIR
        {"mkdir", mkdir_main, _BB_DIR_BIN},
@@ -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));
 }
 
 /*