fix errors found with make_single_applets.sh
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
0cecbe7d5d
commit
d9eb40c185
@ -16,8 +16,6 @@
|
|||||||
//applet:IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
|
//applet:IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
|
||||||
|
|
||||||
//kbuild:lib-$(CONFIG_CAT) += cat.o
|
//kbuild:lib-$(CONFIG_CAT) += cat.o
|
||||||
// For -n:
|
|
||||||
//kbuild:lib-$(CONFIG_CAT) += nl.o
|
|
||||||
|
|
||||||
/* BB_AUDIT SUSv3 compliant */
|
/* BB_AUDIT SUSv3 compliant */
|
||||||
/* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */
|
/* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */
|
||||||
@ -49,31 +47,6 @@
|
|||||||
|
|
||||||
/* This is a NOFORK applet. Be very careful! */
|
/* 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, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
int cat_main(int argc UNUSED_PARAM, char **argv)
|
int cat_main(int argc UNUSED_PARAM, char **argv)
|
||||||
{
|
{
|
||||||
|
@ -40,11 +40,12 @@
|
|||||||
|
|
||||||
// APPLET_ODDNAME:name main location suid_type help
|
// 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(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))
|
//applet:IF_WHO( APPLET( who, BB_DIR_USR_BIN, BB_SUID_DROP))
|
||||||
|
|
||||||
//kbuild:lib-$(CONFIG_USERS) += who.o
|
//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'. */
|
/* 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 */
|
/* 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 */
|
/* 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 echo_main(int argc, char** argv) IF_ECHO(MAIN_EXTERNALLY_VISIBLE);
|
||||||
int printf_main(int argc, char **argv) IF_PRINTF(MAIN_EXTERNALLY_VISIBLE);
|
int printf_main(int argc, char **argv) IF_PRINTF(MAIN_EXTERNALLY_VISIBLE);
|
||||||
|
33
libbb/bb_cat.c
Normal file
33
libbb/bb_cat.c
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/* vi: set sw=4 ts=4: */
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2003 Manuel Novoa III <mjn3@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;
|
||||||
|
}
|
29
libbb/print_numbered_lines.c
Normal file
29
libbb/print_numbered_lines.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/* vi: set sw=4 ts=4: */
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2017 Denys Vlasenko <vda.linux@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);
|
||||||
|
}
|
@ -201,7 +201,7 @@ int kill_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
pid_t sid;
|
pid_t sid;
|
||||||
procps_status_t* p = NULL;
|
procps_status_t* p = NULL;
|
||||||
/* compat: exitcode 2 is "no one was signaled" */
|
/* compat: exitcode 2 is "no one was signaled" */
|
||||||
int ret = 2;
|
errors = 2;
|
||||||
|
|
||||||
/* Find out our session id */
|
/* Find out our session id */
|
||||||
sid = getsid(pid);
|
sid = getsid(pid);
|
||||||
@ -229,7 +229,7 @@ int kill_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
arg = *args++;
|
arg = *args++;
|
||||||
if (arg[0] != '-' || arg[1] != 'o') {
|
if (arg[0] != '-' || arg[1] != 'o') {
|
||||||
bb_error_msg("bad option '%s'", arg);
|
bb_error_msg("bad option '%s'", arg);
|
||||||
ret = 1;
|
errors = 1;
|
||||||
goto resume;
|
goto resume;
|
||||||
}
|
}
|
||||||
arg += 2;
|
arg += 2;
|
||||||
@ -238,21 +238,21 @@ int kill_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
omit = bb_strtoi(arg, NULL, 10);
|
omit = bb_strtoi(arg, NULL, 10);
|
||||||
if (errno) {
|
if (errno) {
|
||||||
bb_error_msg("invalid number '%s'", arg);
|
bb_error_msg("invalid number '%s'", arg);
|
||||||
ret = 1;
|
errors = 1;
|
||||||
goto resume;
|
goto resume;
|
||||||
}
|
}
|
||||||
if (p->pid == omit)
|
if (p->pid == omit)
|
||||||
goto dont_kill;
|
goto dont_kill;
|
||||||
}
|
}
|
||||||
kill(p->pid, signo);
|
kill(p->pid, signo);
|
||||||
ret = 0;
|
errors = 0;
|
||||||
dont_kill: ;
|
dont_kill: ;
|
||||||
}
|
}
|
||||||
resume:
|
resume:
|
||||||
/* And let them continue */
|
/* And let them continue */
|
||||||
if (signo != SIGSTOP && signo != SIGCONT)
|
if (signo != SIGSTOP && signo != SIGCONT)
|
||||||
kill(-1, SIGCONT);
|
kill(-1, SIGCONT);
|
||||||
return ret;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLE_KILL || ENABLE_KILLALL
|
#if ENABLE_KILL || ENABLE_KILLALL
|
||||||
|
Loading…
Reference in New Issue
Block a user