introduce LONE_CHAR (optimized strcmp with one-char string)
This commit is contained in:
		@@ -175,14 +175,16 @@ int bb_test(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	int res;
 | 
			
		||||
 | 
			
		||||
	if (strcmp(argv[0], "[") == 0) {
 | 
			
		||||
		if (strcmp(argv[--argc], "]")) {
 | 
			
		||||
	if (LONE_CHAR(argv[0], '[')) {
 | 
			
		||||
		--argc;
 | 
			
		||||
		if (NOT_LONE_CHAR(argv[argc], ']')) {
 | 
			
		||||
			bb_error_msg("missing ]");
 | 
			
		||||
			return 2;
 | 
			
		||||
		}
 | 
			
		||||
		argv[argc] = NULL;
 | 
			
		||||
	} else if (strcmp(argv[0], "[[") == 0) {
 | 
			
		||||
		if (strcmp(argv[--argc], "]]")) {
 | 
			
		||||
		--argc;
 | 
			
		||||
		if (strcmp(argv[argc], "]]")) {
 | 
			
		||||
			bb_error_msg("missing ]]");
 | 
			
		||||
			return 2;
 | 
			
		||||
		}
 | 
			
		||||
@@ -578,6 +580,6 @@ static int is_a_group_member(gid_t gid)
 | 
			
		||||
 | 
			
		||||
int test_main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	exit(bb_test(argc, argv));
 | 
			
		||||
	return bb_test(argc, argv);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user