#ifdef BB_CAT //bin
{"cat", cat_more_main},
#endif
-#ifdef BB_CHMOD //bin
- {"chmod", chmod_main},
-#endif
-#ifdef BB_CHOWN //bin
- {"chown", chown_main},
- {"chgrp", chown_main},
+#ifdef BB_CHMOD_CHOWN_CHGRP //bin
+ {"chmod", chmod_chown_chgrp_main},
+ {"chown", chmod_chown_chgrp_main},
+ {"chgrp", chmod_chown_chgrp_main},
#endif
#ifdef BB_CHROOT //sbin
{"chroot", chroot_main},
{"false", false_main},
#endif
#ifdef BB_FDFLUSH //bin
- {"fdflush", monadic_main},
+ {"fdflush", fdflush_main},
#endif
#ifdef BB_FIND //usr/bin
{"find", find_main},
{"length", length_main},
#endif
#ifdef BB_LN //bin
- {"ln", dyadic_main},
+ {"ln", ln_main},
#endif
#ifdef BB_LOADKMAP //sbin
{"loadkmap", loadkmap_main},
#endif
-#ifdef BB_LOSETUP //sbin
- {"losetup", losetup_main},
-#endif
#ifdef BB_LS //bin
{"ls", ls_main},
#endif
{"math", math_main},
#endif
#ifdef BB_MKDIR //bin
- {"mkdir", monadic_main},
+ {"mkdir", mkdir_main},
#endif
#ifdef BB_MKNOD //bin
{"mknod", mknod_main},
{"rm", rm_main},
#endif
#ifdef BB_RMDIR //bin
- {"rmdir", monadic_main},
+ {"rmdir", rmdir_main},
#endif
#ifdef BB_SLEEP //bin
{"sleep", sleep_main},
#ifdef BB_TAR //bin
{"tar", tar_main},
#endif
-#ifdef BB_SWAPOFF //sbin
- {"swapoff", monadic_main},
-#endif
-#ifdef BB_SWAPON //sbin
- {"swapon", monadic_main},
+#ifdef BB_SWAPONOFF //sbin
+ {"swapon", swap_on_off_main},
+ {"swapoff", swap_on_off_main},
#endif
#ifdef BB_SYNC //bin
{"sync", sync_main},
{"true", true_main},
#endif
#ifdef BB_UMOUNT //bin
- {"umount", umount_main},
+ {"umount", umount_main},
#endif
#ifdef BB_UPDATE //sbin
{"update", update_main},
}
a++;
}
- return (busybox_main(argc, argv));
+ exit (busybox_main(argc, argv));
}
argc--;
argv++;
- /* If we've already been here once, exit now */
- if (been_there_done_that == 1)
- return -1;
- been_there_done_that = 1;
-
- if (argc < 1) {
+ if (been_there_done_that == 1 || argc < 1) {
const struct Applet *a = applets;
fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n",
BB_VER, BB_BT);
fprintf(stderr, "\nCurrently defined functions:\n");
while (a->name != 0) {
- col+=fprintf(stderr, "%s%s", ((col==0)? "\t":", "), a->name);
- a++;
+ col+=fprintf(stderr, "%s%s", ((col==0)? "\t":", "), (a++)->name);
if (col>60) {
fprintf(stderr, ",\n");
col=0;
}
fprintf(stderr, "\n\n");
exit(-1);
- } else
+ } else {
+ /* If we've already been here once, exit now */
+ been_there_done_that = 1;
return (main(argc, argv));
+ }
}