← Commit list

9173c9cce

Sören Tempel
Sören Tempel
2021-12-29
SUCCESS Duration: 154s

Subject

ed: add support for -s command-line option as mandated by POSIX

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/ed.c+11 -4
@@ -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 = (1 << 0),
+};
+
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]) {