fix errors found with make_single_applets.sh
No binary (build failed)
—
(log yok)
| @@ -16,8 +16,6 @@ | |
| //applet:IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat)) | |
| //kbuild:lib-$(CONFIG_CAT) += cat.o | |
| - | // For -n: |
| - | //kbuild:lib-$(CONFIG_CAT) += nl.o |
| /* BB_AUDIT SUSv3 compliant */ | |
| /* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */ | |
| @@ -49,31 +47,6 @@ | |
| /* This is a NOFORK applet. Be very careful! */ | |
| - | |
| - | int bb_cat(char **argv) |
| - | { |
| - | int fd; |
| - | int retval = EXIT_SUCCESS; |
| - | |
| - | if (!*argv) |
| - | argv = (char**) &bb_argv_dash; |
| - | |
| - | do { |
| - | fd = open_or_warn_stdin(*argv); |
| - | if (fd >= 0) { |
| - | /* This is not a xfunc - never exits */ |
| - | off_t r = bb_copyfd_eof(fd, STDOUT_FILENO); |
| - | if (fd != STDIN_FILENO) |
| - | close(fd); |
| - | if (r >= 0) |
| - | continue; |
| - | } |
| - | retval = EXIT_FAILURE; |
| - | } while (*++argv); |
| - | |
| - | return retval; |
| - | } |
| - | |
| int cat_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int cat_main(int argc UNUSED_PARAM, char **argv) | |
| { | |
| @@ -40,11 +40,12 @@ | |
| // APPLET_ODDNAME:name main location suid_type help | |
| //applet:IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users)) | |
| - | //applet:IF_USERS(APPLET_ODDNAME(w, who, BB_DIR_USR_BIN, BB_SUID_DROP, w)) |
| + | //applet:IF_W( APPLET_ODDNAME(w, who, BB_DIR_USR_BIN, BB_SUID_DROP, w)) |
| //applet:IF_WHO( APPLET( who, BB_DIR_USR_BIN, BB_SUID_DROP)) | |
| //kbuild:lib-$(CONFIG_USERS) += who.o | |
| - | //kbuild:lib-$(CONFIG_WHO) += who.o |
| + | //kbuild:lib-$(CONFIG_W) += who.o |
| + | //kbuild:lib-$(CONFIG_WHO) += who.o |
| /* BB_AUDIT SUSv3 _NOT_ compliant -- missing options -b, -d, -l, -m, -p, -q, -r, -s, -t, -T, -u; Missing argument 'file'. */ | |
| @@ -1247,7 +1247,7 @@ extern void bb_logenv_override(void) FAST_FUNC; | |
| /* Applets which are useful from another applets */ | |
| - | int bb_cat(char** argv); |
| + | int bb_cat(char** argv) FAST_FUNC; |
| /* If shell needs them, they exist even if not enabled as applets */ | |
| int echo_main(int argc, char** argv) IF_ECHO(MAIN_EXTERNALLY_VISIBLE); | |
| int printf_main(int argc, char **argv) IF_PRINTF(MAIN_EXTERNALLY_VISIBLE); | |
| @@ -0,0 +1,33 @@ | |
| + | /* vi: set sw=4 ts=4: */ |
| + | /* |
| + | * Copyright (C) 2003 Manuel Novoa III <[email protected]> |
| + | * |
| + | * Licensed under GPLv2, see file LICENSE in this source tree. |
| + | */ |
| + | //kbuild:lib-y += bb_cat.o |
| + | |
| + | #include "libbb.h" |
| + | |
| + | int FAST_FUNC bb_cat(char **argv) |
| + | { |
| + | int fd; |
| + | int retval = EXIT_SUCCESS; |
| + | |
| + | if (!*argv) |
| + | argv = (char**) &bb_argv_dash; |
| + | |
| + | do { |
| + | fd = open_or_warn_stdin(*argv); |
| + | if (fd >= 0) { |
| + | /* This is not a xfunc - never exits */ |
| + | off_t r = bb_copyfd_eof(fd, STDOUT_FILENO); |
| + | if (fd != STDIN_FILENO) |
| + | close(fd); |
| + | if (r >= 0) |
| + | continue; |
| + | } |
| + | retval = EXIT_FAILURE; |
| + | } while (*++argv); |
| + | |
| + | return retval; |
| + | } |
| @@ -0,0 +1,29 @@ | |
| + | /* vi: set sw=4 ts=4: */ |
| + | /* |
| + | * Copyright (C) 2017 Denys Vlasenko <[email protected]> |
| + | * |
| + | * Licensed under GPLv2, see file LICENSE in this source tree. |
| + | */ |
| + | //kbuild:lib-y += print_numbered_lines.o |
| + | |
| + | #include "libbb.h" |
| + | |
| + | void FAST_FUNC print_numbered_lines(struct number_state *ns, const char *filename) |
| + | { |
| + | FILE *fp = fopen_or_warn_stdin(filename); |
| + | unsigned N = ns->start; |
| + | char *line; |
| + | |
| + | while ((line = xmalloc_fgetline(fp)) != NULL) { |
| + | if (ns->all |
| + | || (ns->nonempty && line[0]) |
| + | ) { |
| + | printf("%*u%s%s\n", ns->width, N, ns->sep, line); |
| + | N += ns->inc; |
| + | } else if (ns->empty_str) |
| + | fputs(ns->empty_str, stdout); |
| + | free(line); |
| + | } |
| + | |
| + | fclose(fp); |
| + | } |
| @@ -201,7 +201,7 @@ int kill_main(int argc UNUSED_PARAM, char **argv) | |
| pid_t sid; | |
| procps_status_t* p = NULL; | |
| /* compat: exitcode 2 is "no one was signaled" */ | |
| - | int ret = 2; |
| + | errors = 2; |
| /* Find out our session id */ | |
| sid = getsid(pid); | |
| @@ -229,7 +229,7 @@ int kill_main(int argc UNUSED_PARAM, char **argv) | |
| arg = *args++; | |
| if (arg[0] != '-' || arg[1] != 'o') { | |
| bb_error_msg("bad option '%s'", arg); | |
| - | ret = 1; |
| + | errors = 1; |
| goto resume; | |
| } | |
| arg += 2; | |
| @@ -238,21 +238,21 @@ int kill_main(int argc UNUSED_PARAM, char **argv) | |
| omit = bb_strtoi(arg, NULL, 10); | |
| if (errno) { | |
| bb_error_msg("invalid number '%s'", arg); | |
| - | ret = 1; |
| + | errors = 1; |
| goto resume; | |
| } | |
| if (p->pid == omit) | |
| goto dont_kill; | |
| } | |
| kill(p->pid, signo); | |
| - | ret = 0; |
| + | errors = 0; |
| dont_kill: ; | |
| } | |
| resume: | |
| /* And let them continue */ | |
| if (signo != SIGSTOP && signo != SIGCONT) | |
| kill(-1, SIGCONT); | |
| - | return ret; |
| + | return errors; |
| } | |
| #if ENABLE_KILL || ENABLE_KILLALL | |