Applied patch from Jim Gleason that makes it so busybox will still work even

if you rename it.
This commit is contained in:
Mark Whitley 2001-06-15 16:54:25 +00:00
parent 6bad1fa1fd
commit bd4b621e91
2 changed files with 20 additions and 2 deletions

View File

@ -84,13 +84,22 @@ struct BB_applet *find_applet_by_name(const char *name)
void run_applet_by_name(const char *name, int argc, char **argv) void run_applet_by_name(const char *name, int argc, char **argv)
{ {
static int recurse_level = 0;
recurse_level++;
/* Do a binary search to find the applet entry given the name. */ /* Do a binary search to find the applet entry given the name. */
if ((applet_using = find_applet_by_name(name)) != NULL) { if ((applet_using = find_applet_by_name(name)) != NULL) {
applet_name = applet_using->name; applet_name = applet_using->name;
if (argv[1] && strcmp(argv[1], "--help") == 0) if (argv[1] && strcmp(argv[1], "--help") == 0) {
show_usage(); show_usage();
}
exit((*(applet_using->main)) (argc, argv)); exit((*(applet_using->main)) (argc, argv));
} }
/* Just in case they have renamed busybox - Check argv[1] */
if (recurse_level == 1) {
run_applet_by_name("busybox", argc, argv);
}
recurse_level = 0;
} }

View File

@ -84,13 +84,22 @@ struct BB_applet *find_applet_by_name(const char *name)
void run_applet_by_name(const char *name, int argc, char **argv) void run_applet_by_name(const char *name, int argc, char **argv)
{ {
static int recurse_level = 0;
recurse_level++;
/* Do a binary search to find the applet entry given the name. */ /* Do a binary search to find the applet entry given the name. */
if ((applet_using = find_applet_by_name(name)) != NULL) { if ((applet_using = find_applet_by_name(name)) != NULL) {
applet_name = applet_using->name; applet_name = applet_using->name;
if (argv[1] && strcmp(argv[1], "--help") == 0) if (argv[1] && strcmp(argv[1], "--help") == 0) {
show_usage(); show_usage();
}
exit((*(applet_using->main)) (argc, argv)); exit((*(applet_using->main)) (argc, argv));
} }
/* Just in case they have renamed busybox - Check argv[1] */
if (recurse_level == 1) {
run_applet_by_name("busybox", argc, argv);
}
recurse_level = 0;
} }