Skip to content
Commits on Source (6)
-- $XTermId: INSTALL,v 1.182 2019/05/27 18:17:01 tom Exp $
-- $XTermId: INSTALL,v 1.183 2019/07/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 for xterm-347, version xterm-347
MANIFEST for xterm-348, version xterm-348
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode
......
The NEWS file was generated from xterm.log.html, which serves as the changelog
for xterm.
--------------------------------------------------------------------------------
Patch #347 - 2019/06/30
Patch #348 - 2019/07/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
-- $XTermId: THANKS,v 1.23 2019/06/30 23:31:05 tom Exp $
-- $XTermId: THANKS,v 1.24 2019/07/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
......
/* $XTermId: Tekproc.c,v 1.235 2019/06/11 20:07:02 tom Exp $ */
/* $XTermId: Tekproc.c,v 1.236 2019/07/22 20:01:06 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) {
......
dnl $XTermId: aclocal.m4,v 1.432 2019/06/16 13:45:01 tom Exp $
dnl $XTermId: aclocal.m4,v 1.435 2019/07/21 19:41:06 tom Exp $
dnl
dnl ---------------------------------------------------------------------------
dnl
......@@ -1080,7 +1080,7 @@ if test "$GCC" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_GCC_WARNINGS version: 34 updated: 2019/04/08 17:50:29
dnl CF_GCC_WARNINGS version: 35 updated: 2019/06/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: 2012/10/04 20:12:20
dnl CF_PATH_PROG version: 10 updated: 2019/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.
......
/* $XTermId: charproc.c,v 1.1675 2019/06/30 19:18:53 tom Exp $ */
/* $XTermId: charproc.c,v 1.1688 2019/07/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->flags))
&& (!xw->sgr_38_xcolors)
&& (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_margins(TScreen *screen)
void
resetMargins(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_margins(screen);
resetMargins(xw);
memset(screen->sc, 0, sizeof(screen->sc));
......@@ -11927,7 +11951,7 @@ ReallyReset(XtermWidget xw, Bool full, Bool saved)
#endif
/* reset scrolling region */
reset_margins(screen);
resetMargins(xw);
bitclr(&xw->flags, ORIGIN);
......@@ -12637,7 +12661,6 @@ VTInitTranslations(void)
};
#undef DATA
/* *INDENT-ON* */
char *result = 0;
int pass;
......
......@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2019 Free Software Foundation, Inc.
timestamp='2019-05-23'
timestamp='2019-06-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|'`
......
This diff is collapsed.
dnl $XTermId: configure.in,v 1.361 2018/12/09 19:07:03 tom Exp $
dnl $XTermId: configure.in,v 1.363 2019/07/21 19:41:39 tom Exp $
dnl
dnl -----------------------------------------------------------------------------
dnl this file is part of xterm
dnl
dnl Copyright 1997-2017,2018 by Thomas E. Dickey
dnl Copyright 1997-2018,2019 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,
......
.\"#! troff -ms $1 -*- Nroff -*-
.\" "Xterm Control Sequences" document
.\" $XTermId: ctlseqs.ms,v 1.505 2019/06/26 08:31:15 tom Exp $
.\" $XTermId: ctlseqs.ms,v 1.513 2019/07/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 #347
.ds RF 2019/06/26
.ds LF Patch #348
.ds RF 2019/07/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.
.RS
.bP
.RE
.IP
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.
......
......@@ -21,7 +21,7 @@
Thomas Dickey
XFree86 Project (1996-2006)
invisible-island.net (2006-2019)
updated for XTerm Patch #347 (2019/06/26)
updated for XTerm Patch #348 (2019/07/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.
......
/* $XTermId: cursor.c,v 1.76 2019/06/11 08:58:26 tom Exp $ */
/* $XTermId: cursor.c,v 1.77 2019/07/12 01: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
......
/* $XTermId: data.h,v 1.136 2019/06/28 09:55:29 tom Exp $ */
/* $XTermId: data.h,v 1.137 2019/07/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
......
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.
......
......@@ -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
......
......@@ -42,7 +42,7 @@ This patch by Branden Robinson.
+ :kb=\177:
--- a/terminfo
+++ b/terminfo
@@ -1159,6 +1159,8 @@ xterm-vt220|xterm emulating vt220,
@@ -1165,6 +1165,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,
@@ -2476,12 +2478,12 @@ xterm-r5|xterm R5 version,
@@ -2482,12 +2484,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.
......
......@@ -4,7 +4,7 @@
--- a/xterm.man
+++ b/xterm.man
@@ -3115,7 +3115,7 @@ This is a comma-separated list of names,
@@ -3133,7 +3133,7 @@ This is a comma-separated list of names,
from \fIdtterm\fP the operation number).
The default value is
.NS
......
......@@ -4,7 +4,7 @@
--- a/xterm.man
+++ b/xterm.man
@@ -2148,7 +2148,7 @@ The default is \*(``true\*(''.
@@ -2161,7 +2161,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.
......
/* $XTermId: fontutils.c,v 1.629 2019/01/11 02:14:23 tom Exp $ */
/* $XTermId: fontutils.c,v 1.631 2019/07/19 00: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(0x25ae, 1); /* black vertical rectangle */
MY_UCS(0x215f, 2); /* "1/" */
MY_UCS(0x0020, 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(0x00b0, 6); /* degree sign */
MY_UCS(0x00b1, 7); /* plus-minus sign */
MY_UCS(0x2192, 8); /* right-arrow */
MY_UCS(0x2026, 9); /* ellipsis */
MY_UCS(0x00f7, 10); /* divide by */
MY_UCS(0x2193, 11); /* down arrow */
MY_UCS(0x23ba, 12); /* bar at scan 0 */
MY_UCS(0x23ba, 13); /* bar at scan 1 */
MY_UCS(0x23bb, 14); /* bar at scan 2 */
MY_UCS(0x23bb, 15); /* bar at scan 3 */
MY_UCS(0x23bc, 16); /* bar at scan 4 */
MY_UCS(0x23bc, 17); /* bar at scan 5 */
MY_UCS(0x23bd, 18); /* bar at scan 6 */
MY_UCS(0x23bd, 19); /* bar at scan 7 */
MY_UCS(0x2080, 20); /* subscript 0 */
MY_UCS(0x2081, 21); /* subscript 1 */
MY_UCS(0x2082, 22); /* subscript 2 */
MY_UCS(0x2083, 23); /* subscript 3 */
MY_UCS(0x2084, 24); /* subscript 4 */
MY_UCS(0x2085, 25); /* subscript 5 */
MY_UCS(0x2086, 26); /* subscript 6 */
MY_UCS(0x2087, 27); /* subscript 7 */
MY_UCS(0x2088, 28); /* subscript 8 */
MY_UCS(0x2089, 29); /* subscript 9 */
MY_UCS(0x00b6, 30); /* paragraph */
MY_UCS(0x007f, 31); /* invalid, treat as rubout */
MY_UCS(0x0020, 0); /* nbsp, treat as blank */
MY_UCS(0x0020, 1); /* reserved, treat as blank */
MY_UCS(0x25ae, 2); /* black vertical rectangle */
MY_UCS(0x215f, 3); /* "1/" */
MY_UCS(0x0020, 4); /* "3/", not in Unicode, ignore */
MY_UCS(0x0020, 5); /* "5/", not in Unicode, ignore */
MY_UCS(0x0020, 6); /* "7/", not in Unicode, ignore */
MY_UCS(0x00b0, 7); /* degree sign */
MY_UCS(0x00b1, 8); /* plus-minus sign */
MY_UCS(0x2192, 9); /* right-arrow */
MY_UCS(0x2026, 10); /* ellipsis */
MY_UCS(0x00f7, 11); /* divide by */
MY_UCS(0x2193, 12); /* down arrow */
MY_UCS(0x23ba, 13); /* bar at scan 0 */
MY_UCS(0x23ba, 14); /* bar at scan 1 */
MY_UCS(0x23bb, 15); /* bar at scan 2 */
MY_UCS(0x23bb, 16); /* bar at scan 3 */
MY_UCS(0x23bc, 17); /* bar at scan 4 */
MY_UCS(0x23bc, 18); /* bar at scan 5 */
MY_UCS(0x23bd, 19); /* bar at scan 6 */
MY_UCS(0x23bd, 20); /* bar at scan 7 */
MY_UCS(0x2080, 21); /* subscript 0 */
MY_UCS(0x2081, 22); /* subscript 1 */
MY_UCS(0x2082, 23); /* subscript 2 */
MY_UCS(0x2083, 24); /* subscript 3 */
MY_UCS(0x2084, 25); /* subscript 4 */
MY_UCS(0x2085, 26); /* subscript 5 */
MY_UCS(0x2086, 27); /* subscript 6 */
MY_UCS(0x2087, 28); /* subscript 7 */
MY_UCS(0x2088, 29); /* subscript 8 */
MY_UCS(0x2089, 30); /* subscript 9 */
MY_UCS(0x00b6, 31); /* paragraph */
}
} else
#endif
......