Module Name:    src
Committed By:   snj
Date:           Tue Jul  5 19:03:31 UTC 2016

Modified Files:
        src/bin/cat [netbsd-7]: cat.c
        src/distrib/sets/lists/tests [netbsd-7]: mi
        src/tests/bin/cat [netbsd-7]: Makefile t_cat.sh
Added Files:
        src/tests/bin/cat [netbsd-7]: d_se_output.in d_se_output.out

Log Message:
Pull up following revision(s) (requested by sevan in ticket #1182):
        bin/cat/cat.c: revision 1.57
        distrib/sets/lists/tests/mi: revision 1.675
        tests/bin/cat/Makefile: revision 1.2
        tests/bin/cat/d_se_output.in: revision 1.1
        tests/bin/cat/d_se_output.out: revision 1.1
        tests/bin/cat/t_cat.sh: revision 1.3
When invoked with -se, print a '$' on blank lines
Obtained from OpenBSD r1.13 of src/bin/cat/cat.c
Closes PR bin/51250
Reviewed by Christos@
--
Add a unit test for PR bin/51250 called se_output. se_output checks
the output of cat when invoked with '-se', to ensure that a '$' is
printed on blank lines.
--
Add input/output files for new test case - fix build


To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.54.4.1 src/bin/cat/cat.c
cvs rdiff -u -r1.584.2.3 -r1.584.2.4 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.1 -r1.1.12.1 src/tests/bin/cat/Makefile
cvs rdiff -u -r0 -r1.1.2.2 src/tests/bin/cat/d_se_output.in \
    src/tests/bin/cat/d_se_output.out
cvs rdiff -u -r1.2 -r1.2.12.1 src/tests/bin/cat/t_cat.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/bin/cat/cat.c
diff -u src/bin/cat/cat.c:1.54 src/bin/cat/cat.c:1.54.4.1
--- src/bin/cat/cat.c:1.54	Sun Dec  8 08:32:13 2013
+++ src/bin/cat/cat.c	Tue Jul  5 19:03:31 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: cat.c,v 1.54 2013/12/08 08:32:13 spz Exp $	*/
+/* $NetBSD: cat.c,v 1.54.4.1 2016/07/05 19:03:31 snj Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -44,7 +44,7 @@ __COPYRIGHT(
 #if 0
 static char sccsid[] = "@(#)cat.c	8.2 (Berkeley) 4/27/95";
 #else
-__RCSID("$NetBSD: cat.c,v 1.54 2013/12/08 08:32:13 spz Exp $");
+__RCSID("$NetBSD: cat.c,v 1.54.4.1 2016/07/05 19:03:31 snj Exp $");
 #endif
 #endif /* not lint */
 
@@ -175,18 +175,16 @@ cook_buf(FILE *fp)
 	line = gobble = 0;
 	for (prev = '\n'; (ch = getc(fp)) != EOF; prev = ch) {
 		if (prev == '\n') {
-			if (ch == '\n') {
-				if (sflag) {
-					if (!gobble && nflag && !bflag)
-						(void)fprintf(stdout,
-							"%6d\t\n", ++line);
-					else if (!gobble && putchar(ch) == EOF)
-						break;
+			if (sflag) {
+				if (ch == '\n') {
+					if (gobble)
+						continue;
 					gobble = 1;
-					continue;
+				} else
+					gobble = 0;
 				}
 				if (nflag) {
-					if (!bflag) {
+					if (!bflag || ch != '\n') {
 						(void)fprintf(stdout,
 						    "%6d\t", ++line);
 						if (ferror(stdout))
@@ -198,13 +196,7 @@ cook_buf(FILE *fp)
 							break;
 					}
 				}
-			} else if (nflag) {
-				(void)fprintf(stdout, "%6d\t", ++line);
-				if (ferror(stdout))
-					break;
 			}
-		}
-		gobble = 0;
 		if (ch == '\n') {
 			if (eflag)
 				if (putchar('$') == EOF)

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.584.2.3 src/distrib/sets/lists/tests/mi:1.584.2.4
--- src/distrib/sets/lists/tests/mi:1.584.2.3	Thu Aug  6 21:13:43 2015
+++ src/distrib/sets/lists/tests/mi	Tue Jul  5 19:03:31 2016
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.584.2.3 2015/08/06 21:13:43 snj Exp $
+# $NetBSD: mi,v 1.584.2.4 2016/07/05 19:03:31 snj Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -801,6 +801,8 @@
 ./usr/tests/bin/cat/Kyuafile			tests-bin-tests		atf,kyua
 ./usr/tests/bin/cat/d_align.in			tests-bin-tests		atf
 ./usr/tests/bin/cat/d_align.out			tests-bin-tests		atf
+./usr/tests/bin/cat/d_se_output.in		tests-bin-tests		atf
+./usr/tests/bin/cat/d_se_output.out		tests-bin-tests		atf
 ./usr/tests/bin/cat/t_cat			tests-bin-tests		atf
 ./usr/tests/bin/cp				tests-bin-tests
 ./usr/tests/bin/cp/Atffile			tests-bin-tests		atf

Index: src/tests/bin/cat/Makefile
diff -u src/tests/bin/cat/Makefile:1.1 src/tests/bin/cat/Makefile:1.1.12.1
--- src/tests/bin/cat/Makefile:1.1	Tue Mar 27 08:16:33 2012
+++ src/tests/bin/cat/Makefile	Tue Jul  5 19:03:31 2016
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2012/03/27 08:16:33 jruoho Exp $
+# $NetBSD: Makefile,v 1.1.12.1 2016/07/05 19:03:31 snj Exp $
 
 .include <bsd.own.mk>
 
@@ -8,5 +8,7 @@ TESTS_SH=	t_cat
 FILESDIR=	${TESTSDIR}
 FILES+=		d_align.in
 FILES+=		d_align.out
+FILES+= 	d_se_output.in
+FILES+= 	d_se_output.out
 
 .include <bsd.test.mk>

Index: src/tests/bin/cat/t_cat.sh
diff -u src/tests/bin/cat/t_cat.sh:1.2 src/tests/bin/cat/t_cat.sh:1.2.12.1
--- src/tests/bin/cat/t_cat.sh:1.2	Tue Mar 27 17:57:02 2012
+++ src/tests/bin/cat/t_cat.sh	Tue Jul  5 19:03:31 2016
@@ -1,4 +1,4 @@
-# $NetBSD: t_cat.sh,v 1.2 2012/03/27 17:57:02 jruoho Exp $
+# $NetBSD: t_cat.sh,v 1.2.12.1 2016/07/05 19:03:31 snj Exp $
 #
 # Copyright (c) 2012 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -52,8 +52,20 @@ nonexistent_body() {
 		-x "cat /some/name/that/does/not/exist"
 }
 
+atf_test_case se_output
+se_output_head() {
+	atf_set "descr" "Test that cat(1) prints a $ sign " \
+			"on blank lines with options '-se' (PR bin/51250)"
+}
+
+se_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_se_output.out \
+		-x "cat -se $(atf_get_srcdir)/d_se_output.in"
+}
+
 atf_init_test_cases()
 {
 	atf_add_test_case align
 	atf_add_test_case nonexistent
+	atf_add_test_case se_output
 }

Added files:

Index: src/tests/bin/cat/d_se_output.in
diff -u /dev/null src/tests/bin/cat/d_se_output.in:1.1.2.2
--- /dev/null	Tue Jul  5 19:03:31 2016
+++ src/tests/bin/cat/d_se_output.in	Tue Jul  5 19:03:31 2016
@@ -0,0 +1,3 @@
+
+Of course it runs NetBSD
+
Index: src/tests/bin/cat/d_se_output.out
diff -u /dev/null src/tests/bin/cat/d_se_output.out:1.1.2.2
--- /dev/null	Tue Jul  5 19:03:31 2016
+++ src/tests/bin/cat/d_se_output.out	Tue Jul  5 19:03:31 2016
@@ -0,0 +1,3 @@
+$
+Of course it runs NetBSD$
+$

Reply via email to