← Commit list

c849e72c0

Ron Yorston
Ron Yorston
2021-02-02
SUCCESS Duration: 294s

Subject

nl: ensure '-b n' option displays file content

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 →

coreutils/cat.c+1 -1
@@ -201,7 +201,7 @@ int cat_main(int argc UNUSED_PARAM, char **argv)
ns.start = 1;
ns.inc = 1;
ns.sep = "\t";
- ns.empty_str = "\n";
+ ns.empty_str = NULL;
ns.all = !(opts & CAT_OPT_b); /* -n without -b */
ns.nonempty = (opts & CAT_OPT_b); /* -b (with or without -n) */
exitcode = EXIT_SUCCESS;
coreutils/nl.c+1 -1
@@ -68,7 +68,7 @@ int nl_main(int argc UNUSED_PARAM, char **argv)
&ns.width, &ns.sep, &ns.start, &ns.inc, &opt_b);
ns.all = (opt_b[0] == 'a');
ns.nonempty = (opt_b[0] == 't');
- ns.empty_str = xasprintf("%*s\n", ns.width + (int)strlen(ns.sep), "");
+ ns.empty_str = xasprintf("%*s", ns.width + (int)strlen(ns.sep), "");
argv += optind;
if (!*argv)
libbb/print_numbered_lines.c+2 -1
@@ -22,10 +22,11 @@ int FAST_FUNC print_numbered_lines(struct number_state *ns, const char *filename
if (ns->all
|| (ns->nonempty && line[0])
) {
- printf("%*u%s%s\n", ns->width, N, ns->sep, line);
+ printf("%*u%s", ns->width, N, ns->sep);
N += ns->inc;
} else if (ns->empty_str)
fputs(ns->empty_str, stdout);
+ puts(line);
free(line);
}
ns->start = N;
testsuite/cat.tests+24 -0
@@ -22,4 +22,28 @@ testing 'cat -v' \
'foo\n'
SKIP=
+optional FEATURE_CATN
+testing 'cat -n' \
+ 'cat -n' \
+"\
+ 1 line 1
+ 2
+ 3 line 3
+" \
+ '' \
+ 'line 1\n\nline 3\n'
+SKIP=
+
+optional FEATURE_CATN
+testing 'cat -b' \
+ 'cat -b' \
+"\
+ 1 line 1
+
+ 2 line 3
+" \
+ '' \
+ 'line 1\n\nline 3\n'
+SKIP=
+
exit $FAILCOUNT
testsuite/nl.tests+39 -0
@@ -0,0 +1,39 @@
+#!/bin/sh
+# Copyright 2021 by Ron Yorston
+# Licensed under GPLv2, see file LICENSE in this source tree.
+
+. ./testing.sh
+
+# testing "test name" "commands" "expected result" "file input" "stdin"
+
+testing "nl numbers all lines" \
+ "nl -b a input" \
+"\
+ 1 line 1
+ 2
+ 3 line 3
+" \
+ "line 1\n\nline 3\n" \
+ ""
+
+testing "nl numbers non-empty lines" \
+ "nl -b t input" \
+"\
+ 1 line 1
+
+ 2 line 3
+" \
+ "line 1\n\nline 3\n" \
+ ""
+
+testing "nl numbers no lines" \
+ "nl -b n input" \
+"\
+ line 1
+
+ line 3
+" \
+ "line 1\n\nline 3\n" \
+ ""
+
+exit $FAILCOUNT