uname,individual: fix improper printf usage uname,awk: small code shrink
No binary (build failed)
—
(log yok)
| @@ -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 <[email protected]> */ | |
| @@ -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; | |