Applied, thank you
On Wed, Dec 29, 2021 at 4:16 PM <[email protected]> wrote: > > From: Sören Tempel <[email protected]> > > Apart from the -p option, POSIX also mandates an -s option which > suppresses the output of byte counts for the e, E, r, and w command. > From these commands, Busybox ed presently only implements the r and w > commands. This commit ensures that these two command do not output any > bytes counts when the -s option is passed. The shell escape command, > also effected by the -s option, is not implemented by Busybox at the > moment. > --- > Instead of introducing a new global variable, this version of the patch > reuses the existing option_mask32 variable. > > editors/ed.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/editors/ed.c b/editors/ed.c > index dfe0f1a77..36b045733 100644 > --- a/editors/ed.c > +++ b/editors/ed.c > @@ -18,7 +18,7 @@ > > //applet:IF_ED(APPLET(ed, BB_DIR_BIN, BB_SUID_DROP)) > > -//usage:#define ed_trivial_usage "[-p PROMPT] [FILE]" > +//usage:#define ed_trivial_usage "[-p PROMPT] [-s] [FILE]" > //usage:#define ed_full_usage "" > > #include "libbb.h" > @@ -71,6 +71,11 @@ struct globals { > SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ > } while (0) > > +#define OPTION_STR "sp:" > +enum { > + OPT_s = 0x01, > +}; > + > static int bad_nums(int num1, int num2, const char *for_what) > { > if ((num1 < 1) || (num2 > lastNum) || (num1 > num2)) { > @@ -458,7 +463,8 @@ static int readLines(const char *file, int num) > * in the following format: > * "%d\n", <number of bytes read> > */ > - printf("%u\n", charCount); > + if (!(option_mask32 & OPT_s)) > + printf("%u\n", charCount); > return TRUE; > } > > @@ -510,7 +516,8 @@ static int writeLines(const char *file, int num1, int > num2) > * unless the -s option was specified, in the following format: > * "%d\n", <number of bytes written> > */ > - printf("%u\n", charCount); > + if (!(option_mask32 & OPT_s)) > + printf("%u\n", charCount); > return TRUE; > } > > @@ -1005,7 +1012,7 @@ int ed_main(int argc UNUSED_PARAM, char **argv) > lines.prev = &lines; > > prompt = ""; /* no prompt by default */ > - getopt32(argv, "p:", &prompt); > + getopt32(argv, OPTION_STR, &prompt); > argv += optind; > > if (argv[0]) { > _______________________________________________ > busybox mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
