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
This commit is contained in:
parent
0659e9b5d2
commit
8bdd359838
@ -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, which are listed below.
|
||||
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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user