libbb: move common code into run_applet_and_exit
Both calls to run_applet_and_exit are followed by the same code to print an error message and return status 127. Remove this duplication and make run_applet_and_exit static. function old new delta run_applet_and_exit 675 667 -8 main 119 92 -27 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-35) Total: -35 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
ba12081a9e
commit
ce824aecf2
@ -1239,8 +1239,6 @@ const struct hwtype *get_hwntype(int type) FAST_FUNC;
|
||||
|
||||
#ifndef BUILD_INDIVIDUAL
|
||||
extern int find_applet_by_name(const char *name) FAST_FUNC;
|
||||
/* Returns only if applet is not found. */
|
||||
extern void run_applet_and_exit(const char *name, char **argv) FAST_FUNC;
|
||||
extern void run_applet_no_and_exit(int a, char **argv) NORETURN FAST_FUNC;
|
||||
#endif
|
||||
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
#include "usage_compressed.h"
|
||||
|
||||
static void run_applet_and_exit(const char *name, char **argv) NORETURN;
|
||||
|
||||
#if ENABLE_SHOW_USAGE && !ENABLE_FEATURE_COMPRESS_USAGE
|
||||
static const char usage_messages[] ALIGN1 = UNPACKED_USAGE;
|
||||
@ -837,12 +838,6 @@ static int busybox_main(char **argv)
|
||||
* "#!/bin/busybox"-style wrappers */
|
||||
applet_name = bb_get_last_path_component_nostrip(argv[0]);
|
||||
run_applet_and_exit(applet_name, argv);
|
||||
|
||||
/*bb_error_msg_and_die("applet not found"); - sucks in printf */
|
||||
full_write2_str(applet_name);
|
||||
full_write2_str(": applet not found\n");
|
||||
/* POSIX: "If a command is not found, the exit status shall be 127" */
|
||||
exit(127);
|
||||
}
|
||||
# endif
|
||||
|
||||
@ -884,7 +879,7 @@ void FAST_FUNC run_applet_no_and_exit(int applet_no, char **argv)
|
||||
exit(applet_main[applet_no](argc, argv));
|
||||
}
|
||||
|
||||
void FAST_FUNC run_applet_and_exit(const char *name, char **argv)
|
||||
static NORETURN void run_applet_and_exit(const char *name, char **argv)
|
||||
{
|
||||
int applet;
|
||||
|
||||
@ -896,6 +891,12 @@ void FAST_FUNC run_applet_and_exit(const char *name, char **argv)
|
||||
applet = find_applet_by_name(name);
|
||||
if (applet >= 0)
|
||||
run_applet_no_and_exit(applet, argv);
|
||||
|
||||
/*bb_error_msg_and_die("applet not found"); - links in printf */
|
||||
full_write2_str(applet_name);
|
||||
full_write2_str(": applet not found\n");
|
||||
/* POSIX: "If a command is not found, the exit status shall be 127" */
|
||||
exit(127);
|
||||
}
|
||||
|
||||
#endif /* !defined(SINGLE_APPLET_MAIN) */
|
||||
@ -968,11 +969,5 @@ int main(int argc UNUSED_PARAM, char **argv)
|
||||
parse_config_file(); /* ...maybe, if FEATURE_SUID_CONFIG */
|
||||
|
||||
run_applet_and_exit(applet_name, argv);
|
||||
|
||||
/*bb_error_msg_and_die("applet not found"); - sucks in printf */
|
||||
full_write2_str(applet_name);
|
||||
full_write2_str(": applet not found\n");
|
||||
/* POSIX: "If a command is not found, the exit status shall be 127" */
|
||||
exit(127);
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user