XFree86 3.1.2Eb - xterm patch #17 - 1996/7/2 - T.Dickey
This patch implements for xterm several minor features from ISO 6429 which are
useful for terminfo applications. The HPA and VPA control sequences allow
cursor movement along a row or column, cutting down a little on the characters
transmitted. The other codes allow resetting specific graphic rendition
attributes without modifying the other attributes.
(now if someone just had time to implement blinking cursors...)
--------------------------------------------------------------------------------
doc/specs/xterm/ctlseqs.ms | 13 +++++++++++!!
programs/xterm/VTPrsTbl.c | 6 !!!!!!
programs/xterm/VTparse.def | 2 ++
programs/xterm/VTparse.h | 2 ++
programs/xterm/charproc.c | 28 ++++++++++++++++++++++++++++
programs/xterm/termcap | 4 !!!!
programs/xterm/terminfo | 8 ++++!!!!
7 files changed, 47 insertions, 16 modifications
--------------------------------------------------------------------------------
Index: VTPrsTbl.c
*** XFree86-3.1.2Eb/xc/programs/xterm/VTPrsTbl.c Thu Dec 28 05:23:43 1995
--- XFree86-current/xc/programs/xterm/VTPrsTbl.c Tue Jul 2 19:10:22 1996
***************
*** 454,460 ****
CASE_CUB,
CASE_GROUND_STATE,
CASE_GROUND_STATE,
! CASE_GROUND_STATE,
/* H I J K */
CASE_CUP,
CASE_GROUND_STATE,
--- 454,460 ----
CASE_CUB,
CASE_GROUND_STATE,
CASE_GROUND_STATE,
! CASE_HPA,
/* H I J K */
CASE_CUP,
CASE_GROUND_STATE,
***************
*** 491,504 ****
CASE_GROUND_STATE,
CASE_DA1,
/* d e f g */
! CASE_GROUND_STATE,
CASE_GROUND_STATE,
CASE_CUP,
CASE_TBC,
/* h i j k */
CASE_SET,
CASE_GROUND_STATE,
! CASE_GROUND_STATE,
CASE_GROUND_STATE,
/* l m n o */
CASE_RST,
--- 491,504 ----
CASE_GROUND_STATE,
CASE_DA1,
/* d e f g */
! CASE_VPA,
CASE_GROUND_STATE,
CASE_CUP,
CASE_TBC,
/* h i j k */
CASE_SET,
CASE_GROUND_STATE,
! CASE_HPA,
CASE_GROUND_STATE,
/* l m n o */
CASE_RST,
Index: VTparse.def
*** XFree86-3.1.2Eb/xc/programs/xterm/VTparse.def Tue Sep 15 15:28:32 1992
--- XFree86-current/xc/programs/xterm/VTparse.def Tue Jul 2 19:10:22 1996
***************
*** 77,79 ****
--- 77,81 ----
CASE_HP_MEM_LOCK
CASE_HP_MEM_UNLOCK
CASE_HP_BUGGY_LL
+ CASE_HPA
+ CASE_VPA
Index: VTparse.h
*** XFree86-3.1.2Eb/xc/programs/xterm/VTparse.h Tue Sep 15 15:28:32 1992
--- XFree86-current/xc/programs/xterm/VTparse.h Tue Jul 2 19:10:22 1996
***************
*** 107,109 ****
--- 107,111 ----
#define CASE_HP_MEM_LOCK 68
#define CASE_HP_MEM_UNLOCK 69
#define CASE_HP_BUGGY_LL 70
+ #define CASE_HPA 71
+ #define CASE_VPA 72
Index: charproc.c
*** XFree86-3.1.2Eb/xc/programs/xterm/charproc.c Sun Jun 30 12:03:00 1996
--- XFree86-current/xc/programs/xterm/charproc.c Tue Jul 2 19:10:22 1996
***************
*** 966,971 ****
--- 966,986 ----
parsestate = groundtable;
break;
+ case CASE_VPA:
+ if((row = param[0]) < 1)
+ row = 1;
+ CursorSet(screen, row-1, screen->cur_col, term->flags);
+ parsestate = groundtable;
+ break;
+
+ case CASE_HPA:
+ /* HPA | CHA */
+ if((col = param[0]) < 1)
+ col = 1;
+ CursorSet(screen, screen->cur_row, col-1, term->flags);
+ parsestate = groundtable;
+ break;
+
case CASE_HP_BUGGY_LL:
/* Some HP-UX applications have the bug that they
assume ESC F goes to the lower left corner of
***************
*** 1119,1124 ****
--- 1134,1152 ----
break;
case 7:
term->flags |= INVERSE;
+ break;
+ case 22:
+ term->flags &= ~BOLD;
+ break;
+ case 24:
+ term->flags &= ~UNDERLINE;
+ break;
+ case 25:
+ /* Blink, really */
+ term->flags &= ~BOLD;
+ break;
+ case 27:
+ term->flags &= ~INVERSE;
break;
case 30:
case 31:
Index: termcap
*** XFree86-3.1.2Eb/xc/programs/xterm/termcap Mon May 13 15:15:18 1996
--- XFree86-current/xc/programs/xterm/termcap Tue Jul 2 19:10:22 1996
***************
*** 33,43 ****
:li#24:md=\E[1m:me=\E[m:mr=\E[7m:ms:nd=\E[C:\
:eA=\E)0:as=^N:ae=^O:\
:ml=\El:mu=\Em:\
! :sc=\E7:rc=\E8:sf=\n:so=\E[7m:se=\E[m:sr=\EM:\
:st=\EH:\
:ti=\E7\E[?47h:te=\E[2J\E[?47l\E8:\
:vi=\E[?25l:ve=\E[?25h:\
! :up=\E[A:us=\E[4m:ue=\E[m:xn:\
:ut:Co#8:NC#7:op=\E100m:AB=\E[4%dm:AF=\E[3%dm:
v2|xterm-65|xterm with tall window 65x80 (X Window System):\
:li#65:tc=xterm:
--- 33,43 ----
:li#24:md=\E[1m:me=\E[m:mr=\E[7m:ms:nd=\E[C:\
:eA=\E)0:as=^N:ae=^O:\
:ml=\El:mu=\Em:\
! :sc=\E7:rc=\E8:sf=\n:so=\E[7m:se=\E[27m:sr=\EM:\
:st=\EH:\
:ti=\E7\E[?47h:te=\E[2J\E[?47l\E8:\
:vi=\E[?25l:ve=\E[?25h:\
! :up=\E[A:us=\E[4m:ue=\E[24m:xn:\
:ut:Co#8:NC#7:op=\E100m:AB=\E[4%dm:AF=\E[3%dm:
v2|xterm-65|xterm with tall window 65x80 (X Window System):\
:li#65:tc=xterm:
Index: terminfo
*** XFree86-3.1.2Eb/xc/programs/xterm/terminfo Mon May 13 15:15:18 1996
--- XFree86-current/xc/programs/xterm/terminfo Tue Jul 2 19:10:22 1996
***************
*** 40,45 ****
--- 40,46 ----
el1=\E[1K$<3>,
enacs=\E(B\E)0,
home=\E[H,
+ hpa=\E[%i%p1%dj,
ht=^I,
hts=\EH,
il=\E[%p1%dL,
***************
*** 90,97 ****
rmcup=\E[2J\E[?47l\E8,
rmir=\E[4l,
rmkx=\E[?1l\E>,
! rmso=\E[m,
! rmul=\E[m,
rs2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
sc=\E7,
setab=\E[4%p1%dm,
--- 91,98 ----
rmcup=\E[2J\E[?47l\E8,
rmir=\E[4l,
rmkx=\E[?1l\E>,
! rmso=\E[27m,
! rmul=\E[24m,
rs2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
sc=\E7,
setab=\E[4%p1%dm,
***************
*** 107,117 ****
--- 108,120 ----
smso=\E[7m,
smul=\E[4m,
tbc=\E[3g,
+ vpa=\E[%i%p1%dd,
xterm-65|xterm with tall window 65x80 (X Window System),
lines#65,
use=xterm,
xterm-bold|xterm with bold instead of underline (X Window System),
smul=\E[1m,
+ rmul=\E[22m,
use=xterm,
xtermm|monochrome xterm (X Window System),
colors@,
***************
*** 126,131 ****
--- 129,135 ----
use=xterm,
xterm-boldso|xterm with bold for standout (X Window System),
smso=\E[1m,
+ rmso=\E[22m,
use=xterm,
#
# vi may work better with this entry, because vi
Index: ctlseqs.ms
*** XFree86-3.1.2Eb/xc/doc/specs/xterm/ctlseqs.ms Mon Mar 11 13:48:46 1996
--- XFree86-current/xc/doc/specs/xterm/ctlseqs.ms Tue Jul 2 19:18:50 1996
***************
*** 134,139 ****
--- 134,140 ----
.[] D D
.[] E E
.[] F F
+ .[] G G
.[] H H
.[] J J
.[] K K
***************
*** 317,322 ****
--- 318,325 ----
Cursor Forward \*(Ps Times (default = 1) (CUF)
.IP \\*(Es\\*([[\\*(Ps\\*s\\*D
Cursor Backward \*(Ps Times (default = 1) (CUB)
+ .IP \\*(Es\\*([[\\*(Pm\\*s\\*G
+ Cursor Character Absolute [column] (default = [row,1]) (CHA)
.IP \\*(Es\\*([[\\*(Ps\\*s\\*;\\*(Ps\\*s\\*H
Cursor Position [row;column] (default = [1,1]) (CUP)
.IP \\*(Es\\*([[\\*(Ps\\*s\\*J
***************
*** 344,349 ****
--- 347,354 ----
\*(Ps = \*0 or omitted \(-> request attributes from terminal
\(-> \*(Es\*([[\*?\*1\*;\*2\*c (``I am a VT100 with Advanced
Video Option.'')
+ .IP \\*(Es\\*([[\\*(Pm\\*s\\*d
+ Line Position Absolute [row] (default = [1,column]) (VPA)
.IP \\*(Es\\*([[\\*(Ps\\*s\\*;\\*(Ps\\*s\\*f
Horizontal and Vertical Position [row;column] (default = [1,1]) (HVP)
.IP \\*(Es\\*([[\\*(Ps\\*s\\*g
***************
*** 354,359 ****
--- 359,366 ----
Set Mode (SM)
\*(Ps = \*4 \(-> Insert Mode (IRM)
\*(Ps = \*2\*0 \(-> Automatic Newline (LNM)
+ .IP \\*(Es\\*([[\\*(Pm\\*s\\*j
+ Character Position Absolute [column] (default = [row,1]) (HPA)
.IP \\*(Es\\*([[\\*(Pm\\*s\\*l
Reset Mode (RM)
\*(Ps = \*4 \(-> Replace Mode (IRM)
***************
*** 362,370 ****
Character Attributes (SGR)
\*(Ps = \*0 \(-> Normal (default)
\*(Ps = \*1 \(-> Bold
! \*(Ps = \*4 \(-> Underscore
\*(Ps = \*5 \(-> Blink (appears as Bold)
\*(Ps = \*7 \(-> Inverse
\*(Ps = \*3\*0 \(-> Set foreground color to Black
\*(Ps = \*3\*1 \(-> Set foreground color to Red
\*(Ps = \*3\*2 \(-> Set foreground color to Green
--- 369,381 ----
Character Attributes (SGR)
\*(Ps = \*0 \(-> Normal (default)
\*(Ps = \*1 \(-> Bold
! \*(Ps = \*4 \(-> Underlined
\*(Ps = \*5 \(-> Blink (appears as Bold)
\*(Ps = \*7 \(-> Inverse
+ \*(Ps = \*2\*2 \(-> Normal (neither bold nor faint)
+ \*(Ps = \*2\*4 \(-> Not underlined
+ \*(Ps = \*2\*5 \(-> Steady (not blinking)
+ \*(Ps = \*2\*7 \(-> Positive (not inverse)
\*(Ps = \*3\*0 \(-> Set foreground color to Black
\*(Ps = \*3\*1 \(-> Set foreground color to Red
\*(Ps = \*3\*2 \(-> Set foreground color to Green