← Commit list

d80eecb86

Denys Vlasenko
Denys Vlasenko
2018-04-29
SUCCESS Duration: 145s

Subject

cat: fix cat -e and cat -v erroneously numbering 1st line

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+3 -3
@@ -112,10 +112,10 @@ static int catv(unsigned opts, char **argv)
int retval = EXIT_SUCCESS;
int fd;
#if ENABLE_FEATURE_CATN
- unsigned lineno = 0;
- unsigned eol_char = (opts & (CAT_OPT_n|CAT_OPT_b)) ? '\n' : 0x100;
+ bool eol_seen = (opts & (CAT_OPT_n|CAT_OPT_b));
+ unsigned eol_char = (eol_seen ? '\n' : 0x100);
unsigned skip_num_on = (opts & CAT_OPT_b) ? '\n' : 0x100;
- bool eol_seen = 1;
+ unsigned lineno = 0;
#endif
BUILD_BUG_ON(CAT_OPT_e != VISIBLE_ENDLINE);
testsuite/cat.tests+21 -0
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Copyright 2018 by Denys Vlasenko <[email protected]>
+# Licensed under GPLv2, see file LICENSE in this source tree.
+
+. ./testing.sh
+
+# testing "description" "command" "result" "infile" "stdin"
+testing 'cat -e' \
+ 'cat -e' \
+ 'foo$\n' \
+ '' \
+ 'foo\n'
+
+testing 'cat -v' \
+ 'cat -v' \
+ 'foo\n' \
+ '' \
+ 'foo\n'
+
+exit $FAILCOUNT