[git commit] fix errors found with make_single_applets.sh

Denys Vlasenko vda.linux at googlemail.com
Wed Apr 12 13:48:19 UTC 2017


commit: https://git.busybox.net/busybox/commit/?id=d9eb40c18519d10aac3b3d008aa7e338ae830b72
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/cat.c              | 27 ---------------------------
 coreutils/who.c              |  5 +++--
 include/libbb.h              |  2 +-
 libbb/bb_cat.c               | 33 +++++++++++++++++++++++++++++++++
 libbb/print_numbered_lines.c | 29 +++++++++++++++++++++++++++++
 procps/kill.c                | 10 +++++-----
 6 files changed, 71 insertions(+), 35 deletions(-)

diff --git a/coreutils/cat.c b/coreutils/cat.c
index 4169d95..96970b1 100644
--- a/coreutils/cat.c
+++ b/coreutils/cat.c
@@ -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)
 {
diff --git a/coreutils/who.c b/coreutils/who.c
index ec9d251..4adead7 100644
--- a/coreutils/who.c
+++ b/coreutils/who.c
@@ -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'.  */
 
diff --git a/include/libbb.h b/include/libbb.h
index 0407163..2c30bde 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -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);
diff --git a/libbb/bb_cat.c b/libbb/bb_cat.c
new file mode 100644
index 0000000..0a4a350
--- /dev/null
+++ b/libbb/bb_cat.c
@@ -0,0 +1,33 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2003  Manuel Novoa III  <mjn3 at codepoet.org>
+ *
+ * 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;
+}
diff --git a/libbb/print_numbered_lines.c b/libbb/print_numbered_lines.c
new file mode 100644
index 0000000..702aed1
--- /dev/null
+++ b/libbb/print_numbered_lines.c
@@ -0,0 +1,29 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2017 Denys Vlasenko <vda.linux at googlemail.com>
+ *
+ * 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);
+}
diff --git a/procps/kill.c b/procps/kill.c
index 7ae5bee..975a3e8 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -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


More information about the busybox-cvs mailing list