# ------------------------------------------------------------------------------
# input.c | 29 ++++++++++++++++++++---------
# main.c | 6 ++----
# termcap | 2 +-
# terminfo | 17 ++++++++---------
# trace.c | 2 +-
# version.h | 4 ++--
# xterm.h | 10 ++++++++++
# xterm.log.html | 34 +++++++++++++++++++++++++++++++++-
# xterm.man | 12 ++++++------
# 9 files changed, 83 insertions, 33 deletions
# ------------------------------------------------------------------------------
Index: input.c
--- xterm-123/input.c Fri Jan 21 19:19:54 2000
+++ xterm-124/input.c Thu Jan 27 18:58:10 2000
@@ -4,7 +4,7 @@
*/
/*
- * Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+ * Copyright 1999-2000 by Thomas E. Dickey <dickey@clark.net>
*
* All Rights Reserved
*
@@ -149,6 +149,9 @@
case XK_KP_Delete:
case XK_KP_Insert:
#endif
+#ifdef XK_ISO_Left_Tab
+ case XK_ISO_Left_Tab:
+#endif
return True;
default:
return False;
@@ -531,12 +534,7 @@
} else if (IsFunctionKey(keysym)
|| IsMiscFunctionKey(keysym)
|| IsEditFunctionKey(keysym)
- || ((keysym == XK_Delete)
- && ((modify_parm > 1)
-#if OPT_SUNPC_KBD
- || sunKeyboard
-#endif
- ))) {
+ || (keysym == XK_Delete)) {
#if OPT_SUNPC_KBD
if (sunKeyboard) {
if ((event->state & ControlMask)
@@ -572,15 +570,22 @@
else {
reply.a_type = CSI;
reply.a_nparam = 1;
+ reply.a_final = 0;
+ MODIFIER_PARM
if (sunFunctionKeys) {
reply.a_param[0] = sunfuncvalue (keysym);
reply.a_final = 'z';
+#ifdef XK_ISO_Left_Tab
+ } else if (keysym == XK_ISO_Left_Tab) {
+ reply.a_nparam = 0;
+ reply.a_final = 'Z';
+#endif
} else {
reply.a_param[0] = dec_code;
reply.a_final = '~';
}
- MODIFIER_PARM
- if (reply.a_param[0] > 0)
+ if (reply.a_final != 0
+ && (reply.a_nparam == 0 || reply.a_param[0] >= 0))
unparseseq(&reply, pty);
}
key = TRUE;
@@ -641,6 +646,9 @@
*string = cmp;
} else if (eightbit) {
unparseputc (ESC, pty); /* escape */
+ } else if (*string == '?'
+ && (event->state & ControlMask) != 0) {
+ *string = 127;
}
}
while (nbytes-- > 0)
@@ -715,6 +723,9 @@
case XK_Select: return(4);
case XK_Prior: return(5);
case XK_Next: return(6);
+#ifdef XK_ISO_Left_Tab
+ case XK_ISO_Left_Tab: return('Z');
+#endif
default: return(-1);
}
}
Index: main.c
--- xterm-123/main.c Tue Jan 25 01:45:01 2000
+++ xterm-124/main.c Thu Jan 27 21:01:34 2000
@@ -4402,10 +4402,9 @@
s++;
c = ((*s == '?') ? 0177 : CONTROL(*s));
if (*s == '-') {
-#if defined(HAVE_TERMIOS_H) && defined(HAVE_TCGETATTR)
-# ifdef HAVE_POSIX_VDISABLE
+#if defined(HAVE_POSIX_VDISABLE)
c = _POSIX_VDISABLE;
-# else
+#elif defined(_PC_VDISABLE)
errno = 0;
c = fpathconf(0, _PC_VDISABLE);
if (c == -1) {
@@ -4413,7 +4412,6 @@
continue; /* skip this (error) */
c = 0377;
}
-# endif
#elif defined(VDISABLE)
c = VDISABLE;
#else
Index: termcap
--- xterm-123/termcap Tue Jan 25 01:45:01 2000
+++ xterm-124/termcap Thu Jan 27 21:01:34 2000
@@ -32,7 +32,7 @@
:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\
:kn#12:km:\
:kH=\EOF::@7=\EOF:kh=\EOH:\
- :@0=\EOH:kI=\E[2~:kD=^?:\
+ :@0=\EOH:kI=\E[2~:kD=\E[3~:\
:*6=\EOF:kP=\E[5~:kN=\E[6~:\
:kb=^H:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:\
:li#24:md=\E[1m:me=\E[m^O:mr=\E[7m:ms:nd=\E[C:\
Index: terminfo
--- xterm-123/terminfo Thu Dec 30 05:01:00 1999
+++ xterm-124/terminfo Tue Jan 25 05:53:51 2000
@@ -101,12 +101,11 @@
kPRV=\E[5;5~,
kRIT=\EO5C,
kb2=\EOE,
- kbs=^H,
+ kcbt=\E[Z,
kcub1=\EOD,
kcud1=\EOB,
kcuf1=\EOC,
kcuu1=\EOA,
- kdch1=\177,
kend=\EOF,
kent=\EOM,
kf1=\EOP,
@@ -164,8 +163,8 @@
kpp=\E[5~,
use=xterm-basic,
#
-# No function keys in this chunk, used for building the keyboard variants.
-xterm-basic|xterm terminal emulator - no function keys (XFree86),
+# This chunk is used for building the VT220/Sun/PC keyboard variants.
+xterm-basic|xterm terminal emulator - common (XFree86),
am,
bce,
km,
@@ -218,6 +217,8 @@
ind=^J,
invis=\E[8m,
is2=\E[!p\E[?3;4l\E[4l\E>,
+ kbs=^H,
+ kdch1=\E[3~,
mc0=\E[i,
mc4=\E[4i,
mc5=\E[5i,
@@ -270,14 +271,13 @@
ka1=\EOw,
ka3=\EOy,
kbeg=\EOu,
- kbs=^H,
kc1=\EOq,
kc3=\EOs,
+ kcbt=\E[Z,
kcub1=\EOD,
kcud1=\EOB,
kcuf1=\EOC,
kcuu1=\EOA,
- kdch1=\E[3~,
kend=\E[4~,
kent=\EOM,
kf1=\EOP,
@@ -338,13 +338,11 @@
# kf30-kf45 are keysyms XK_R1 through XK_R15 on the Sun keyboard.
xterm-sun|XFree86 xterm with sun function keys,
kb2=\E[218z,
- kbs=^H,
kcpy=\E[197z,
kcub1=\EOD,
kcud1=\EOB,
kcuf1=\EOC,
kcuu1=\EOA,
- kdch1=\177,
kend=\E[220z,
kent=\EOM,
kf1=\E[224z,
@@ -406,7 +404,7 @@
kich1=\EQ,
knp=\ES,
kpp=\ET,
- use=xterm,
+ use=xterm-basic,
#
# Other variants:
xterm-24|xterms|vs100|xterm terminal emulator (X Window System),
@@ -631,6 +629,7 @@
kbs=^H,
kc1=\217q,
kc3=\217s,
+ kcbt=\233Z,
kcub1=\217D,
kcud1=\217B,
kcuf1=\217C,
Index: trace.c
--- xterm-123/trace.c Fri Jan 21 19:19:54 2000
+++ xterm-124/trace.c Mon Jan 24 20:28:18 2000
@@ -4,7 +4,7 @@
/************************************************************
-Copyright 1997 by Thomas E. Dickey <dickey@clark.net>
+Copyright 1997-2000 by Thomas E. Dickey <dickey@clark.net>
All Rights Reserved
Index: version.h
--- xterm-123/version.h Tue Jan 25 01:45:01 2000
+++ xterm-124/version.h Thu Jan 27 21:01:34 2000
@@ -6,5 +6,5 @@
* XFree86 to which this version of xterm has been built. The number in
* parentheses is my patch number (T.Dickey).
*/
-#define XTERM_PATCH 123
-#define XFREE86_VERSION "XFree86 3.9.17a"
+#define XTERM_PATCH 124
+#define XFREE86_VERSION "XFree86 3.9.17b"
Index: xterm.h
--- xterm-123/xterm.h Fri Jan 21 19:19:54 2000
+++ xterm-124/xterm.h Thu Jan 27 19:25:01 2000
@@ -201,6 +201,16 @@
/***====================================================================***/
+#ifndef HAVE_CONFIG_H
+
+#if defined(_POSIX_VDISABLE) && (_POSIX_VDISABLE != -1) && defined(HAVE_UNISTD_H)
+#define HAVE_POSIX_VDISABLE 1
+#endif
+
+#endif /* HAVE_CONFIG_H */
+
+/***====================================================================***/
+
#define XtNallowSendEvents "allowSendEvents"
#define XtNalwaysHighlight "alwaysHighlight"
#define XtNanswerbackString "answerbackString"
Index: xterm.log.html
--- xterm-123/xterm.log.html Tue Jan 25 01:45:01 2000
+++ xterm-124/xterm.log.html Thu Jan 27 21:04:19 2000
@@ -41,6 +41,7 @@
xc/programs/Xserver/hw/xfree86).
<UL>
+<LI><A HREF="#xterm_124">Patch #124 - 2000/1/27 - XFree86 3.9.17b</A>
<LI><A HREF="#xterm_123">Patch #123 - 2000/1/22 - XFree86 3.9.17a</A>
<LI><A HREF="#xterm_122">Patch #122 - 1999/12/28 - XFree86 3.9.16f</A>
<LI><A HREF="#xterm_121">Patch #121 - 1999/11/14 - XFree86 3.9.16c</A>
@@ -167,7 +168,38 @@
<LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
</UL>
-<H1><A NAME="xterm_123">Patch #123 - 1999/1/22 - XFree86 3.9.17a</A></H1>
+<H1><A NAME="xterm_124">Patch #124 - 2000/1/27 - XFree86 3.9.17b</A></H1>
+<ul>
+ <li>change coding of editing keypad's "Delete" key to
+ <escape>[3~, in the default (Sun/PC) keyboard mode.
+ This makes the terminfo kdch1 capability independent of the
+ coding of the backarrow key, which sends either backspace (8)
+ or DEL (127). The reason for doing this (compatibility with
+ the <em>screen</em> program) outweighs the choice of DEL (127)
+ which was used in X11R5/X11R6 xterms. The <em>screen</em>
+ program translates whatever matches kdch1 into <escape>[3~,
+ even if it happens to be the stty erase character.
+
+ <li>add encoding for control/?, to work around xmodmap or key
+ translations which may confuse backspace and delete. A control/?
+ will send DEL (127), and a control/H will of course send backspace
+ (8).
+
+ <li>add encoding for kcbt to <escape>[Z (fixes Debian #54840).
+
+ <li>minor correction to logic that encodes Sun and DEC function keys
+ to avoid sending an escape sequence if the key symbol is not found
+ in xterm's lookup table.
+
+ <li>simplify ifdef's in main.c for POSIX VDISABLE so the "^-" pattern
+ is more likely to be implemented when <em>imake</em> configures xterm
+ (fixes Debian #55105).
+
+ <li>change manpage to make it clearer what codes are sent by the
+ backarrow key.
+</ul>
+
+<H1><A NAME="xterm_123">Patch #123 - 2000/1/22 - XFree86 3.9.17a</A></H1>
<ul>
<li>add a note reserving OSC 51 for use in Emacs shell (request by
Rob Myoff <mayoff@dqd.com>).
Index: xterm.man
--- xterm-123/xterm.man Thu Dec 30 05:01:00 1999
+++ xterm-124/xterm.man Mon Jan 24 20:36:48 2000
@@ -551,8 +551,8 @@
characters that should be bound to those functions, similar to the \fIstty\fP
program. Allowable keywords include: intr, quit, erase, kill, eof,
eol, swtch, start, stop, brk, susp, dsusp, rprnt, flush, weras, and lnext.
-Control characters may be specified as ^char (e.g. ^c or ^u) and ^? may be
-used to indicate delete.
+Control characters may be specified as ^char (e.g., ^c or ^u) and ^? may be
+used to indicate delete (127).
.TP 8
.BI \-tn " name"
This option specifies the name of the terminal type to be set in the TERM
@@ -723,7 +723,7 @@
.B "backarrowKeyIsErase (\fPclass\fB BackarrowKeyIsErase)"
Tie the VTxxx \fBbackarrowKey\fP and \fBptyInitialErase\fP resources
together by setting the DECBKM state according to whether the initial value of
-stty erase is a backspace or delete character.
+stty erase is a backspace (8) or delete (127) character.
The default is ``false'', which disables this feature.
.TP 8
.B "hold (\fPclass\fB Hold)"
@@ -811,7 +811,7 @@
lnext and
status.
Control characters may be specified as ^char (e.g., ^c or ^u)
-and \fB^?\fP may be used to indicate Delete.
+and \fB^?\fP may be used to indicate delete (127).
Use \fB^-\fP to denote undef.
Use \fB\\034\fP to represent \fB^\\\fP, since a literal backslash in
an X resource escapes the next character.
@@ -894,8 +894,8 @@
.TP 8
.B "backarrowKey (\fPclass\fB BackarrowKey)"
Specifies whether the backarrow key transmits
-a backspace
-or delete character.
+a backspace (8)
+or delete (127) character.
This corresponds to the DECBKM control sequence.
The default (backspace) is ``true.''
Pressing the control key toggles this behavior.