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:
		
				
					committed by
					
						
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							ba12081a9e
						
					
				
				
					commit
					ce824aecf2
				
			@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user