Skip to content
GitLab
Explore
Sign in
Register
Commits on Source (6)
Imported Upstream version 348
· ee3bca1d
Sven Joachim
authored
Jul 23, 2019
ee3bca1d
Merge branch 'upstream-unstable' into debian-unstable
· ffb4361b
Sven Joachim
authored
Jul 23, 2019
ffb4361b
New upstream release
· 8d1f7209
Sven Joachim
authored
Jul 23, 2019
8d1f7209
Close bug #932569
· 3fb7a629
Sven Joachim
authored
Jul 23, 2019
3fb7a629
Refresh Debian patches
· 45403460
Sven Joachim
authored
Jul 23, 2019
45403460
Bump Standards-Version to 4.4.0
· f9c8b13e
Sven Joachim
authored
Jul 23, 2019
f9c8b13e
Expand all
Show whitespace changes
Inline
Side-by-side
INSTALL
View file @
f9c8b13e
-- $XTermId: INSTALL,v 1.18
2
2019/0
5/27 18:17:01
tom Exp $
-- $XTermId: INSTALL,v 1.18
3
2019/0
7/19 00:46:40
tom Exp $
-------------------------------------------------------------------------------
-- Copyright 1997-2018,2019 by Thomas E. Dickey
--
...
...
@@ -437,11 +437,8 @@ The options (in alphabetic order):
--enable-double-buffer enable double-buffering
Use experimental double-buffering for display to reduce flicker.
This option was introduced in patch #282; at that point it needs
further work because colors used for clearing the screen do not
match the expected behavior (see vttest for instance).
Set the initial value of the "buffered" resource, which tells
xterm to use double-buffering for display to reduce flicker.
--enable-env-terminfo setenv $TERMINFO if --with-own-terminfo gives value
...
...
MANIFEST
View file @
f9c8b13e
MANIFEST for xterm-34
7
, version xterm-34
7
MANIFEST for xterm-34
8
, version xterm-34
8
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode
...
...
NEWS
View file @
f9c8b13e
The NEWS file was generated from xterm.log.html, which serves as the changelog
for xterm.
--------------------------------------------------------------------------------
Patch #34
7
- 2019/0
6/30
Patch #34
8
- 2019/0
7/22
* fix a few minor bugs found with Coverity.
* improve double-buffering for scrollbars combined with scrolled
text; add bufferedFPS resource to control the maximum rate of
screen updates (report by Mike Thornburg).
* improve fixes for DECCRA handling of double-width characters (patch
by Martin Hostettler).
* improve discussion of ECMA-48's typographical error for SD in
ctlseqs.ms (prompted by report by Martin Hostettler).
* correct off-by-one in parameter limit-check for DECCRA (report by
Martin Hostettler).
* modify saveCellData to handle case where double-width character is
partially copied; that should be blanked (report/testcase by Thomas
* update window-manager hints when exiting Tek4014 mode (Debian
#932569, patch by Jonathan Irwin).
* fix a misformatted printf in report-sgr.pl.
* add configure check for termios types, to improve
compiler-warnings.
* ensure that when resetting margins, to also reset DECLRMM. This
affects DECCOLM, DECALN (although DEC STD 070 mentions only
top/bottom margins), and DECSTR.
* corrected order of reset/move when setting DECCOLM, and make it
more consistent by always resetting margins, rather than only when
the mode is changed (report by James Holderness).
* compile-in double-buffer support by default, changing the configure
option to set the default resource value for buffered to true or
false.
* take in account the reverse-video state when computing the
filler-color used when clearing the screen in double-buffering
configuration.
* correct logic for filtering scrollbar-updates when buffered
resource is compiled-in but not enabled (report by Paul Lampert).
* improve state saved/restored for cursor-save and SGR stack
features.
* improve description of 1006 and 1005 mouse modes, to avoid implying
that they use character-parameters (report by Bryan Christ).
* explain in ctlseqs.ms that some of the numeric keypad keys were
xterm extensions rather than VT100/VT220 terminal features
(prompted by discussion with Thomas Wolff).
* explain in ctlseqs.ms how the DEC windowing extension is supported
by xterm.
* add 28 rectangular editing to the primary response (suggested by
Thomas Wolff).
* fix a typo, improve wording in ctlseqs.ms (Thomas Wolff).
* fix internal column-parameter when SL or SR is used with left/right
margins (patch by Thomas Wolff).
* fix off-by-one in VT52 graphics character mapping (patch by Thomas
Wolff).
* add resource buffered to allow enabling/disabling double-buffered
mode.
* two fixes for the double-buffer configuration, prompted by
MacPorts' switch to double-buffering (patch by Mike Thornburg,
MacPorts #58313):
+ ensure that the needSwap flag is set after drawing TrueType
text
+ corrected the drawable-parameter used for the bar-cursor
* modify ScrnRefresh to ignore a case where the left/right halves of
a double-width character have been set to different video
attributes. The attribute to use is in the left-half
(report/testcase by Thomas Wolff).
* correct a limit-check for DECCRA in case the target lies off-screen
(report/testcase by Thomas Wolff).
* documentation errata (report by Thomas Wolff).
* reset flags including wraparound and reverse-wrap when switching to
VT52 mode, while noting that DEC's standard documention leaves that
behavior undefined (report by Thomas Wolff).
* ensure that italic font is turned off on hard/soft resets (report
by Martin Hostettler).
* improve responsiveness to X events while processing HTML or SVG
dumps (report by Martin Hostettler).
* replace logic in wcwidth.c for detecting double-width characters
with binary-search table generated using updated uniset (report by
Robert Ross).
* add test-driver for wcwidth.c to simplify comparison with system's
wcwidth.
* ensure that window-manager name comparisons work when active-icon
is enabled, since CSI13t uses the window-manager name (Arch
#62818).
* trim a stray “experimental” in one of the comments about the
tcap-query feature, which has been a supported feature since 2008
(see patch #238).
* use _X_UNUSED, etc., when available as a fallback for GCC_UNUSED,
etc., to reduce compiler warnings when building with imake.
* update config.sub
THANKS
View file @
f9c8b13e
-- $XTermId: THANKS,v 1.2
3
2019/0
6/30 23:31:05
tom Exp $
-- $XTermId: THANKS,v 1.2
4
2019/0
7/22 22:27:54
tom Exp $
-- vile:txtmode fk=utf-8
There's no AUTHORS file in this distribution; it would be redundant since
I (Thomas E. Dickey) have done more than 80% of the work on xterm since 1996.
...
...
@@ -112,6 +112,7 @@ Jochen Voss
Joe Allen
Joe Peterson
Johnny Billquist
Jonathan Irwin
Julien Cristau
Juliusz Chroboczek
Jungshik Shin
...
...
Tekproc.c
View file @
f9c8b13e
/* $XTermId: Tekproc.c,v 1.23
5
2019/0
6/11
20:0
7
:0
2 tom
Exp $ */
/* $XTermId: Tekproc.c,v 1.23
6
2019/0
7/22
20:0
1
:0
6 Jonathan.Irwin
Exp $ */
/*
* Copyright 2001-2018,2019 by Thomas E. Dickey
...
...
@@ -1369,6 +1369,7 @@ TekRun(void)
Ttoggled
=
True
;
}
TEK4014_ACTIVE
(
xw
)
=
False
;
xtermSetWinSize
(
xw
);
}
else
{
TEK4014_ACTIVE
(
xw
)
=
False
;
if
(
VWindow
(
TScreenOf
(
xw
))
==
0
)
{
...
...
aclocal.m4
View file @
f9c8b13e
dnl $XTermId: aclocal.m4,v 1.43
2
2019/0
6/16
1
3
:4
5
:0
1
tom Exp $
dnl $XTermId: aclocal.m4,v 1.43
5
2019/0
7/21
1
9
:4
1
:0
6
tom Exp $
dnl
dnl ---------------------------------------------------------------------------
dnl
...
...
@@ -1080,7 +1080,7 @@ if test "$GCC" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_GCC_WARNINGS version: 3
4
updated: 2019/0
4/08 17:50:29
dnl CF_GCC_WARNINGS version: 3
5
updated: 2019/0
6/16 09:45:01
dnl ---------------
dnl Check if the compiler supports useful warning options. There's a few that
dnl we don't use, simply because they're too noisy:
...
...
@@ -1767,12 +1767,13 @@ ifelse([$1],,,[$1=$PATH_SEPARATOR])
AC_MSG_RESULT($PATH_SEPARATOR)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_PATH_PROG version:
9
updated: 201
2/10/04 20:12:20
dnl CF_PATH_PROG version:
10
updated: 201
9/06/30 19:44:43
dnl ------------
dnl Check for a given program, defining corresponding symbol.
dnl $1 = environment variable, which is suffixed by "_PATH" in the #define.
dnl $2 = program name to find.
dnl $3 = optional list of additional program names to test.
dnl $4 = $PATH
dnl
dnl If there is more than one token in the result, #define the remaining tokens
dnl to $1_ARGS. We need this for 'install' in particular.
...
...
@@ -1782,7 +1783,7 @@ dnl
AC_DEFUN([CF_PATH_PROG],[
AC_REQUIRE([CF_PATHSEP])
test -z "[$]$1" && $1=$2
AC_PATH_PROGS($1,[$]$1 $2
$3,[$]$1
)
AC_PATH_PROGS($1,[$]$1 $2
ifelse($3,,,$3),[$]$1, ifelse($4,,,$4)
)
cf_path_prog=""
cf_path_args=""
...
...
@@ -2587,6 +2588,38 @@ AC_DEFUN([CF_SYS_ERRLIST],
CF_CHECK_ERRNO(sys_errlist)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_TERMIOS_TYPES version: 1 updated: 2019/07/21 08:54:39
dnl ----------------
dnl https://pubs.opengroup.org/onlinepubs/009695399/basedefs/termios.h.html
dnl says that tcflag_t, speed_t and cc_t are typedef'd. If they are not,
dnl fallback to historical values.
AC_DEFUN([CF_TERMIOS_TYPES],[
AC_CACHE_CHECK(for termios type tcflag_t, cf_cv_havetype_tcflag_t,[
AC_TRY_COMPILE([#include <termios.h>],[
tcflag_t x = 0],
[cf_cv_havetype_tcflag_t=yes],
[cf_cv_havetype_tcflag_t=no])
])
test "$cf_cv_havetype_tcflag_t" = no && AC_DEFINE(tcflag_t,unsigned long,[Define usable value of tcflag_t if not declared])
AC_CACHE_CHECK(for termios type speed_t, cf_cv_havetype_speed_t,[
AC_TRY_COMPILE([#include <termios.h>],[
speed_t x = 0],
[cf_cv_havetype_speed_t=yes],
[cf_cv_havetype_speed_t=no])
])
test "$cf_cv_havetype_speed_t" = no && AC_DEFINE(speed_t,unsigned short,[Define usable value of speed_t if not declared])
AC_CACHE_CHECK(for termios type cc_t, cf_cv_havetype_cc_t,[
AC_TRY_COMPILE([#include <termios.h>],[
cc_t x = 0],
[cf_cv_havetype_cc_t=yes],
[cf_cv_havetype_cc_t=no])
])
test "$cf_cv_havetype_cc_t" = no && AC_DEFINE(cc_t,unsigned char,[Define usable value of cc_t if not declared])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_TERMIO_C_ISPEED version: 3 updated: 2012/10/04 20:12:20
dnl ------------------
dnl Check for SGI's broken redefinition of baud rates introduced in IRIX 6.5
...
...
@@ -4605,6 +4638,17 @@ CF_TRY_PKG_CONFIG(Xext,,[
[CF_ADD_LIB(Xext)])])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_X_EXT_DOUBLE_BUFFER version: 1 updated: 2019/07/18 21:09:40
dnl ----------------------
AC_DEFUN([CF_X_EXT_DOUBLE_BUFFER],[
AC_REQUIRE([CF_X_EXT])
AC_CHECK_HEADER(X11/extensions/Xdbe.h,
AC_DEFINE(HAVE_X11_EXTENSIONS_XDBE_H,1,[Define to 1 if we have X11/extensions/Xdbe.h])
AC_CHECK_FUNC(XdbeSwapBuffers,
[AC_DEFINE(HAVE_XDBESWAPBUFFERS,1,[Define to 1 if we have XdbeSwapBuffers])
cf_x_ext_double_buffer=yes]))
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_X_FONTCONFIG version: 6 updated: 2015/04/12 15:39:00
dnl ---------------
dnl Check for fontconfig library, a dependency of the X FreeType library.
...
...
charproc.c
View file @
f9c8b13e
/* $XTermId: charproc.c,v 1.16
75
2019/0
6/30 19:18:53
tom Exp $ */
/* $XTermId: charproc.c,v 1.16
88
2019/0
7/22 21:14:11
tom Exp $ */
/*
* Copyright 1999-2018,2019 by Thomas E. Dickey
...
...
@@ -104,10 +104,6 @@
#endif
#if OPT_DOUBLE_BUFFER
#include
<X11/extensions/Xdbe.h>
#endif
#if OPT_WIDE_CHARS
#include
<xutf8.h>
#include
<wcwidth.h>
...
...
@@ -117,6 +113,10 @@
#endif
#endif
#if USE_DOUBLE_BUFFER
#include
<X11/extensions/Xdbe.h>
#endif
#if OPT_INPUT_METHOD
#include
<X11/Xlocale.h>
#endif
...
...
@@ -417,7 +417,6 @@ static XtActionsRec actionsList[] = {
#endif
};
/* *INDENT-ON* */
#define SPS screen.printer_state
static
XtResource
xterm_resources
[]
=
...
...
@@ -948,7 +947,6 @@ xtermAddInput(Widget w)
#endif
};
/* *INDENT-ON* */
TRACE_TRANS
(
"BEFORE"
,
w
);
XtAppAddActions
(
app_con
,
input_actions
,
XtNumber
(
input_actions
));
XtAugmentTranslations
(
w
,
XtParseTranslationTable
(
defaultTranslations
));
...
...
@@ -1097,7 +1095,7 @@ setExtendedFG(XtermWidget xw)
*/
#if OPT_PC_COLORS
/* XXXJTL should be settable at runtime (resource or OSC?) */
if
(
TScreenOf
(
xw
)
->
boldColors
&&
(
!
hasDirectFG
(
xw
->
flag
s
)
)
&&
(
!
xw
->
sgr_38_xcolor
s
)
&&
(
fg
>=
0
)
&&
(
fg
<
8
)
&&
(
xw
->
flags
&
BOLD
))
...
...
@@ -1135,6 +1133,7 @@ static void
reset_SGR_Foreground
(
XtermWidget
xw
)
{
xw
->
sgr_foreground
=
-
1
;
xw
->
sgr_38_xcolors
=
False
;
clrDirectFG
(
xw
->
flags
);
setExtendedFG
(
xw
);
}
...
...
@@ -1281,7 +1280,7 @@ set_ansi_conformance(TScreen *screen, int level)
* Set scrolling margins. VTxxx terminals require that the top/bottom are
* different, so we have at least two lines in the scrolling region.
*/
void
static
void
set_tb_margins
(
TScreen
*
screen
,
int
top
,
int
bottom
)
{
TRACE
((
"set_tb_margins %d..%d, prior %d..%d
\n
"
,
...
...
@@ -1298,7 +1297,7 @@ set_tb_margins(TScreen *screen, int top, int bottom)
screen
->
bot_marg
=
screen
->
max_row
;
}
void
static
void
set_lr_margins
(
TScreen
*
screen
,
int
left
,
int
right
)
{
TRACE
((
"set_lr_margins %d..%d, prior %d..%d
\n
"
,
...
...
@@ -1318,13 +1317,26 @@ set_lr_margins(TScreen *screen, int left, int right)
#define reset_tb_margins(screen) set_tb_margins(screen, 0, screen->max_row)
#define reset_lr_margins(screen) set_lr_margins(screen, 0, screen->max_col)
static
void
reset
_m
argins
(
TScreen
*
screen
)
void
reset
M
argins
(
XtermWidget
xw
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
UIntClr
(
xw
->
flags
,
LEFT_RIGHT
);
reset_tb_margins
(
screen
);
reset_lr_margins
(
screen
);
}
static
void
resetRendition
(
XtermWidget
xw
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
(
void
)
screen
;
ResetItalics
(
xw
);
UIntClr
(
xw
->
flags
,
(
SGR_MASK
|
SGR_MASK2
|
INVISIBLE
));
}
void
set_max_col
(
TScreen
*
screen
,
int
cols
)
{
...
...
@@ -1779,7 +1791,6 @@ static struct {
#endif
};
/* *INDENT-ON* */
#if OPT_DEC_RECTOPS
static
char
*
encode_scs
(
DECNRCM_codes
value
)
...
...
@@ -3062,13 +3073,16 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
reply
.
a_param
[
count
++
]
=
8
;
/* user-defined-keys */
reply
.
a_param
[
count
++
]
=
9
;
/* national replacement charsets */
reply
.
a_param
[
count
++
]
=
15
;
/* technical characters */
reply
.
a_param
[
count
++
]
=
16
;
/* locator port */
if
(
screen
->
terminal_id
>=
400
)
{
reply
.
a_param
[
count
++
]
=
18
;
/* windowing capability */
reply
.
a_param
[
count
++
]
=
17
;
/* terminal state interrogation */
reply
.
a_param
[
count
++
]
=
18
;
/* windowing extension */
reply
.
a_param
[
count
++
]
=
21
;
/* horizontal scrolling */
}
if_OPT_ISO_COLORS
(
screen
,
{
reply
.
a_param
[
count
++
]
=
22
;
/* ANSI color, VT525 */
});
reply
.
a_param
[
count
++
]
=
28
;
/* rectangular editing */
#if OPT_DEC_LOCATOR
reply
.
a_param
[
count
++
]
=
29
;
/* ANSI text locator */
#endif
...
...
@@ -3211,9 +3225,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
case
DEFAULT
:
/* FALLTHRU */
case
0
:
ResetItalics
(
xw
);
UIntClr
(
xw
->
flags
,
(
SGR_MASK
|
SGR_MASK2
|
INVISIBLE
));
resetRendition
(
xw
);
if_OPT_ISO_COLORS
(
screen
,
{
reset_SGR_Colors
(
xw
);
});
...
...
@@ -3336,6 +3348,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
case
37
:
if_OPT_ISO_COLORS
(
screen
,
{
xw
->
sgr_foreground
=
(
op
-
30
);
xw
->
sgr_38_xcolors
=
False
;
clrDirectFG
(
xw
->
flags
);
setExtendedFG
(
xw
);
});
...
...
@@ -3349,6 +3362,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
if
(
parse_extended_colors
(
xw
,
&
value
,
&
item
,
&
extended
))
{
xw
->
sgr_foreground
=
value
;
xw
->
sgr_38_xcolors
=
True
;
setDirectFG
(
xw
->
flags
,
extended
);
setExtendedFG
(
xw
);
}
...
...
@@ -3376,6 +3390,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
case
47
:
if_OPT_ISO_COLORS
(
screen
,
{
xw
->
sgr_background
=
(
op
-
40
);
xw
->
sgr_38_xcolors
=
False
;
clrDirectBG
(
xw
->
flags
);
setExtendedBG
(
xw
);
});
...
...
@@ -3386,6 +3401,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
if
(
parse_extended_colors
(
xw
,
&
value
,
&
item
,
&
extended
))
{
xw
->
sgr_background
=
value
;
xw
->
sgr_38_xcolors
=
True
;
setDirectBG
(
xw
->
flags
,
extended
);
setExtendedBG
(
xw
);
}
...
...
@@ -3690,7 +3706,12 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
TRACE
((
"CASE_DECALN - alignment test
\n
"
));
if
(
screen
->
cursor_state
)
HideCursor
();
reset_margins
(
screen
);
/*
* DEC STD 070 does not mention left/right margins. Likely the
* text was for VT100, and not updated for VT420.
*/
resetRendition
(
xw
);
resetMargins
(
xw
);
CursorSet
(
screen
,
0
,
0
,
xw
->
flags
);
xtermParseRect
(
xw
,
0
,
0
,
&
myRect
);
ScrnFillRectangle
(
xw
,
&
myRect
,
'E'
,
0
,
False
);
...
...
@@ -5339,7 +5360,7 @@ in_put(XtermWidget xw)
TScreen
*
screen
=
TScreenOf
(
xw
);
int
i
;
int
update
=
VTbuffer
->
update
;
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
int
should_wait
=
1
;
#endif
...
...
@@ -5376,7 +5397,7 @@ in_put(XtermWidget xw)
FD_CLR
(
screen
->
respond
,
&
select_mask
);
break
;
}
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
if
(
resource
.
buffered
&&
should_wait
)
{
/* wait for potential extra data (avoids some flickering) */
usleep
((
unsigned
)
DbeMsecs
(
xw
));
...
...
@@ -5812,9 +5833,9 @@ HandleStructNotify(Widget w GCC_UNUSED,
event
->
xconfigure
.
y
,
event
->
xconfigure
.
x
,
event
->
xconfigure
.
height
,
event
->
xconfigure
.
width
));
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
discardRenderDraw
(
TScreenOf
(
xw
));
#endif
/*
OPT
_DOUBLE_BUFFER */
#endif
/*
USE
_DOUBLE_BUFFER */
#if OPT_TOOLBAR
/*
...
...
@@ -6053,16 +6074,13 @@ dpmodes(XtermWidget xw, BitFunc func)
if
(
screen
->
c132
)
{
if
(
!
(
xw
->
flags
&
NOCLEAR_COLM
))
ClearScreen
(
xw
);
CursorSet
(
screen
,
0
,
0
,
xw
->
flags
);
if
((
j
=
IsSM
()
?
132
:
80
)
!=
((
xw
->
flags
&
IN132COLUMNS
)
?
132
:
80
)
||
j
!=
MaxCols
(
screen
))
RequestResize
(
xw
,
-
1
,
j
,
True
);
(
*
func
)
(
&
xw
->
flags
,
IN132COLUMNS
);
if
(
xw
->
flags
&
IN132COLUMNS
)
{
UIntClr
(
xw
->
flags
,
LEFT_RIGHT
);
reset_lr_margins
(
screen
);
}
resetMargins
(
xw
);
CursorSet
(
screen
,
0
,
0
,
xw
->
flags
);
}
break
;
case
srm_DECSCLM
:
/* (slow scroll) */
...
...
@@ -8362,7 +8380,6 @@ lookupSelectUnit(XtermWidget xw, Cardinal item, String value)
#endif
};
/* *INDENT-ON* */
TScreen
*
screen
=
TScreenOf
(
xw
);
String
next
=
x_skip_nonblanks
(
value
);
Cardinal
n
;
...
...
@@ -9237,6 +9254,7 @@ VTInitialize(Widget wrequest,
}
wnew
->
sgr_foreground
=
-
1
;
wnew
->
sgr_background
=
-
1
;
wnew
->
sgr_38_xcolors
=
False
;
clrDirectFG
(
wnew
->
flags
);
clrDirectFG
(
wnew
->
flags
);
#endif
/* OPT_ISO_COLORS */
...
...
@@ -10190,6 +10208,7 @@ void
initBorderGC
(
XtermWidget
xw
,
VTwin
*
win
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
Pixel
filler
;
TRACE
((
"initBorderGC core %#lx, %#lx text %#lx, %#lx
\n
"
,
xw
->
core
.
background_pixel
,
...
...
@@ -10203,14 +10222,16 @@ initBorderGC(XtermWidget xw, VTwin *win)
*/
if
((
xw
->
core
.
background_pixel
==
T_COLOR
(
screen
,
TEXT_BG
))
&&
(
xw
->
core
.
border_pixel
==
T_COLOR
(
screen
,
TEXT_FG
)))
{
setCgsFore
(
xw
,
win
,
gcBorder
,
T_COLOR
(
screen
,
TEXT_BG
));
setCgsBack
(
xw
,
win
,
gcBorder
,
T_COLOR
(
screen
,
TEXT_BG
));
filler
=
T_COLOR
(
screen
,
TEXT_BG
);
}
else
{
setCgsFore
(
xw
,
win
,
gcBorder
,
xw
->
core
.
border_pixel
);
setCgsBack
(
xw
,
win
,
gcBorder
,
xw
->
core
.
border_pixel
);
filler
=
xw
->
core
.
border_pixel
;
}
TRACE
((
" border %#lx
\n
"
,
filler
));
setCgsFore
(
xw
,
win
,
gcBorder
,
filler
);
setCgsBack
(
xw
,
win
,
gcBorder
,
filler
);
win
->
border_gc
=
getCgsGC
(
xw
,
win
,
gcBorder
);
}
else
{
TRACE
((
" border unused
\n
"
));
win
->
border_gc
=
0
;
}
...
...
@@ -10219,12 +10240,15 @@ initBorderGC(XtermWidget xw, VTwin *win)
* in xtermClear2(). When not double-buffering, the XClearArea call works,
* without requiring a separate GC.
*/
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
if
(
resource
.
buffered
)
{
unsigned
long
filler
;
filler
=
(((
xw
->
flags
&
BG_COLOR
)
&&
(
xw
->
cur_background
>=
0
))
?
(
unsigned
long
)
xw
->
cur_background
:
xw
->
core
.
background_pixel
);
?
getXtermBG
(
xw
,
xw
->
flags
,
xw
->
cur_background
)
:
T_COLOR
(
screen
,
TEXT_BG
));
TRACE
((
" filler %#lx %s
\n
"
,
filler
,
xw
->
misc
.
re_verse
?
"reverse"
:
"normal"
));
setCgsFore
(
xw
,
win
,
gcFiller
,
filler
);
setCgsBack
(
xw
,
win
,
gcFiller
,
filler
);
...
...
@@ -10455,7 +10479,7 @@ VTRealize(Widget w,
(
int
)
xw
->
core
.
depth
,
InputOutput
,
CopyFromParent
,
*
valuemask
|
CWBitGravity
,
values
);
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
screen
->
fullVwin
.
drawable
=
screen
->
fullVwin
.
window
;
if
(
resource
.
buffered
)
{
...
...
@@ -10475,7 +10499,7 @@ VTRealize(Widget w,
screen
->
needSwap
=
1
;
TRACE
((
"initialized double-buffering
\n
"
));
}
#endif
/*
OPT
_DOUBLE_BUFFER */
#endif
/*
USE
_DOUBLE_BUFFER */
screen
->
event_mask
=
values
->
event_mask
;
#ifndef NO_ACTIVE_ICON
...
...
@@ -10550,7 +10574,7 @@ VTRealize(Widget w,
InputOutput
,
CopyFromParent
,
*
valuemask
|
CWBitGravity
|
CWBorderPixel
,
values
);
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
screen
->
iconVwin
.
drawable
=
screen
->
iconVwin
.
window
;
#endif
XtVaSetValues
(
shell
,
...
...
@@ -10612,7 +10636,7 @@ VTRealize(Widget w,
set_cur_row
(
screen
,
0
);
set_max_col
(
screen
,
Width
(
screen
)
/
screen
->
fullVwin
.
f_width
-
1
);
set_max_row
(
screen
,
Height
(
screen
)
/
screen
->
fullVwin
.
f_height
-
1
);
reset
_m
argins
(
screen
);
reset
M
argins
(
xw
);
memset
(
screen
->
sc
,
0
,
sizeof
(
screen
->
sc
));
...
...
@@ -11927,7 +11951,7 @@ ReallyReset(XtermWidget xw, Bool full, Bool saved)
#endif
/* reset scrolling region */
reset
_m
argins
(
screen
);
reset
M
argins
(
xw
);
bitclr
(
&
xw
->
flags
,
ORIGIN
);
...
...
@@ -12637,7 +12661,6 @@ VTInitTranslations(void)
};
#undef DATA
/* *INDENT-ON* */
char
*
result
=
0
;
int
pass
;
...
...
config.sub
View file @
f9c8b13e
...
...
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2019 Free Software Foundation, Inc.
timestamp
=
'2019-0
5-23
'
timestamp
=
'2019-0
6-30
'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
...
...
@@ -337,17 +337,14 @@ case $1 in
basic_machine
=
m88k-harris
os
=
sysv3
;;
hp300
)
hp300
|
hp300hpux
)
basic_machine
=
m68k-hp
os
=
hpux
;;
hp300bsd
)
basic_machine
=
m68k-hp
os
=
bsd
;;
hp300hpux
)
basic_machine
=
m68k-hp
os
=
hpux
;;
hppaosf
)
basic_machine
=
hppa1.1-hp
os
=
osf
...
...
@@ -360,10 +357,6 @@ case $1 in
basic_machine
=
i386-mach
os
=
mach
;;
vsta
)
basic_machine
=
i386-pc
os
=
vsta
;;
isi68
|
isi
)
basic_machine
=
m68k-isi
os
=
sysv
...
...
@@ -612,6 +605,10 @@ case $1 in
basic_machine
=
vax-dec
os
=
vms
;;
vsta
)
basic_machine
=
i386-pc
os
=
vsta
;;
vxworks960
)
basic_machine
=
i960-wrs
os
=
vxworks
...
...
@@ -1350,7 +1347,7 @@ case $os in
|
nindy
*
|
vxsim
*
|
vxworks
*
|
ebmon
*
|
hms
*
|
mvs
*
\
|
clix
*
|
riscos
*
|
uniplus
*
|
iris
*
|
isc
*
|
rtu
*
|
xenix
*
\
|
knetbsd
*
|
mirbsd
*
|
netbsd
*
\
|
bitrig
*
|
openbsd
*
|
solidbsd
*
|
libertybsd
*
\
|
bitrig
*
|
openbsd
*
|
solidbsd
*
|
libertybsd
*
|
os108
*
\
|
ekkobsd
*
|
kfreebsd
*
|
freebsd
*
|
riscix
*
|
lynxos
*
\
|
bosx
*
|
nextstep
*
|
cxux
*
|
aout
*
|
elf
*
|
oabi
*
\
|
ptx
*
|
coff
*
|
ecoff
*
|
winnt
*
|
domain
*
|
vsta
*
\
...
...
@@ -1368,7 +1365,8 @@ case $os in
|
powermax
*
|
dnix
*
|
nx6
|
nx7
|
sei
*
|
dragonfly
*
\
|
skyos
*
|
haiku
*
|
rdos
*
|
toppers
*
|
drops
*
|
es
*
\
|
onefs
*
|
tirtos
*
|
phoenix
*
|
fuchsia
*
|
redox
*
|
bme
*
\
|
midnightbsd
*
|
amdhsa
*
|
unleashed
*
|
emscripten
*
|
wasi
*
)
|
midnightbsd
*
|
amdhsa
*
|
unleashed
*
|
emscripten
*
|
wasi
*
\
|
nsk
*
|
powerunix
)
# Remember, each alternative MUST END IN *, to match a version number.
;;
qnx
*
)
...
...
@@ -1452,9 +1450,6 @@ case $os in
ns2
)
os
=
nextstep2
;;
nsk
*
)
os
=
nsk
;;
# Preserve the version number of sinix5.
sinix5.
*
)
os
=
`
echo
$os
|
sed
-e
's|sinix|sysv|'
`
...
...
configure
View file @
f9c8b13e
This diff is collapsed.
Click to expand it.
configure.in
View file @
f9c8b13e
dnl $XTermId: configure.in,v 1.36
1
201
8/12/09 19:07:03
tom Exp $
dnl $XTermId: configure.in,v 1.36
3
201
9/07/21 19:41:39
tom Exp $
dnl
dnl -----------------------------------------------------------------------------
dnl this file is part of xterm
dnl
dnl Copyright 1997-201
7
,201
8
by Thomas E. Dickey
dnl Copyright 1997-201
8
,201
9
by Thomas E. Dickey
dnl
dnl All Rights Reserved
dnl
...
...
@@ -285,6 +285,7 @@ CF_WITH_XINERAMA
CF_X_ATHENA
CF_TYPE_FD_MASK
CF_TERMIO_C_ISPEED
CF_TERMIOS_TYPES
# If we notice Xcursor, there is a workaround needed.
AC_CHECK_LIB(Xcursor, XcursorGetTheme,[AC_DEFINE(HAVE_LIB_XCURSOR)])
...
...
@@ -635,22 +636,22 @@ if test "$enable_exec_xterm" = yes ; then
fi
fi
AC_MSG_CHECKING(if you want to use double-buffering)
CF_X_EXT
CF_X_EXT_DOUBLE_BUFFER
double_buffer=False
if test "$cf_x_ext_double_buffer" = yes ; then
AC_MSG_CHECKING(if you want to enable double-buffering in default resources)
CF_ARG_ENABLE(double-buffer,
[ --enable-double-buffer enable double-buffering],
[ --enable-double-buffer enable double-buffering
in default resources
],
[enable_double_bfr=yes],
[enable_double_bfr=no])
AC_MSG_RESULT($enable_double_bfr)
if test "$enable_double_bfr" = yes ; then
case "x$LIBS" in
(*Xext*)
;;
(*)
CF_X_EXT
;;
esac
AC_DEFINE(OPT_DOUBLE_BUFFER,1,[Define to 1 to enable double-buffering])
AC_DEFINE(OPT_DOUBLE_BUFFER,1,[Define to 1 to enable double-buffering in default resources])
double_buffer=True
fi
fi
AC_SUBST(double_buffer)
AC_MSG_CHECKING(if you want to use FreeType library)
CF_ARG_DISABLE(freetype,
...
...
ctlseqs.ms
View file @
f9c8b13e
.\"#! troff -ms $1 -*- Nroff -*-
.\" "Xterm Control Sequences" document
.\" $XTermId: ctlseqs.ms,v 1.5
05
2019/0
6/26 08:31:15
tom Exp $
.\" $XTermId: ctlseqs.ms,v 1.5
13
2019/0
7/11 09:52:42
tom Exp $
.\"
.\"
.\" Copyright 1996-2018,2019 by Thomas E. Dickey
...
...
@@ -69,8 +69,8 @@
.\"
.ds XT XTerm
.ds xt xterm
.ds LF Patch #34
7
.ds RF 2019/0
6/26
.ds LF Patch #34
8
.ds RF 2019/0
7/11
.\"
.if n .pl 9999v \" no page breaks in nroff
.ND
...
...
@@ -323,6 +323,8 @@
.ds Pt \fIP\v'.3m'\h'-.2m'\s-2t\s0\v'-.3m'\fP
.ds Pu \fIP\v'.3m'\h'-.2m'\s-2u\s0\v'-.3m'\fP
.ds Pv \fIP\v'.3m'\h'-.2m'\s-2v\s0\v'-.3m'\fP
.ds Px \fIP\v'.3m'\h'-.2m'\s-2x\s0\v'-.3m'\fP
.ds Py \fIP\v'.3m'\h'-.2m'\s-2y\s0\v'-.3m'\fP
.ds Ix \fIx\fP
.ds Iy \fIy\fP
.ds Iw \fIw\fP
...
...
@@ -1155,10 +1157,20 @@ telling the host what features the terminal supports:
\*(Ps = \*8 \(-> User-defined keys.
\*(Ps = \*9 \(-> National Replacement Character sets.
\*(Ps = \*1\*5 \(-> Technical characters.
\*(Ps = \*1\*6 \(-> Locator port.
\*(Ps = \*1\*7 \(-> Terminal state interrogation.
\*(Ps = \*1\*8 \(-> User windows.
\*(Ps = \*2\*1 \(-> Horizontal scrolling.
\*(Ps = \*2\*2 \(-> ANSI color, e.g., VT525.
\*(Ps = \*2\*8 \(-> Rectangular editing.
\*(Ps = \*2\*9 \(-> ANSI text locator (i.e., DEC Locator mode).
.iP
\fI\*(XT\fP supports part of the \fIUser windows\fP feature,
providing a single page (which corresponds to its visible window).
Rather than resizing the font to change the number of lines/columns in
a fixed-size display, \fI\*(xt\fP uses the window extension controls
(DECSNLS, DECSCPP, DECSLPP) to adjust its visible window's size.
The \*(``cursor coupling\*('' controls (DECHCCM, DECPCCM, DECVCCM) are ignored.
.
.iP
.IP \\*(Cs\\*=\\*(Ps\\*s\\*c
...
...
@@ -1261,8 +1273,8 @@ This may be disabled by the \fBtiteInhibit\fP resource.
See the section \fBMouse Tracking\fP.
This is the X11 \fI\*(xt\fP mouse protocol.
\*(Ps = \*1\*0\*0\*1 \(-> Use Hilite Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*2 \(-> Use Cell Motion Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*3 \(-> Use All Motion Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*2 \(-> Use Cell Motion
(button event)
Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*3 \(-> Use All Motion
(any event)
Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*4 \(-> Send FocusIn/FocusOut events, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*5 \(-> Enable UTF-8 Mouse Mode, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*6 \(-> Enable SGR Mouse Mode, \fI\*(xt\fP.
...
...
@@ -1385,8 +1397,8 @@ VT510 and up.
release.
See the section \fBMouse Tracking\fP.
\*(Ps = \*1\*0\*0\*1 \(-> Don't use Hilite Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*2 \(-> Don't use Cell Motion Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*3 \(-> Don't use All Motion Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*2 \(-> Don't use Cell Motion
(button event)
Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*3 \(-> Don't use All Motion
(any event)
Mouse Tracking, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*4 \(-> Don't send FocusIn/FocusOut events, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*5 \(-> Disable UTF-8 Mouse Mode, \fI\*(xt\fP.
\*(Ps = \*1\*0\*0\*6 \(-> Disable SGR Mouse Mode, \fI\*(xt\fP.
...
...
@@ -1910,7 +1922,7 @@ Result is
.br
Result is
\*(Cs\*s\*5\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
\*(Ps = \*1\*6 \(-> Report \fI\*(xt\fP character size in pixels.
\*(Ps = \*1\*6 \(-> Report \fI\*(xt\fP character
cell
size in pixels.
.br
Result is
\*(Cs\*s\*6\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
...
...
@@ -2066,7 +2078,7 @@ The bits of \*(Ps modify the calculation of the checksum returned by DECRQCRA:
Request Checksum of Rectangular Area (DECRQCRA), VT420 and up.
Response is
.br
\*(Dc\*(Pi\*s\*!x\*sx\*sx\*sx\*s\*(ST
\*(Dc\*(Pi\*s\*!
\*~
x\*sx\*sx\*sx\*s\*(ST
.br
\*(Pi is the request id.
\*(Pg is the page number.
...
...
@@ -2690,38 +2702,57 @@ The VT102/VT220 application keypad transmits unique escape sequences in
application mode, which are distinct from the cursor and scrolling keypad:
.TS H
center;
lf3w(2c) lf3w(2c) lf3w(2c) .
Key Numeric Application
lf3w(2c) lf3w(2c) lf3w(2c)
lf3w(2c)
.
Key Numeric Application
VT100?
_
.TH
.T&
l | l | l .
Space \*(Sp \*(S3\*(Sp
Tab \*(Ta \*(S3\*I
Enter \*(Cr \*(S3\*M
PF1 \*(S3\*P \*(S3\*P
PF2 \*(S3\*Q \*(S3\*Q
PF3 \*(S3\*R \*(S3\*R
PF4 \*(S3\*S \*(S3\*S
* \f1(multiply)\fP \** \*(S3\*j
+ \f1(add)\fP \*+ \*(S3\*k
, \f1(comma)\fP \*, \*(S3\*l
- \f1(minus)\fP \*- \*(S3\*m
\&. \f1(period)\fP \*. \*(S3\*n
/ \f1(divide)\fP \*/ \*(S3\*o
0 \*0 \*(S3\*p
1 \*1 \*(S3\*q
2 \*2 \*(S3\*r
3 \*3 \*(S3\*(cs
4 \*4 \*(S3\*t
5 \*5 \*(S3\*u
6 \*6 \*(S3\*v
7 \*7 \*(S3\*w
8 \*8 \*(S3\*x
9 \*9 \*(S3\*y
= (equal) \*= \*(S3\*(XX
l | l | l
| l
.
Space \*(Sp \*(S3\*(Sp
no
Tab \*(Ta \*(S3\*I
no
Enter \*(Cr \*(S3\*M
yes
PF1 \*(S3\*P \*(S3\*P
yes
PF2 \*(S3\*Q \*(S3\*Q
yes
PF3 \*(S3\*R \*(S3\*R
yes
PF4 \*(S3\*S \*(S3\*S
yes
* \f1(multiply)\fP \** \*(S3\*j
no
+ \f1(add)\fP \*+ \*(S3\*k
no
, \f1(comma)\fP \*, \*(S3\*l
yes
- \f1(minus)\fP \*- \*(S3\*m
yes
\&. \f1(period)\fP \*. \*(S3\*n
yes
/ \f1(divide)\fP \*/ \*(S3\*o
no
0 \*0 \*(S3\*p
yes
1 \*1 \*(S3\*q
yes
2 \*2 \*(S3\*r
yes
3 \*3 \*(S3\*(cs
yes
4 \*4 \*(S3\*t
yes
5 \*5 \*(S3\*u
yes
6 \*6 \*(S3\*v
yes
7 \*7 \*(S3\*w
yes
8 \*8 \*(S3\*x
yes
9 \*9 \*(S3\*y
yes
= (equal) \*= \*(S3\*(XX
no
_
.TE
.LP
The VT100/VT220 keypad did not have all of those keys.
They were implemented in \fI\*(xt\fP in X11R1 (1987),
defining a mapping of all X11 keys which might be provided on a keypad.
For instance, a Sun4/II type-4 keyboard provided
\*(``=\*('' (equal),
\*(``/\*('' (divide), and
\*(``*\*('' (multiply).
.LP
While the VT420 provided the same keypad,
the VT520 used a PC-keyboard.
Because that keyboard's keypad lacks the \*(``,\*('' (comma),
it was not possible to use EDT's delete-character function with the keypad.
\fI\*(XT\fP solves that problem for the VT220-keyboard configuration
by mapping
.sp
\fICtrl\fP \*+ to \*, and
\fICtrl\fP \*- to \*-
.LP
The VT220 provides a 6-key editing keypad,
which is analogous to that on the PC keyboard.
It is not affected by \fBDECCKM\fP or \fBDECKPNM\fP/\fBDECKPAM\fP:
...
...
@@ -2785,36 +2816,36 @@ _
The keypad is similar:
.TS H
center;
lf3w(2c) lf3w(2c) lf3w(2c) .
Key Numeric Application
lf3w(2c) lf3w(2c) lf3w(2c)
lf3w(2c)
.
Key Numeric Application
VT52?
_
.TH
.T&
l | l | l .
Space \*(Sp \*(Es\*?\*(Sp
Tab \*(Ta \*(Es\*?\*I
Enter \*(Cr \*(Es\*?\*M
PF1 \*(Es\*P \*(Es\*P
PF2 \*(Es\*Q \*(Es\*Q
PF3 \*(Es\*R \*(Es\*R
PF4 \*(Es\*S \*(Es\*S
* \f1(multiply)\fP \** \*(Es\*?\*j
+ \f1(add)\fP \*+ \*(Es\*?\*k
, \f1(comma)\fP \*, \*(Es\*?\*l
- \f1(minus)\fP \*- \*(Es\*?\*m
\&. \f1(period)\fP \*. \*(Es\*?\*n
/ \f1(divide)\fP \*/ \*(Es\*?\*o
0 \*0 \*(Es\*?\*p
1 \*1 \*(Es\*?\*q
2 \*2 \*(Es\*?\*r
3 \*3 \*(Es\*?\*(cs
4 \*4 \*(Es\*?\*t
5 \*5 \*(Es\*?\*u
6 \*6 \*(Es\*?\*v
7 \*7 \*(Es\*?\*w
8 \*8 \*(Es\*?\*x
9 \*9 \*(Es\*?\*y
= (equal) \*= \*(Es\*?\*(XX
l | l | l
| l
.
Space \*(Sp \*(Es\*?\*(Sp
no
Tab \*(Ta \*(Es\*?\*I
no
Enter \*(Cr \*(Es\*?\*M
no
PF1 \*(Es\*P \*(Es\*P
yes
PF2 \*(Es\*Q \*(Es\*Q
yes
PF3 \*(Es\*R \*(Es\*R
yes
PF4 \*(Es\*S \*(Es\*S
no
* \f1(multiply)\fP \** \*(Es\*?\*j
no
+ \f1(add)\fP \*+ \*(Es\*?\*k
no
, \f1(comma)\fP \*, \*(Es\*?\*l
no
- \f1(minus)\fP \*- \*(Es\*?\*m
no
\&. \f1(period)\fP \*. \*(Es\*?\*n
yes
/ \f1(divide)\fP \*/ \*(Es\*?\*o
no
0 \*0 \*(Es\*?\*p
yes
1 \*1 \*(Es\*?\*q
yes
2 \*2 \*(Es\*?\*r
yes
3 \*3 \*(Es\*?\*(cs
yes
4 \*4 \*(Es\*?\*t
yes
5 \*5 \*(Es\*?\*u
yes
6 \*6 \*(Es\*?\*v
yes
7 \*7 \*(Es\*?\*w
yes
8 \*8 \*(Es\*?\*x
yes
9 \*9 \*(Es\*?\*y
yes
= (equal) \*= \*(Es\*?\*(XX
no
_
.TE
.Sh "Sun-Style Function Keys"
...
...
@@ -3150,17 +3181,25 @@ unless extended mouse mode is active.
This scheme has the drawback that the encoded coordinates will not
pass through \fIluit\fP unchanged, e.g., for locales using non-UTF-8 encoding.
.IP "SGR (1006)"
The normal mouse response is altered to use \*(Cs\*<
The normal mouse response is altered to use
.RS
.bP
\*(Cs\*<
followed by semicolon-separated
.bP
encoded button value,
the \*(Cx and \*(Cy ordinates and a final character which
.bP
\*(Px and \*(Py ordinates and
.bP
a final character which
is \*M for button press
and \*m for button release.
.R
S
.
b
P
.R
E
.
I
P
The encoded button value in this case does not add 32 since
that was useful only in the X10 scheme for ensuring that the
byte containing the button value is a printable code.
.RS
.bP
The modifiers are encoded in the same way.
.bP
...
...
@@ -3171,10 +3210,16 @@ to resolve the X10 ambiguity regarding which button was released.
The highlight tracking responses are also modified to an SGR-like format,
using the same SGR-style scheme and button-encodings.
.IP "URXVT (1015)"
The normal mouse response is altered to use \*(Cs
The normal mouse response is altered to use
.RS
.bP
\*(Cs
followed by semicolon-separated
.bP
encoded button value,
the \*(Cx and \*(Cy ordinates and final character \*M.
.bP
the \*(Px and \*(Py ordinates and final character \*M.
.RE
.IP
This uses the same button encoding as X10, but printing it as
a decimal integer rather than as a single byte.
...
...
ctlseqs.txt
View file @
f9c8b13e
...
...
@@ -21,7 +21,7 @@
Thomas Dickey
XFree86 Project (1996-2006)
invisible-island.net (2006-2019)
updated for XTerm Patch #34
7
(2019/0
6/26
)
updated for XTerm Patch #34
8
(2019/0
7/11
)
...
...
@@ -617,11 +617,22 @@ CSI Ps c Send Device Attributes (Primary DA).
Ps = 8 -> User-defined keys.
Ps = 9 -> National Replacement Character sets.
Ps = 1 5 -> Technical characters.
Ps = 1 6 -> Locator port.
Ps = 1 7 -> Terminal state interrogation.
Ps = 1 8 -> User windows.
Ps = 2 1 -> Horizontal scrolling.
Ps = 2 2 -> ANSI color, e.g., VT525.
Ps = 2 8 -> Rectangular editing.
Ps = 2 9 -> ANSI text locator (i.e., DEC Locator mode).
XTerm supports part of the User windows feature, providing a
single page (which corresponds to its visible window). Rather
than resizing the font to change the number of lines/columns
in a fixed-size display, xterm uses the window extension con-
trols (DECSNLS, DECSCPP, DECSLPP) to adjust its visible win-
dow's size. The "cursor coupling" controls (DECHCCM, DECPCCM,
DECVCCM) are ignored.
CSI = Ps c
Send Device Attributes (Tertiary DA).
Ps = 0 -> report Terminal Unit ID (default), VT400. XTerm
...
...
@@ -718,8 +729,10 @@ CSI ? Pm h
release. See the section Mouse Tracking. This is the X11
xterm mouse protocol.
Ps = 1 0 0 1 -> Use Hilite Mouse Tracking, xterm.
Ps = 1 0 0 2 -> Use Cell Motion Mouse Tracking, xterm.
Ps = 1 0 0 3 -> Use All Motion Mouse Tracking, xterm.
Ps = 1 0 0 2 -> Use Cell Motion (button event) Mouse Track-
ing, xterm.
Ps = 1 0 0 3 -> Use All Motion (any event) Mouse Tracking,
xterm.
Ps = 1 0 0 4 -> Send FocusIn/FocusOut events, xterm.
Ps = 1 0 0 5 -> Enable UTF-8 Mouse Mode, xterm.
Ps = 1 0 0 6 -> Enable SGR Mouse Mode, xterm.
...
...
@@ -835,9 +848,10 @@ CSI ? Pm l
Ps = 1 0 0 0 -> Don't send Mouse X & Y on button press and
release. See the section Mouse Tracking.
Ps = 1 0 0 1 -> Don't use Hilite Mouse Tracking, xterm.
Ps = 1 0 0 2 -> Don't use Cell Motion Mouse Tracking,
xterm.
Ps = 1 0 0 3 -> Don't use All Motion Mouse Tracking, xterm.
Ps = 1 0 0 2 -> Don't use Cell Motion (button event) Mouse
Tracking, xterm.
Ps = 1 0 0 3 -> Don't use All Motion (any event) Mouse
Tracking, xterm.
Ps = 1 0 0 4 -> Don't send FocusIn/FocusOut events, xterm.
Ps = 1 0 0 5 -> Disable UTF-8 Mouse Mode, xterm.
Ps = 1 0 0 6 -> Disable SGR Mouse Mode, xterm.
...
...
@@ -1277,7 +1291,7 @@ CSI Ps ; Ps ; Ps t
Result is CSI 4 ; height ; width t
Ps = 1 5 -> Report size of the screen in pixels.
Result is CSI 5 ; height ; width t
Ps = 1 6 -> Report xterm character size in pixels.
Ps = 1 6 -> Report xterm character
cell
size in pixels.
Result is CSI 6 ; height ; width t
Ps = 1 8 -> Report the size of the text area in characters.
Result is CSI 8 ; height ; width t
...
...
@@ -1398,7 +1412,7 @@ CSI Ps # y
CSI Pi ; Pg ; Pt ; Pl ; Pb ; Pr * y
Request Checksum of Rectangular Area (DECRQCRA), VT420 and up.
Response is
DCS Pi ! x x x x ST
DCS Pi !
~
x x x x ST
Pi is the request id.
Pg is the page number.
Pt ; Pl ; Pb ; Pr denotes the rectangle.
...
...
@@ -1923,33 +1937,47 @@ The VT102/VT220 application keypad transmits unique escape sequences in
application mode, which are distinct from the cursor and scrolling key-
pad:
Key Numeric Application
-------------+----------+-------------
Space | SP | SS3 SP
Tab | TAB | SS3 I
Enter | CR | SS3 M
PF1 | SS3 P | SS3 P
PF2 | SS3 Q | SS3 Q
PF3 | SS3 R | SS3 R
PF4 | SS3 S | SS3 S
* (multiply) | * | SS3 j
+ (add) | + | SS3 k
, (comma) | , | SS3 l
- (minus) | - | SS3 m
. (period) | . | SS3 n
/ (divide) | / | SS3 o
0 | 0 | SS3 p
1 | 1 | SS3 q
2 | 2 | SS3 r
3 | 3 | SS3 s
4 | 4 | SS3 t
5 | 5 | SS3 u
6 | 6 | SS3 v
7 | 7 | SS3 w
8 | 8 | SS3 x
9 | 9 | SS3 y
= (equal) | = | SS3 X
-------------+----------+-------------
Key Numeric Application VT100?
-------------+----------+-------------+----------
Space | SP | SS3 SP | no
Tab | TAB | SS3 I | no
Enter | CR | SS3 M | yes
PF1 | SS3 P | SS3 P | yes
PF2 | SS3 Q | SS3 Q | yes
PF3 | SS3 R | SS3 R | yes
PF4 | SS3 S | SS3 S | yes
* (multiply) | * | SS3 j | no
+ (add) | + | SS3 k | no
, (comma) | , | SS3 l | yes
- (minus) | - | SS3 m | yes
. (period) | . | SS3 n | yes
/ (divide) | / | SS3 o | no
0 | 0 | SS3 p | yes
1 | 1 | SS3 q | yes
2 | 2 | SS3 r | yes
3 | 3 | SS3 s | yes
4 | 4 | SS3 t | yes
5 | 5 | SS3 u | yes
6 | 6 | SS3 v | yes
7 | 7 | SS3 w | yes
8 | 8 | SS3 x | yes
9 | 9 | SS3 y | yes
= (equal) | = | SS3 X | no
-------------+----------+-------------+----------
The VT100/VT220 keypad did not have all of those keys. They were imple-
mented in xterm in X11R1 (1987), defining a mapping of all X11 keys
which might be provided on a keypad. For instance, a Sun4/II type-4
keyboard provided "=" (equal), "/" (divide), and "*" (multiply).
While the VT420 provided the same keypad, the VT520 used a PC-keyboard.
Because that keyboard's keypad lacks the "," (comma), it was not possi-
ble to use EDT's delete-character function with the keypad. XTerm
solves that problem for the VT220-keyboard configuration by mapping
Ctrl + to , and
Ctrl - to -
The VT220 provides a 6-key editing keypad, which is analogous to that on
the PC keyboard. It is not affected by DECCKM or DECKPNM/DECKPAM:
...
...
@@ -1998,33 +2026,33 @@ Also, the cursor keys do not change:
The keypad is similar:
Key Numeric Application
-------------+----------+-------------
Space | SP | ESC ? SP
Tab | TAB | ESC ? I
Enter | CR | ESC ? M
PF1 | ESC P | ESC P
PF2 | ESC Q | ESC Q
PF3 | ESC R | ESC R
PF4 | ESC S | ESC S
* (multiply) | * | ESC ? j
+ (add) | + | ESC ? k
, (comma) | , | ESC ? l
- (minus) | - | ESC ? m
. (period) | . | ESC ? n
/ (divide) | / | ESC ? o
0 | 0 | ESC ? p
1 | 1 | ESC ? q
2 | 2 | ESC ? r
3 | 3 | ESC ? s
4 | 4 | ESC ? t
5 | 5 | ESC ? u
6 | 6 | ESC ? v
7 | 7 | ESC ? w
8 | 8 | ESC ? x
9 | 9 | ESC ? y
= (equal) | = | ESC ? X
-------------+----------+-------------
Key Numeric Application
VT52?
-------------+----------+-------------
+----------
Space | SP | ESC ? SP
| no
Tab | TAB | ESC ? I
| no
Enter | CR | ESC ? M
| no
PF1 | ESC P | ESC P
| yes
PF2 | ESC Q | ESC Q
| yes
PF3 | ESC R | ESC R
| yes
PF4 | ESC S | ESC S
| no
* (multiply) | * | ESC ? j
| no
+ (add) | + | ESC ? k
| no
, (comma) | , | ESC ? l
| no
- (minus) | - | ESC ? m
| no
. (period) | . | ESC ? n
| yes
/ (divide) | / | ESC ? o
| no
0 | 0 | ESC ? p
| yes
1 | 1 | ESC ? q
| yes
2 | 2 | ESC ? r
| yes
3 | 3 | ESC ? s
| yes
4 | 4 | ESC ? t
| yes
5 | 5 | ESC ? u
| yes
6 | 6 | ESC ? v
| yes
7 | 7 | ESC ? w
| yes
8 | 8 | ESC ? x
| yes
9 | 9 | ESC ? y
| yes
= (equal) | = | ESC ? X
| no
-------------+----------+-------------
+----------
...
...
@@ -2328,15 +2356,20 @@ UTF-8 (1005)
UTF-8 encoding.
SGR (1006)
The normal mouse response is altered to use CSI < followed by
semicolon-separated encoded button value, the Cx and Cy ordi-
nates and a final character which is M for button press and m
for button release.
The normal mouse response is altered to use
o The encoded button value in this case does not add 32
since that was useful only in the X10 scheme for ensuring
that the byte containing the button value is a printable
code.
o CSI < followed by semicolon-separated
o encoded button value,
o Px and Py ordinates and
o a final character which is M for button press and m for
button release.
The encoded button value in this case does not add 32 since
that was useful only in the X10 scheme for ensuring that the
byte containing the button value is a printable code.
o The modifiers are encoded in the same way.
...
...
@@ -2349,9 +2382,13 @@ SGR (1006)
ings.
URXVT (1015)
The normal mouse response is altered to use CSI followed by
semicolon-separated encoded button value, the Cx and Cy ordi-
nates and final character M .
The normal mouse response is altered to use
o CSI followed by semicolon-separated
o encoded button value,
o the Px and Py ordinates and final character M .
This uses the same button encoding as X10, but printing it as
a decimal integer rather than as a single byte.
...
...
cursor.c
View file @
f9c8b13e
/* $XTermId: cursor.c,v 1.7
6
2019/0
6
/1
1
0
8:58:26
tom Exp $ */
/* $XTermId: cursor.c,v 1.7
7
2019/0
7
/1
2
0
1:11:59
tom Exp $ */
/*
* Copyright 2002-2018,2019 by Thomas E. Dickey
...
...
@@ -332,6 +332,7 @@ CursorSave(XtermWidget xw)
sc
->
cur_foreground
=
xw
->
cur_foreground
;
sc
->
cur_background
=
xw
->
cur_background
;
sc
->
sgr_foreground
=
xw
->
sgr_foreground
;
sc
->
sgr_38_xcolors
=
xw
->
sgr_38_xcolors
;
#endif
saveCharsets
(
screen
,
sc
->
gsets
);
}
...
...
@@ -378,6 +379,7 @@ CursorRestore(XtermWidget xw)
#if OPT_ISO_COLORS
xw
->
sgr_foreground
=
sc
->
sgr_foreground
;
xw
->
sgr_38_xcolors
=
sc
->
sgr_38_xcolors
;
SGR_Foreground
(
xw
,
(
xw
->
flags
&
FG_COLOR
)
?
sc
->
cur_foreground
:
-
1
);
SGR_Background
(
xw
,
(
xw
->
flags
&
BG_COLOR
)
?
sc
->
cur_background
:
-
1
);
#endif
...
...
data.h
View file @
f9c8b13e
/* $XTermId: data.h,v 1.13
6
2019/0
6/28 09:55:29
tom Exp $ */
/* $XTermId: data.h,v 1.13
7
2019/0
7/19 00:40:42
tom Exp $ */
/*
* Copyright 2002-2018,2019 by Thomas E. Dickey
...
...
@@ -241,7 +241,7 @@ typedef struct XTERM_RESOURCE {
String
fullscreen_s
;
/* resource for "fullscreen" */
int
fullscreen
;
/* derived from fullscreen_s */
#endif
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
Boolean
buffered
;
int
buffered_fps
;
#endif
...
...
debian/changelog
View file @
f9c8b13e
xterm (348-1) UNRELEASED; urgency=medium
* New upstream release.
- Update window-manager hints when exiting Tek4014 mode
(Closes: #932569, patch by Jonathan Irwin).
* Bump Standards-Version to 4.4.0, no changes needed.
-- Sven Joachim <svenjoac@gmx.de> Tue, 23 Jul 2019 18:29:27 +0200
xterm (347-1) unstable; urgency=low
* New upstream release.
...
...
debian/control
View file @
f9c8b13e
...
...
@@ -3,7 +3,7 @@ Section: x11
Priority: optional
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: Sven Joachim <svenjoac@gmx.de>
Standards-Version: 4.
3
.0
Standards-Version: 4.
4
.0
Rules-Requires-Root: no
Vcs-Browser: https://salsa.debian.org/xorg-team/app/xterm
Vcs-Git: https://salsa.debian.org/xorg-team/app/xterm.git
...
...
debian/patches/900_debian_xterm.diff
View file @
f9c8b13e
...
...
@@ -42,7 +42,7 @@ This patch by Branden Robinson.
+ :kb=\177:
--- a/terminfo
+++ b/terminfo
@@ -115
9
,6 +115
9
,8 @@
xterm-vt220|xterm emulating vt220,
@@ -11
6
5,6 +11
6
5,8 @@
xterm-vt220|xterm emulating vt220,
use=xterm+app,
use=xterm+edit,
use=xterm-basic,
...
...
@@ -51,7 +51,7 @@ This patch by Branden Robinson.
#
xterm-vt52|xterm emulating dec vt52,
cols#80,
@@ -24
76
,12 +24
7
8,12 @@
xterm-r5|xterm R5 version,
@@ -24
82
,12 +248
4
,12 @@
xterm-r5|xterm R5 version,
# This is the only entry which you should have to customize, since "xterm"
# is widely used for a variety of incompatible terminal emulations including
# color_xterm and rxvt.
...
...
debian/patches/902_windowops.diff
View file @
f9c8b13e
...
...
@@ -4,7 +4,7 @@
--- a/xterm.man
+++ b/xterm.man
@@ -31
15
,7 +31
15
,7 @@
This is a comma-separated list of names,
@@ -31
33
,7 +31
33
,7 @@
This is a comma-separated list of names,
from \fIdtterm\fP the operation number).
The default value is
.NS
...
...
debian/patches/904_fontops.diff
View file @
f9c8b13e
...
...
@@ -4,7 +4,7 @@
--- a/xterm.man
+++ b/xterm.man
@@ -21
48
,7 +21
48
,7 @@
The default is \*(``true\*(''.
@@ -21
61
,7 +21
61
,7 @@
The default is \*(``true\*(''.
.TP
.B "allowFontOps\fP (class\fB AllowFontOps\fP)"
Specifies whether control sequences that set/query the font should be allowed.
...
...
fontutils.c
View file @
f9c8b13e
/* $XTermId: fontutils.c,v 1.6
29
2019/0
1
/1
1
0
2:14:23
tom Exp $ */
/* $XTermId: fontutils.c,v 1.6
31
2019/0
7
/1
9
0
0:40:42
tom Exp $ */
/*
* Copyright 1998-2018,2019 by Thomas E. Dickey
...
...
@@ -3288,9 +3288,9 @@ xtermUpdateFontInfo(XtermWidget xw, Bool doresize)
int
scrollbar_width
;
VTwin
*
win
=
&
(
screen
->
fullVwin
);
#if
OPT
_DOUBLE_BUFFER
#if
USE
_DOUBLE_BUFFER
discardRenderDraw
(
TScreenOf
(
xw
));
#endif
/*
OPT
_DOUBLE_BUFFER */
#endif
/*
USE
_DOUBLE_BUFFER */
scrollbar_width
=
(
xw
->
misc
.
scrollbar
?
(
screen
->
scrollWidget
->
core
.
width
+
...
...
@@ -4044,38 +4044,38 @@ dec2ucs(TScreen *screen, unsigned ch)
#if OPT_VT52_MODE
if
(
screen
!=
0
&&
!
(
screen
->
vtXX_level
))
{
switch
(
ch
)
{
MY_UCS
(
0x0020
,
0
);
/*
reserved
, treat as blank */
MY_UCS
(
0x
25ae
,
1
);
/*
black vertical rectangle
*/
MY_UCS
(
0x2
15f
,
2
);
/*
"1/"
*/
MY_UCS
(
0x
0020
,
3
);
/* "
3
/"
, not in Unicode, ignore
*/
MY_UCS
(
0x0020
,
4
);
/* "
5
/", not in Unicode, ignore
*/
MY_UCS
(
0x0020
,
5
);
/* "
7
/", not in Unicode, ignore
*/
MY_UCS
(
0x00
b
0
,
6
);
/*
degree sign
*/
MY_UCS
(
0x00b
1
,
7
);
/*
plus-minus
sign */
MY_UCS
(
0x
2192
,
8
);
/*
right-arrow
*/
MY_UCS
(
0x2
026
,
9
);
/*
ellipsis
*/
MY_UCS
(
0x
00f7
,
10
);
/*
divide by
*/
MY_UCS
(
0x
2193
,
11
);
/* d
own arrow
*/
MY_UCS
(
0x2
3ba
,
12
);
/*
bar at scan 0
*/
MY_UCS
(
0x23ba
,
13
);
/* bar at scan
1
*/
MY_UCS
(
0x23b
b
,
14
);
/* bar at scan
2
*/
MY_UCS
(
0x23bb
,
15
);
/* bar at scan
3
*/
MY_UCS
(
0x23b
c
,
16
);
/* bar at scan
4
*/
MY_UCS
(
0x23bc
,
17
);
/* bar at scan
5
*/
MY_UCS
(
0x23b
d
,
18
);
/* bar at scan
6
*/
MY_UCS
(
0x23bd
,
19
);
/* bar at scan
7
*/
MY_UCS
(
0x2
080
,
20
);
/*
subscript 0
*/
MY_UCS
(
0x208
1
,
21
);
/* subscript
1
*/
MY_UCS
(
0x208
2
,
22
);
/* subscript
2
*/
MY_UCS
(
0x208
3
,
23
);
/* subscript
3
*/
MY_UCS
(
0x208
4
,
24
);
/* subscript
4
*/
MY_UCS
(
0x208
5
,
25
);
/* subscript
5
*/
MY_UCS
(
0x208
6
,
26
);
/* subscript
6
*/
MY_UCS
(
0x208
7
,
27
);
/* subscript
7
*/
MY_UCS
(
0x208
8
,
28
);
/* subscript
8
*/
MY_UCS
(
0x208
9
,
29
);
/* subscript
9
*/
MY_UCS
(
0x
00b6
,
30
);
/*
paragraph
*/
MY_UCS
(
0x00
7f
,
31
);
/*
invalid, treat as rubout
*/
MY_UCS
(
0x0020
,
0
);
/*
nbsp
, treat as blank */
MY_UCS
(
0x
0020
,
1
);
/*
reserved, treat as blank
*/
MY_UCS
(
0x2
5ae
,
2
);
/*
black vertical rectangle
*/
MY_UCS
(
0x
215f
,
3
);
/* "
1
/"
*/
MY_UCS
(
0x0020
,
4
);
/* "
3
/", not in Unicode, ignore */
MY_UCS
(
0x0020
,
5
);
/* "
5
/", not in Unicode, ignore */
MY_UCS
(
0x00
2
0
,
6
);
/*
"7/", not in Unicode, ignore
*/
MY_UCS
(
0x00b
0
,
7
);
/*
degree
sign */
MY_UCS
(
0x
00b1
,
8
);
/*
plus-minus sign
*/
MY_UCS
(
0x2
192
,
9
);
/*
right-arrow
*/
MY_UCS
(
0x
2026
,
10
);
/*
ellipsis
*/
MY_UCS
(
0x
00f7
,
11
);
/* d
ivide by
*/
MY_UCS
(
0x2
193
,
12
);
/*
down arrow
*/
MY_UCS
(
0x23ba
,
13
);
/* bar at scan
0
*/
MY_UCS
(
0x23b
a
,
14
);
/* bar at scan
1
*/
MY_UCS
(
0x23bb
,
15
);
/* bar at scan
2
*/
MY_UCS
(
0x23b
b
,
16
);
/* bar at scan
3
*/
MY_UCS
(
0x23bc
,
17
);
/* bar at scan
4
*/
MY_UCS
(
0x23b
c
,
18
);
/* bar at scan
5
*/
MY_UCS
(
0x23bd
,
19
);
/* bar at scan
6
*/
MY_UCS
(
0x2
3bd
,
20
);
/*
bar at scan 7
*/
MY_UCS
(
0x208
0
,
21
);
/* subscript
0
*/
MY_UCS
(
0x208
1
,
22
);
/* subscript
1
*/
MY_UCS
(
0x208
2
,
23
);
/* subscript
2
*/
MY_UCS
(
0x208
3
,
24
);
/* subscript
3
*/
MY_UCS
(
0x208
4
,
25
);
/* subscript
4
*/
MY_UCS
(
0x208
5
,
26
);
/* subscript
5
*/
MY_UCS
(
0x208
6
,
27
);
/* subscript
6
*/
MY_UCS
(
0x208
7
,
28
);
/* subscript
7
*/
MY_UCS
(
0x208
8
,
29
);
/* subscript
8
*/
MY_UCS
(
0x
2089
,
30
);
/*
subscript 9
*/
MY_UCS
(
0x00
b6
,
31
);
/*
paragraph
*/
}
}
else
#endif
...
...
Prev
1
2
3
Next