Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/bin/cat When invoked with -se, print a '$' on blank lines



details:   https://anonhg.NetBSD.org/src/rev/44c51a1851a2
branches:  trunk
changeset: 345928:44c51a1851a2
user:      sevan <sevan%NetBSD.org@localhost>
date:      Thu Jun 16 00:52:37 2016 +0000

description:
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@

diffstat:

 bin/cat/cat.c |  26 +++++++++-----------------
 1 files changed, 9 insertions(+), 17 deletions(-)

diffs (58 lines):

diff -r c54818d44bfd -r 44c51a1851a2 bin/cat/cat.c
--- a/bin/cat/cat.c     Thu Jun 16 00:45:37 2016 +0000
+++ b/bin/cat/cat.c     Thu Jun 16 00:52:37 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cat.c,v 1.56 2016/06/16 00:45:37 sevan Exp $       */
+/* $NetBSD: cat.c,v 1.57 2016/06/16 00:52:37 sevan Exp $       */
 
 /*
  * Copyright (c) 1989, 1993
@@ -44,7 +44,7 @@
 #if 0
 static char sccsid[] = "@(#)cat.c      8.2 (Berkeley) 4/27/95";
 #else
-__RCSID("$NetBSD: cat.c,v 1.56 2016/06/16 00:45:37 sevan Exp $");
+__RCSID("$NetBSD: cat.c,v 1.57 2016/06/16 00:52:37 sevan Exp $");
 #endif
 #endif /* not lint */
 
@@ -175,18 +175,16 @@
        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 @@
                                                        break;
                                        }
                                }
-                       } else if (nflag) {
-                               (void)fprintf(stdout, "%6d\t", ++line);
-                               if (ferror(stdout))
-                                       break;
                        }
-               }
-               gobble = 0;
                if (ch == '\n') {
                        if (eflag)
                                if (putchar('$') == EOF)



Home | Main Index | Thread Index | Old Index