Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 May 2015 11:41:39 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r282722 - head/usr.bin/col
Message-ID:  <201505101141.t4ABfdRU079879@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Sun May 10 11:41:38 2015
New Revision: 282722
URL: https://svnweb.freebsd.org/changeset/base/282722

Log:
  For half and reverse line feeds, recognize both SUSv2-style escape-digit
  and BSD-style escape-control-char sequences in the input stream.
  
  Submitted by:	schwarze at OpenBSD
  Discussed with:	schwarze at OpenBSD
  Obtained from:	OpenBSD

Modified:
  head/usr.bin/col/col.1
  head/usr.bin/col/col.c

Modified: head/usr.bin/col/col.1
==============================================================================
--- head/usr.bin/col/col.1	Sun May 10 11:24:16 2015	(r282721)
+++ head/usr.bin/col/col.1	Sun May 10 11:41:38 2015	(r282722)
@@ -31,7 +31,7 @@
 .\"     @(#)col.1	8.1 (Berkeley) 6/29/93
 .\" $FreeBSD$
 .\"
-.Dd August 4, 2004
+.Dd May 10, 2015
 .Dt COL 1
 .Os
 .Sh NAME
@@ -82,18 +82,33 @@ recognized and interpreted by itself, wh
 Output multiple spaces instead of tabs.
 .El
 .Pp
-The control sequences for carriage motion that
+In the input stream,
 .Nm
-understands and their decimal values are listed in the following
-table:
+understands both the escape sequences of the form escape-digit
+mandated by
+.St -susv2
+and the traditional
+.Bx
+format escape-control-character.
+The control sequences for carriage motion and their ASCII values
+are as follows:
 .Pp
 .Bl -tag -width "carriage return" -compact
+.It ESC\-BELL
+reverse line feed (escape then bell).
 .It ESC\-7
-reverse line feed (escape then 7)
+reverse line feed (escape then 7).
+.It ESC\-BACKSPACE
+half reverse line feed (escape then backspace).
 .It ESC\-8
-half reverse line feed (escape then 8)
+half reverse line feed (escape then 8).
+.It ESC\-TAB
+half forward line feed (escape than tab).
 .It ESC\-9
-half forward line feed (escape then 9)
+half forward line feed (escape then 9).
+In
+.Fl f
+mode, this sequence may also occur in the output stream.
 .It backspace
 moves back one column (8); ignored in the first column
 .It carriage return

Modified: head/usr.bin/col/col.c
==============================================================================
--- head/usr.bin/col/col.c	Sun May 10 11:24:16 2015	(r282721)
+++ head/usr.bin/col/col.c	Sun May 10 11:41:38 2015	(r282722)
@@ -205,12 +205,23 @@ main(int argc, char **argv)
 				continue;
 			case ESC:		/* just ignore EOF */
 				switch(getwchar()) {
+				/*
+				 * In the input stream, accept both the
+				 * XPG5 sequences ESC-digit and the
+				 * traditional BSD sequences ESC-ctrl.
+				 */
+				case '\007':
+					/* FALLTHROUGH */
 				case RLF:
 					addto_lineno(&cur_line, -2);
 					break;
+				case '\010':
+					/* FALLTHROUGH */
 				case RHLF:
 					addto_lineno(&cur_line, -1);
 					break;
+				case '\011':
+					/* FALLTHROUGH */
 				case FHLF:
 					addto_lineno(&cur_line, 1);
 					if (cur_line > max_line)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505101141.t4ABfdRU079879>