uname,individual: fix improper printf usage
uname,awk: small code shrink function old new delta uname_main 175 166 -9 nvalloc 167 157 -10 evaluate 6381 6370 -11 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-30) Total: -30 bytes
This commit is contained in:
		| @@ -14,13 +14,11 @@ const char *applet_name; | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
| 	applet_name = argv[0]; | ||||
|  | ||||
| 	return APPLET_main(argc,argv); | ||||
| } | ||||
|  | ||||
| void bb_show_usage(void) | ||||
| { | ||||
| 	printf(APPLET_full_usage "\n"); | ||||
|  | ||||
| 	fputs(APPLET_full_usage "\n", stdout); | ||||
| 	exit(EXIT_FAILURE); | ||||
| } | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
|    -m, --machine	sun | ||||
|    -a, --all		SunOS rocky8 4.0  sun | ||||
|  | ||||
|    The default behavior is equivalent to `-s'. | ||||
|    The default behavior is equivalent to '-s'. | ||||
|  | ||||
|    David MacKenzie <djm@gnu.ai.mit.edu> */ | ||||
|  | ||||
| @@ -39,47 +39,43 @@ typedef struct { | ||||
| } uname_info_t; | ||||
|  | ||||
| static const char options[] ALIGN1 = "snrvmpa"; | ||||
| static const unsigned short utsname_offset[] ALIGN2 = { | ||||
| 	offsetof(uname_info_t,name.sysname), | ||||
| 	offsetof(uname_info_t,name.nodename), | ||||
| 	offsetof(uname_info_t,name.release), | ||||
| 	offsetof(uname_info_t,name.version), | ||||
| 	offsetof(uname_info_t,name.machine), | ||||
| 	offsetof(uname_info_t,processor) | ||||
| static const unsigned short utsname_offset[] = { | ||||
| 	offsetof(uname_info_t, name.sysname), | ||||
| 	offsetof(uname_info_t, name.nodename), | ||||
| 	offsetof(uname_info_t, name.release), | ||||
| 	offsetof(uname_info_t, name.version), | ||||
| 	offsetof(uname_info_t, name.machine), | ||||
| 	offsetof(uname_info_t, processor) | ||||
| }; | ||||
|  | ||||
| int uname_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||||
| int uname_main(int argc, char **argv) | ||||
| int uname_main(int argc ATTRIBUTE_UNUSED, char **argv) | ||||
| { | ||||
| 	uname_info_t uname_info; | ||||
| #if defined(__sparc__) && defined(__linux__) | ||||
| 	char *fake_sparc = getenv("FAKE_SPARC"); | ||||
| #endif | ||||
| 	const unsigned short int *delta; | ||||
| 	const unsigned short *delta; | ||||
| 	char toprint; | ||||
|  | ||||
| 	toprint = getopt32(argv, options); | ||||
|  | ||||
| 	if (argc != optind) { | ||||
| 	if (argv[optind]) { /* coreutils-6.9 compat */ | ||||
| 		bb_show_usage(); | ||||
| 	} | ||||
|  | ||||
| 	if (toprint & (1 << 6)) { | ||||
| 	if (toprint & (1 << 6)) { /* -a => all opts on */ | ||||
| 		toprint = 0x3f; | ||||
| 	} | ||||
|  | ||||
| 	if (toprint == 0) { | ||||
| 		toprint = 1;			/* sysname */ | ||||
| 	if (toprint == 0) { /* no opts => -s (sysname) */ | ||||
| 		toprint = 1; | ||||
| 	} | ||||
|  | ||||
| 	if (uname(&uname_info.name) == -1) { | ||||
| 		bb_error_msg_and_die("cannot get system name"); | ||||
| 	} | ||||
| 	uname(&uname_info.name); /* never fails */ | ||||
|  | ||||
| #if defined(__sparc__) && defined(__linux__) | ||||
| 	if ((fake_sparc != NULL) | ||||
| 		&& ((fake_sparc[0] == 'y') | ||||
| 			|| (fake_sparc[0] == 'Y'))) { | ||||
| 	if (fake_sparc && (fake_sparc[0] | 0x20) == 'y') { | ||||
| 		strcpy(uname_info.name.machine, "sparc"); | ||||
| 	} | ||||
| #endif | ||||
| @@ -89,7 +85,8 @@ int uname_main(int argc, char **argv) | ||||
| 	delta = utsname_offset; | ||||
| 	do { | ||||
| 		if (toprint & 1) { | ||||
| 			printf("%s", ((char *)(&uname_info)) + *delta); | ||||
| 			/* printf would not be safe here */ | ||||
| 			fputs((char *)(&uname_info) + *delta, stdout); | ||||
| 			if (toprint > 1) { | ||||
| 				bb_putchar(' '); | ||||
| 			} | ||||
| @@ -98,5 +95,5 @@ int uname_main(int argc, char **argv) | ||||
| 	} while (toprint >>= 1); | ||||
| 	bb_putchar('\n'); | ||||
|  | ||||
| 	fflush_stdout_and_exit(EXIT_SUCCESS); | ||||
| 	fflush_stdout_and_exit(EXIT_SUCCESS); /* coreutils-6.9 compat */ | ||||
| } | ||||
|   | ||||
| @@ -852,11 +852,11 @@ static var *nvalloc(int n) | ||||
|  | ||||
| 	if (!g_cb) { | ||||
| 		size = (n <= MINNVBLOCK) ? MINNVBLOCK : n; | ||||
| 		g_cb = xmalloc(sizeof(nvblock) + size * sizeof(var)); | ||||
| 		g_cb = xzalloc(sizeof(nvblock) + size * sizeof(var)); | ||||
| 		g_cb->size = size; | ||||
| 		g_cb->pos = g_cb->nv; | ||||
| 		g_cb->prev = pb; | ||||
| 		g_cb->next = NULL; | ||||
| 		/*g_cb->next = NULL; - xzalloc did it */ | ||||
| 		if (pb) pb->next = g_cb; | ||||
| 	} | ||||
|  | ||||
| @@ -2028,9 +2028,9 @@ static var *exec_builtin(node *op, var *res) | ||||
| 		if (i < 0) i = 0; | ||||
| 		n = (nargs > 2) ? getvar_i(av[2]) : l-i; | ||||
| 		if (n < 0) n = 0; | ||||
| 		s = xmalloc(n+1); | ||||
| 		s = xzalloc(n + 1); | ||||
| 		strncpy(s, as[0]+i, n); | ||||
| 		s[n] = '\0'; | ||||
| 		/*s[n] = '\0'; - xzalloc did it */ | ||||
| 		setvar_p(res, s); | ||||
| 		break; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user