Skip to content
GitLab
Explore
Sign in
Register
Commits on Source (3)
Imported Upstream version 345
· 5099b036
Sven Joachim
authored
May 14, 2019
5099b036
Imported Upstream version 346
· d6988e96
Sven Joachim
authored
May 29, 2019
d6988e96
Imported Upstream version 347
· 4c5fb88e
Sven Joachim
authored
Jul 01, 2019
4c5fb88e
Expand all
Show whitespace changes
Inline
Side-by-side
INSTALL
View file @
4c5fb88e
-- $XTermId: INSTALL,v 1.1
79
201
8/12/09
18:1
4:52
tom Exp $
-- $XTermId: INSTALL,v 1.1
82
201
9/05/27
18:1
7:01
tom Exp $
-------------------------------------------------------------------------------
-- Copyright 1997-201
7
,201
8
by Thomas E. Dickey
-- Copyright 1997-201
8
,201
9
by Thomas E. Dickey
--
-- All Rights Reserved
--
...
...
@@ -261,9 +261,8 @@ The options (in alphabetic order):
--disable-paste64 disable support for bracketed paste mode
Do not compile-in code to support experimental bracketed paste mode,
along with functions for setting/getting the selection data, termed
"paste64".
Do not compile-in code to support bracketed paste mode, along with
functions for setting/getting the selection data, termed "paste64".
(see ctlseqs.ms description of OSC 52, and DECSET 2004).
...
...
@@ -515,7 +514,7 @@ The options (in alphabetic order):
--enable-readline-mouse enable support for mouse in readline applications
Compile-in code to support
experimental
bracketed paste mode, i.e.,
Compile-in code to support
predecessor to
bracketed paste mode, i.e.,
provide functions for setting/getting the selection data. Essentially
this puts xterm into a mode that sends special function-key strings to
bracket the data.
...
...
MANIFEST
View file @
4c5fb88e
MANIFEST for xterm-34
4
, version xterm-34
4
MANIFEST for xterm-34
7
, version xterm-34
7
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode
...
...
@@ -6,6 +6,7 @@ MANIFEST this file
88colres.h resource definitions for 88-color mode
88colres.pl script to generate 88colres.h
AAA_README_VMS.txt note for VMS port of 'xterm'
COPYING license for this program
INSTALL configure script: options and related install instructions
Imakefile imake template for Makefile
KOI8RXTerm.ad resources for koi8rxterm
...
...
@@ -166,9 +167,16 @@ package/debian/xterm-dev.menu Debian menu-file for xterm-dev package.
package/debian/xterm-xres.sed build-script
package/freebsd subdirectory
package/freebsd/Makefile build-script
package/freebsd/distinfo generated sums
package/freebsd/pkg-descr build-script
package/freebsd/pkg-message build-script
package/freebsd/pkg-plist build-script
package/pkgsrc subdirectory
package/pkgsrc/DESCR build-script
package/pkgsrc/Makefile build-script
package/pkgsrc/PLIST build-script
package/pkgsrc/distinfo build-script
package/pkgsrc/options.mk build-script
package subdirectory
package/xterm.spec build-script
tektests subdirectory
...
...
@@ -205,11 +213,13 @@ vttests/other-sgr.sh demonstrate non-VTxx SGRs
vttests/paste64.pl script to test base64-selection option
vttests/print-vt-chars.pl demo-script
vttests/query-color.pl demonstrate OSC 4
vttests/query-dynamic.pl demonstrate OSC 10 to OSC 19
vttests/query-fonts.pl script to demo/test font-querying
vttests/query-status.pl query DECRQSS status
vttests/report-sgr.pl demonstrate report-sgr
vttests/resize.pl translated resize.sh to perl since it is easy to test, and I needed
vttests/resize.sh script to demonstrate resizing
vttests/sgrPushPop.pl Dan Thompson's script
vttests/sgrPushPop.pl demonstrate xterm SGR push/pop
vttests/sgrPushPop2.pl demonstrate xterm SGR push/pop for colors
vttests/tcapquery.pl script to test tcap-query option
vttests/title.sh test-script to show title of xterm in action
Makefile.in
View file @
4c5fb88e
## $XTermId: Makefile.in,v 1.24
5
2019/0
1
/1
4
0
1
:4
0:5
6 tom Exp $
## $XTermId: Makefile.in,v 1.24
6
2019/0
6
/1
0
0
9
:4
8:0
6 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
...
...
@@ -129,6 +129,7 @@ AUTO_SOURCE = \
HDRS
=
VTparse.h data.h error.h fontutils.h main.h menu.h
\
ptyx.h version.h xstrings.h xterm.h xtermcap.h
$(
EXTRAHDR
)
PROGRAMS
=
xterm
$x
resize
$x
TEST_PROGRAMS
=
test_wcwidth
$x
all
:
$(PROGRAMS)
################################################################################
...
...
@@ -230,6 +231,10 @@ builtin_icons.h :
@
echo
"#endif"
>>
$@
@
echo
"made
$@
"
################################################################################
test_wcwidth$x
:
wcwidth.c
$(
CC
)
-o
$@
$(
CFLAGS
)
$(
CPPFLAGS
)
-DTEST_DRIVER
wcwidth.c
$(
LDFLAGS
)
$(
LIBS
)
################################################################################
actual_xterm
=
`
echo
xterm|
sed
'
$(
transform
)
'
`
actual_resize
=
`
echo
resize|
sed
'
$(
transform
)
'
`
...
...
@@ -527,7 +532,7 @@ mostlyclean :
-$(
RM
)
*
$o
*
.[is] XTerm[1-9]
*
.
*
Xterm.log.
*
XtermLog.
*
.pure core
*
~
*
.bak
*
.BAK
*
.out
*
.tmp
clean
:
mostlyclean
-$(
RM
)
$(
PROGRAMS
)
$(
AUTO_SOURCE
)
-$(
RM
)
$(
PROGRAMS
)
$(
TEST_PROGRAMS
)
$(
AUTO_SOURCE
)
sources
:
$(AUTO_SOURCE)
...
...
NEWS
View file @
4c5fb88e
The NEWS file was generated from xterm.log.html, which serves as the changelog
for xterm.
--------------------------------------------------------------------------------
Patch #34
4
- 2019/0
2/12
Patch #34
7
- 2019/0
6/30
* add ASCII escape to default for disallowedPasteControls (prompted
by discussion with Martin Hostettler).
* fix typo in ctlseqs.ms (Robert Ross).
* implement DEC Cyrillic NRCS (based on screenshots of vttest
provided by Markus Schmidt).
* correct control returning sixel geometry maximum versus actual size
(patch by Ben Wong).
* improve manual page for resize to clarify that resize does not
execute the shell commands which it generates for setting
environment variables.
* improve memory-management for parser, to handle response strings
that might occur with ENQ or when SRM mode is active (patch by
* 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).
* change Comment text in uxterm's desktop file to work around a
limitation of GNOME's GIO application (issue #940). The
documentation reads:
Searches desktop files for ones that match search_string.
The return value is an array of strvs. Each strv contains a list of
applications that matched search_string with an equal score. The
outer list is sorted by score so that the first strv contains the
best-matching applications, and so on. The algorithm for determining
matches is undefined and may change at any time.
* a check of zIconBeep resource was removed in double-buffer fix in
patch #334. That is used to decide whether to handle struct-notify
events. When xterm does handle the events, it may negotiate a new
window-size with the window manager. In that case, the limitResize
resource setting limited the new window-size to the screen-size.
Amended that by eliminating the limit for this special case when
double-buffer is configured, and restoring the check for zIconBeep
when double-buffer is not configured (Debian #919475).
* disallow recursion which could happen if a user configures the
answerbackString resource with the ENQ code and experiments with
that code when SRM is enabled (report by by Martin Hostettler).
* add remaining credits in COPYING file.
* modify run-tic.sh to check if it is using an older version of
ncurses which does not support large terminal descriptions, and if
so, remove a non-essential feature to keep within the 4096-byte
legacy limit.
* modify saveCellData to handle case where double-width character is
partially copied; that should be blanked (report/testcase 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).
THANKS
View file @
4c5fb88e
-- $XTermId: THANKS,v 1.2
1
2019/0
1/13 17:18:41
tom Exp $
-- $XTermId: THANKS,v 1.2
3
2019/0
6/30 23:31:05
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.
...
...
@@ -152,6 +152,8 @@ Mike Castle
Mike Fabian
Mike Frysinger
Mike Hopkirk
Mike Thornburg
Mikulas Patocka
Milan Mehner
Min Sik Kim
Miroslav Lichvar
...
...
@@ -183,6 +185,7 @@ Richard Tollerton
Rob Braun
Robert Brady
Robert Earl
Robert Ross
Robin Cutshaw
Romain Francoise
Ross Combs
...
...
Tekproc.c
View file @
4c5fb88e
/* $XTermId: Tekproc.c,v 1.23
2
201
8
/06/
25
20:
14:43
tom Exp $ */
/* $XTermId: Tekproc.c,v 1.23
5
201
9
/06/
11
20:
07:02
tom Exp $ */
/*
* Copyright 2001-201
7
,201
8
by Thomas E. Dickey
* Copyright 2001-201
8
,201
9
by Thomas E. Dickey
*
* All Rights Reserved
*
...
...
@@ -714,7 +714,7 @@ Tekparse(TekWidget tw)
TekGINoff
(
tw
);
TCursorDown
(
tw
);
if
(
!
tekRefreshList
)
do_xevents
();
do_xevents
(
tw
->
vt
);
break
;
case
CASE_SP
:
...
...
@@ -864,13 +864,13 @@ Tinput(TekWidget tw)
}
#ifdef VMS
if
(
Tselect_mask
&
X_mask
)
{
xevents
();
xevents
(
tw
->
vt
);
if
(
VTbuffer
->
update
!=
update
)
goto
again
;
}
#else
/* VMS */
if
(
FD_ISSET
(
ConnectionNumber
(
XtDisplay
(
tw
)),
&
Tselect_mask
))
{
xevents
();
xevents
(
tw
->
vt
);
if
(
VTbuffer
->
update
!=
update
)
goto
again
;
}
...
...
@@ -1814,8 +1814,10 @@ TekSetFontSize(TekWidget tw, Bool fromMenu, int newitem)
void
ChangeTekColors
(
TekWidget
tw
,
TScreen
*
screen
,
ScrnColors
*
pNew
)
{
if
(
tw
&&
screen
)
{
TekScreen
*
tekscr
=
TekScreenOf
(
tw
);
XGCValues
gcv
;
int
i
;
if
(
COLOR_DEFINED
(
pNew
,
TEK_FG
))
{
T_COLOR
(
screen
,
TEK_FG
)
=
COLOR_VALUE
(
pNew
,
TEK_FG
);
...
...
@@ -1833,9 +1835,6 @@ ChangeTekColors(TekWidget tw, TScreen *screen, ScrnColors * pNew)
TRACE
((
"... TEK_CURSOR: %#lx
\n
"
,
T_COLOR
(
screen
,
TEK_CURSOR
)));
}
if
(
tw
)
{
int
i
;
XSetForeground
(
XtDisplay
(
tw
),
tekscr
->
TnormalGC
,
T_COLOR
(
screen
,
TEK_FG
));
XSetBackground
(
XtDisplay
(
tw
),
tekscr
->
TnormalGC
,
...
...
@@ -1865,18 +1864,17 @@ ChangeTekColors(TekWidget tw, TScreen *screen, ScrnColors * pNew)
void
TekReverseVideo
(
XtermWidget
xw
,
TekWidget
tw
)
{
if
(
tw
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
TekScreen
*
tekscr
=
TekScreenOf
(
tw
);
Pixel
tmp
;
XGCValues
gcv
;
int
i
;
EXCHANGE
(
T_COLOR
(
screen
,
TEK_FG
),
T_COLOR
(
screen
,
TEK_BG
),
tmp
);
T_COLOR
(
screen
,
TEK_CURSOR
)
=
T_COLOR
(
screen
,
TEK_FG
);
if
(
tw
)
{
int
i
;
XSetForeground
(
XtDisplay
(
tw
),
tekscr
->
TnormalGC
,
T_COLOR
(
screen
,
TEK_FG
));
XSetBackground
(
XtDisplay
(
tw
),
tekscr
->
TnormalGC
,
T_COLOR
(
screen
,
TEK_BG
));
...
...
@@ -1917,12 +1915,18 @@ TekBackground(TekWidget tw, TScreen *screen)
void
TCursorToggle
(
TekWidget
tw
,
int
toggle
)
/* TOGGLE or CLEAR */
{
TekScreen
*
tekscr
=
TekScreenOf
(
tw
)
;
TScreen
*
screen
=
TScreenOf
(
tw
->
vt
)
;
TekScreen
*
tekscr
;
XtermWidget
xw
;
int
c
,
x
,
y
;
unsigned
int
cellwidth
,
cellheight
;
unsigned
cellwidth
,
cellheight
;
if
(
!
TEK4014_SHOWN
(
tw
->
vt
))
if
(
tw
==
0
)
return
;
if
((
tekscr
=
TekScreenOf
(
tw
))
==
0
)
return
;
if
((
xw
=
tw
->
vt
)
==
0
)
return
;
if
(
!
TEK4014_SHOWN
(
xw
))
return
;
TRACE
((
"TCursorToggle %s
\n
"
,
(
toggle
==
TOGGLE
)
?
"toggle"
:
"clear"
));
...
...
@@ -1935,6 +1939,7 @@ TCursorToggle(TekWidget tw, int toggle) /* TOGGLE or CLEAR */
y
=
(
int
)
ScaledY
(
tw
,
tekscr
->
cur_Y
)
-
tw
->
tek
.
tobaseline
[
c
];
if
(
toggle
==
TOGGLE
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
if
(
screen
->
select
||
screen
->
always_highlight
)
XFillRectangle
(
XtDisplay
(
tw
),
TWindow
(
tekscr
),
tekscr
->
TcursorGC
,
x
,
y
,
...
...
@@ -2063,7 +2068,7 @@ HandleGINInput(Widget w,
}
/*
* Check if the current widget, or any parent, is the
VT100 "xterm
" widget.
* Check if the current widget, or any parent, is the
"tek4014
" widget.
*/
TekWidget
getTekWidget
(
Widget
w
)
...
...
VTPrsTbl.c
View file @
4c5fb88e
/* $XTermId: VTPrsTbl.c,v 1.9
5
2019/0
2/10 23:34:31
tom Exp $ */
/* $XTermId: VTPrsTbl.c,v 1.9
6
2019/0
5/07 08:38:00
tom Exp $ */
/*
* Copyright 1999-2018,2019 by Thomas E. Dickey
...
...
@@ -2507,8 +2507,8 @@ CASE_GROUND_STATE,
CASE_GROUND_STATE
,
CASE_GROUND_STATE
,
/* p q r s */
CASE_
GROUND_STATE
,
CASE_
GROUND_STATE
,
CASE_
XTERM_PUSH_SGR
,
CASE_
XTERM_POP_SGR
,
CASE_GROUND_STATE
,
CASE_GROUND_STATE
,
/* t u v w */
...
...
@@ -2667,8 +2667,8 @@ CASE_GROUND_STATE,
CASE_GROUND_STATE
,
CASE_GROUND_STATE
,
/* eth ntilde ograve oacute */
CASE_
GROUND_STATE
,
CASE_
GROUND_STATE
,
CASE_
XTERM_PUSH_SGR
,
CASE_
XTERM_POP_SGR
,
CASE_GROUND_STATE
,
CASE_GROUND_STATE
,
/* ocircumflex otilde odiaeresis division */
...
...
aclocal.m4
View file @
4c5fb88e
dnl $XTermId: aclocal.m4,v 1.42
6
201
8/12/11 01:56:17
tom Exp $
dnl $XTermId: aclocal.m4,v 1.4
3
2 201
9/06/16 13:45:01
tom Exp $
dnl
dnl ---------------------------------------------------------------------------
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
...
...
@@ -475,6 +475,60 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
fi
])
dnl ---------------------------------------------------------------------------
dnl CF_CONST_X_STRING version: 1 updated: 2019/04/08 17:50:29
dnl -----------------
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
dnl character-strings.
dnl
dnl It is ambiguous because the specification accommodated the pre-ANSI
dnl compilers bundled by more than one vendor in lieu of providing a standard C
dnl compiler other than by costly add-ons. Because of this, the specification
dnl did not take into account the use of const for telling the compiler that
dnl string literals would be in readonly memory.
dnl
dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
dnl let the compiler decide how to represent Xt's strings which were #define'd.
dnl That does not solve the problem of using the block of Xt's strings which
dnl are compiled into the library (and is less efficient than one might want).
dnl
dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
dnl when compiling the library and compiling using the library, to tell the
dnl compiler that String is const.
AC_DEFUN([CF_CONST_X_STRING],
[
AC_TRY_COMPILE(
[
#include <stdlib.h>
#include <X11/Intrinsic.h>
],
[String foo = malloc(1)],[
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
AC_TRY_COMPILE(
[
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
#include <X11/Intrinsic.h>
],[String foo = malloc(1); *foo = 0],[
cf_cv_const_x_string=no
],[
cf_cv_const_x_string=yes
])
])
case $cf_cv_const_x_string in
(no)
CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
;;
(*)
CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
;;
esac
])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_DISABLE_DESKTOP version: 2 updated: 2011/04/22 05:17:37
dnl ------------------
dnl Handle a configure option "--disable-desktop", which sets a shell
...
...
@@ -1026,7 +1080,7 @@ if test "$GCC" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_GCC_WARNINGS version: 3
3
updated: 201
8
/0
6/20 20:23:13
dnl CF_GCC_WARNINGS version: 3
4
updated: 201
9
/0
4/08 17:50:29
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:
...
...
@@ -1050,12 +1104,11 @@ AC_DEFUN([CF_GCC_WARNINGS],
AC_REQUIRE([CF_GCC_VERSION])
CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
cat > conftest.$ac_ext <<EOF
#line __oline__ "${as_me:-configure}"
int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
EOF
if test "$INTEL_COMPILER" = yes
then
# The "-wdXXX" options suppress warnings:
...
...
@@ -1090,7 +1143,6 @@ then
fi
done
CFLAGS="$cf_save_CFLAGS"
elif test "$GCC" = yes
then
AC_CHECKING([for $CC warning options])
...
...
@@ -1119,9 +1171,6 @@ then
if AC_TRY_EVAL(ac_compile); then
test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
case $cf_opt in
(Wcast-qual)
CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
;;
(Winline)
case $GCC_VERSION in
([[34]].*)
...
...
@@ -1835,7 +1884,7 @@ fi
AC_SUBST(PKG_CONFIG)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_POSIX_C_SOURCE version: 1
0
updated: 2018/
06/20
20:
23
:1
3
dnl CF_POSIX_C_SOURCE version: 1
1
updated: 2018/
12/31
20:
46
:1
7
dnl -----------------
dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
dnl
...
...
@@ -1850,7 +1899,10 @@ dnl
dnl Parameters:
dnl $1 is the nominal value for _POSIX_C_SOURCE
AC_DEFUN([CF_POSIX_C_SOURCE],
[
[AC_REQUIRE([CF_POSIX_VISIBLE])dnl
if test "$cf_cv_posix_visible" = no; then
cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
cf_save_CFLAGS="$CFLAGS"
...
...
@@ -1907,6 +1959,8 @@ if test "$cf_cv_posix_c_source" != no ; then
CF_ADD_CFLAGS($cf_cv_posix_c_source)
fi
fi # cf_cv_posix_visible
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_POSIX_SAVED_IDS version: 8 updated: 2012/10/04 20:12:20
...
...
@@ -1960,6 +2014,33 @@ int main()
test "$cf_cv_posix_saved_ids" = yes && AC_DEFINE(HAVE_POSIX_SAVED_IDS,1,[Define to 1 if POSIX saved-ids are supported])
])
dnl ---------------------------------------------------------------------------
dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
dnl ----------------
dnl POSIX documents test-macros which an application may set before any system
dnl headers are included to make features available.
dnl
dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
dnl diverged from POSIX in 2002 by setting symbols which make all of the most
dnl recent features visible in the system header files unless the application
dnl overrides the corresponding test-macros. Doing that introduces portability
dnl problems.
dnl
dnl This macro makes a special check for the symbols used for this, to avoid a
dnl conflicting definition.
AC_DEFUN([CF_POSIX_VISIBLE],
[
AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
AC_TRY_COMPILE([#include <stdio.h>],[
#if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
&& defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
&& defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
&& defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
#error conflicting symbols found
#endif
],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_POSIX_WAIT version: 3 updated: 2012/10/04 20:12:20
dnl -------------
dnl Check for POSIX wait support
...
...
@@ -2260,7 +2341,7 @@ CF_VERBOSE(...checked $1 [$]$1)
AC_SUBST(EXTRA_LDFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_SIGWINCH version:
1
updated: 20
06/04/02 16:41:09
dnl CF_SIGWINCH version:
2
updated: 20
19/03/23 19:54:44
dnl -----------
dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
dnl programs need this test).
...
...
@@ -4162,7 +4243,7 @@ then
fi
])
dnl ---------------------------------------------------------------------------
dnl CF_XOPEN_SOURCE version: 5
4
updated: 2018/1
1/07 07:43:44
dnl CF_XOPEN_SOURCE version: 5
5
updated: 2018/1
2/31 20:46:17
dnl ---------------
dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
dnl or adapt to the vendor's definitions to get equivalent functionality,
...
...
@@ -4173,6 +4254,9 @@ dnl $1 is the nominal value for _XOPEN_SOURCE
dnl $2 is the nominal value for _POSIX_C_SOURCE
AC_DEFUN([CF_XOPEN_SOURCE],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([CF_POSIX_VISIBLE])
if test "$cf_cv_posix_visible" = no; then
cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
...
...
@@ -4287,6 +4371,7 @@ make an error
CF_TRY_XOPEN_SOURCE
fi
fi
fi # cf_cv_posix_visible
])
dnl ---------------------------------------------------------------------------
dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
...
...
@@ -4710,7 +4795,7 @@ AC_SUBST(HAVE_TYPE_FCCHAR32)
AC_SUBST(HAVE_TYPE_XFTCHARSPEC)
])
dnl ---------------------------------------------------------------------------
dnl CF_X_TOOLKIT version: 2
3
updated: 201
5
/0
4/12 15:39:00
dnl CF_X_TOOLKIT version: 2
4
updated: 201
9
/0
3/23 19:54:44
dnl ------------
dnl Check for X Toolkit libraries
AC_DEFUN([CF_X_TOOLKIT],
...
...
@@ -4718,7 +4803,7 @@ AC_DEFUN([CF_X_TOOLKIT],
AC_REQUIRE([AC_PATH_XTRA])
AC_REQUIRE([CF_CHECK_CACHE])
# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new)
, and
(and
# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new) (and
# in some cases has installed dummy files in the former, other cases replaced
# it with a link to the new location). This complicates the configure script.
# Check for that pitfall, and recover using pkg-config
...
...
button.c
View file @
4c5fb88e
/* $XTermId: button.c,v 1.5
68
2019/0
2/11 10:21:35
tom Exp $ */
/* $XTermId: button.c,v 1.5
75
2019/0
6/30 22:34:03
tom Exp $ */
/*
* Copyright 1999-2018,2019 by Thomas E. Dickey
...
...
@@ -91,6 +91,21 @@ button.c Handles button events in the terminal emulator.
#endif
#endif
#define PRIMARY_NAME "PRIMARY"
#define CLIPBOARD_NAME "CLIPBOARD"
#define SECONDARY_NAME "SECONDARY"
#define AtomToSelection(d,n) \
(((n) == XA_CLIPBOARD(d)) \
? CLIPBOARD_CODE \
: (((n) == XA_SECONDARY) \
? SECONDARY_CODE \
: PRIMARY_CODE))
#define isSelectionCode(n) ((n) >= PRIMARY_CODE)
#define CutBufferToCode(n) ((n) + MAX_SELECTION_CODES)
#define okSelectionCode(n) (isSelectionCode(n) ? (n) : PRIMARY_CODE)
#if OPT_WIDE_CHARS
#include
<ctype.h>
#include
<wcwidth.h>
...
...
@@ -156,7 +171,6 @@ static CELL lastButton3; /* At the release time */
static
Char
*
SaveText
(
TScreen
*
screen
,
int
row
,
int
scol
,
int
ecol
,
Char
*
lp
,
int
*
eol
);
static
int
Length
(
TScreen
*
screen
,
int
row
,
int
scol
,
int
ecol
);
static
int
TargetToSelection
(
TScreen
*
screen
,
String
name
);
static
void
ComputeSelect
(
XtermWidget
xw
,
CELL
*
startc
,
CELL
*
endc
,
Bool
extend
);
static
void
EditorButton
(
XtermWidget
xw
,
XButtonEvent
*
event
);
static
void
EndExtend
(
XtermWidget
w
,
XEvent
*
event
,
String
*
params
,
Cardinal
...
...
@@ -269,7 +283,7 @@ SendMousePosition(XtermWidget xw, XEvent *event)
case
BTN_EVENT_MOUSE
:
case
ANY_EVENT_MOUSE
:
if
(
KeyModifiers
(
event
)
==
0
||
KeyModifiers
(
event
)
==
ControlMask
)
{
if
(
KeyModifiers
(
event
)
==
0
)
{
/* xterm extension for motion reporting. June 1998 */
/* EditorButton() will distinguish between the modes */
switch
(
event
->
type
)
{
...
...
@@ -303,8 +317,7 @@ SendMousePosition(XtermWidget xw, XEvent *event)
my_event
->
button
==
Button1
)
{
TrackDown
(
xw
,
my_event
);
result
=
True
;
}
else
if
(
BtnModifiers
(
my_event
)
==
0
||
BtnModifiers
(
my_event
)
==
ControlMask
)
{
}
else
if
(
BtnModifiers
(
my_event
)
==
0
)
{
EditorButton
(
xw
,
my_event
);
result
=
True
;
}
...
...
@@ -313,8 +326,7 @@ SendMousePosition(XtermWidget xw, XEvent *event)
case
VT200_MOUSE
:
/* DEC vt200 compatible */
if
(
IsBtnEvent
(
event
))
{
if
(
BtnModifiers
(
my_event
)
==
0
||
BtnModifiers
(
my_event
)
==
ControlMask
)
{
if
(
BtnModifiers
(
my_event
)
==
0
)
{
EditorButton
(
xw
,
my_event
);
result
=
True
;
}
...
...
@@ -372,7 +384,7 @@ SendLocatorPosition(XtermWidget xw, XButtonEvent *event)
/* Make sure the event is an appropriate type */
if
((
!
IsBtnEvent
(
event
)
&&
!
screen
->
loc_filter
)
||
(
BtnModifiers
(
event
)
!=
0
&&
BtnModifiers
(
event
)
!=
ControlMask
))
(
BtnModifiers
(
event
)
!=
0
))
return
(
False
);
if
((
event
->
type
==
ButtonPress
&&
...
...
@@ -1584,13 +1596,15 @@ TargetToSelection(TScreen *screen, String name)
if
(
isSELECT
(
name
))
{
result
=
DefaultSelection
(
screen
);
}
else
if
(
!
strcmp
(
name
,
"PRIMARY"
))
{
result
=
0
;
}
else
if
(
!
strcmp
(
name
,
"CLIPBOARD"
))
{
result
=
1
;
}
else
if
(
!
strcmp
(
name
,
PRIMARY_NAME
))
{
result
=
PRIMARY_CODE
;
}
else
if
(
!
strcmp
(
name
,
CLIPBOARD_NAME
))
{
result
=
CLIPBOARD_CODE
;
}
else
if
(
!
strcmp
(
name
,
SECONDARY_NAME
))
{
result
=
SECONDARY_CODE
;
}
else
if
(
sscanf
(
name
,
"CUT_BUFFER%d"
,
&
cutb
)
==
1
)
{
if
(
cutb
>=
0
&&
cutb
<
=
7
)
{
result
=
cutb
+
2
;
if
(
cutb
>=
0
&&
cutb
<
MAX_CUT_BUFFER
)
{
result
=
CutBufferToCode
(
cutb
)
;
}
else
{
xtermWarning
(
"unexpected cut-buffer code: %d
\n
"
,
cutb
);
}
...
...
@@ -1641,8 +1655,8 @@ MapSelections(XtermWidget xw, String *params, Cardinal num_params)
if
(
map
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
const
char
*
mapTo
=
(
screen
->
selectToClipboard
?
"
CLIPBOARD
"
:
"
PRIMARY
"
);
?
CLIPBOARD
_NAME
:
PRIMARY
_NAME
);
UnmapSelections
(
xw
);
if
((
result
=
TypeMallocN
(
String
,
num_params
+
1
))
!=
0
)
{
...
...
@@ -1670,7 +1684,7 @@ MapSelections(XtermWidget xw, String *params, Cardinal num_params)
/*
* Lookup the cut-buffer number, which will be in the range 0-7.
* If it is not a cut-buffer, it is
the primary selection (-1)
.
* If it is not a cut-buffer, it is
a type of selection, e.g., primary
.
*/
static
int
CutBuffer
(
Atom
code
)
...
...
@@ -3997,7 +4011,7 @@ void
ClearSelectionBuffer
(
TScreen
*
screen
,
String
selection
)
{
int
which
=
TargetToSelection
(
screen
,
selection
);
SelectedCells
*
scp
=
&
(
screen
->
selected_cells
[
which
>=
0
?
which
:
0
]);
SelectedCells
*
scp
=
&
(
screen
->
selected_cells
[
okSelectionCode
(
which
)
]);
if
(
scp
->
data_buffer
)
{
free
(
scp
->
data_buffer
);
scp
->
data_buffer
=
0
;
...
...
@@ -4037,7 +4051,7 @@ void
AppendToSelectionBuffer
(
TScreen
*
screen
,
unsigned
c
,
String
selection
)
{
int
which
=
TargetToSelection
(
screen
,
selection
);
SelectedCells
*
scp
=
&
(
screen
->
selected_cells
[
which
>=
0
?
which
:
0
]);
SelectedCells
*
scp
=
&
(
screen
->
selected_cells
[
okSelectionCode
(
which
)
]);
unsigned
six
;
Char
ch
;
...
...
@@ -4208,10 +4222,8 @@ SaveConvertedLength(XtPointer *target, unsigned long source)
return
result
;
}
#define CLIPBOARD_ATOM XInternAtom(screen->display, "CLIPBOARD", False)
#define keepClipboard(atom) ((screen->keepClipboard) && \
(atom == CLIPBOARD_ATOM))
#define keepClipboard(d,atom) ((screen->keepClipboard) && \
(atom == XA_CLIPBOARD(d)))
static
Boolean
ConvertSelection
(
Widget
w
,
...
...
@@ -4241,12 +4253,12 @@ ConvertSelection(Widget w,
TraceAtomName
(
screen
->
display
,
*
selection
),
visibleSelectionTarget
(
dpy
,
*
target
)));
if
(
keepClipboard
(
*
selection
))
{
if
(
keepClipboard
(
dpy
,
*
selection
))
{
TRACE
((
"asked for clipboard
\n
"
));
scp
=
&
(
screen
->
clipboard_data
);
}
else
{
TRACE
((
"asked for selection
\n
"
));
scp
=
&
(
screen
->
selected_cells
[
*
selection
==
CLIPBOARD_ATOM
]);
scp
=
&
(
screen
->
selected_cells
[
AtomToSelection
(
dpy
,
*
selection
)
]);
}
data
=
scp
->
data_buffer
;
...
...
@@ -4448,6 +4460,7 @@ _OwnSelection(XtermWidget xw,
Cardinal
count
)
{
TScreen
*
screen
=
TScreenOf
(
xw
);
Display
*
dpy
=
screen
->
display
;
Atom
*
atoms
=
screen
->
selection_atoms
;
Cardinal
i
;
Bool
have_selection
=
False
;
...
...
@@ -4465,13 +4478,13 @@ _OwnSelection(XtermWidget xw,
screen
->
selection_atoms
=
atoms
;
screen
->
sel_atoms_size
=
count
;
}
XmuInternStrings
(
XtDisplay
((
Widget
)
xw
)
,
selections
,
count
,
atoms
);
XmuInternStrings
(
dpy
,
selections
,
count
,
atoms
);
for
(
i
=
0
;
i
<
count
;
i
++
)
{
int
cutbuffer
=
CutBuffer
(
atoms
[
i
]);
if
(
cutbuffer
>=
0
)
{
unsigned
long
limit
=
(
unsigned
long
)
(
4
*
XMaxRequestSize
(
XtDisplay
((
Widget
)
xw
)
)
-
32
);
scp
=
&
(
screen
->
selected_cells
[
cutbuffer
+
2
]);
(
unsigned
long
)
(
4
*
XMaxRequestSize
(
dpy
)
-
32
);
scp
=
&
(
screen
->
selected_cells
[
CutBufferToCode
(
cutbuffer
)
]);
if
(
scp
->
data_length
>
limit
)
{
TRACE
((
"selection too big (%lu bytes), not storing in CUT_BUFFER%d
\n
"
,
scp
->
data_length
,
cutbuffer
));
...
...
@@ -4489,18 +4502,18 @@ _OwnSelection(XtermWidget xw,
data
=
UTF8toLatin1
(
screen
,
data
,
length
,
&
length
);
});
TRACE
((
"XStoreBuffer(%d)
\n
"
,
cutbuffer
));
XStoreBuffer
(
XtDisplay
((
Widget
)
xw
)
,
XStoreBuffer
(
dpy
,
(
char
*
)
data
,
(
int
)
length
,
cutbuffer
);
}
}
else
{
int
which
=
(
atoms
[
i
]
==
CLIPBOARD_ATOM
)
?
1
:
0
;
if
(
keepClipboard
(
atoms
[
i
]))
{
int
which
=
AtomToSelection
(
dpy
,
atoms
[
i
])
;
if
(
keepClipboard
(
dpy
,
atoms
[
i
]))
{
Char
*
buf
;
SelectedCells
*
tcp
=
&
(
screen
->
clipboard_data
);
TRACE
((
"saving selection to clipboard buffer
\n
"
));
scp
=
&
(
screen
->
selected_cells
[
1
]);
scp
=
&
(
screen
->
selected_cells
[
CLIPBOARD_CODE
]);
if
((
buf
=
(
Char
*
)
malloc
((
size_t
)
scp
->
data_length
))
==
0
)
SysError
(
ERROR_BMALLOC2
);
...
...
@@ -4823,7 +4836,10 @@ EditorButton(XtermWidget xw, XButtonEvent *event)
button
++
;
/* Ignore buttons that cannot be encoded */
if
(
screen
->
extend_coords
==
SET_SGR_EXT_MODE_MOUSE
if
(
screen
->
send_mouse_pos
==
X10_MOUSE
)
{
if
(
button
>
3
)
return
;
}
else
if
(
screen
->
extend_coords
==
SET_SGR_EXT_MODE_MOUSE
||
screen
->
extend_coords
==
SET_URXVT_EXT_MODE_MOUSE
)
{
if
(
button
>
15
)
{
return
;
...
...
@@ -4895,13 +4911,21 @@ EditorButton(XtermWidget xw, XButtonEvent *event)
break
;
case
ButtonRelease
:
/*
* Wheel mouse interface generates release-events for buttons
* 4 and 5, coded here as 3 and 4 respectively. We change the
* release for buttons 1..3 to a -1, which will be later mapped
* into a "0" (some button was released).
* The (vertical) wheel mouse interface generates release-events
* for buttons 4 and 5, coded here as 3 and 4 respectively.
*
* The X10/X11 xterm protocol maps the release for buttons 1..3 to
* a -1, which will * be later mapped into a "0" (some button was
* released),
*
* The SGR (extended) xterm mouse protocol keeps the button number
* and uses a "m" to indicate button release.
*
* The behavior for mice with more buttons is unclear, and may be
* revised -TD
*/
screen
->
mouse_button
&=
~
ButtonBit
(
button
);
if
(
button
<
3
)
{
if
(
button
<
3
||
button
>=
8
)
{
switch
(
screen
->
extend_coords
)
{
case
SET_SGR_EXT_MODE_MOUSE
:
final
=
'm'
;
...
...
@@ -5104,7 +5128,7 @@ getDataFromScreen(XtermWidget xw, XEvent *event, String method, CELL *start, CEL
#if OPT_SELECT_REGEX
char
*
saveExpr
=
screen
->
selectExpr
[
noClick
];
#endif
SelectedCells
*
scp
=
&
(
screen
->
selected_cells
[
0
]);
SelectedCells
*
scp
=
&
(
screen
->
selected_cells
[
PRIMARY_CODE
]);
SelectedCells
save_selection
=
*
scp
;
char
*
result
=
0
;
...
...
@@ -5137,7 +5161,7 @@ getDataFromScreen(XtermWidget xw, XEvent *event, String method, CELL *start, CEL
ComputeSelect
(
xw
,
start
,
finish
,
False
);
SaltTextAway
(
xw
,
TargetToSelection
(
screen
,
"
PRIMARY
"
),
TargetToSelection
(
screen
,
PRIMARY
_NAME
),
&
(
screen
->
startSel
),
&
(
screen
->
endSel
));
if
(
scp
->
data_limit
&&
scp
->
data_buffer
)
{
...
...
cachedGCs.c
View file @
4c5fb88e
/* $XTermId: cachedGCs.c,v 1.7
5
201
8
/0
7/15 18:21:1
7 tom Exp $ */
/* $XTermId: cachedGCs.c,v 1.7
6
201
9
/0
4/26 21:57:0
7 tom Exp $ */
/*
* Copyright 2007-201
7
,201
8
by Thomas E. Dickey
* Copyright 2007-201
8
,201
9
by Thomas E. Dickey
*
* All Rights Reserved
*
...
...
@@ -464,6 +464,9 @@ setCgsFore(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, Pixel fg)
if
((
me
=
myCache
(
xw
,
cgsWin
,
cgsId
))
!=
0
)
{
NEXT
(
fg
)
=
fg
;
me
->
mask
|=
GCForeground
;
TRACE2
((
"setCgsFore(%s) %s
\n
"
,
traceCgsEnum
(
cgsId
),
tracePixel
(
xw
,
NEXT
(
fg
))));
}
}
...
...
@@ -475,6 +478,9 @@ setCgsBack(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, Pixel bg)
if
((
me
=
myCache
(
xw
,
cgsWin
,
cgsId
))
!=
0
)
{
NEXT
(
bg
)
=
bg
;
me
->
mask
|=
GCBackground
;
TRACE2
((
"setCgsBack(%s) %s
\n
"
,
traceCgsEnum
(
cgsId
),
tracePixel
(
xw
,
NEXT
(
bg
))));
}
}
...
...
charproc.c
View file @
4c5fb88e
This diff is collapsed.
Click to expand it.
config.guess
View file @
4c5fb88e
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-201
8
Free Software Foundation, Inc.
# Copyright 1992-201
9
Free Software Foundation, Inc.
timestamp
=
'201
8-11-28
'
timestamp
=
'201
9-06-10
'
# 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
...
...
@@ -50,7 +50,7 @@ version="\
GNU config.guess (
$timestamp
)
Originally written by Per Bothner.
Copyright 1992-201
8
Free Software Foundation, Inc.
Copyright 1992-201
9
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
...
...
@@ -96,8 +96,7 @@ fi
tmp
=
# shellcheck disable=SC2172
trap
'test -z "$tmp" || rm -fr "$tmp"'
1 2 13 15
trap
'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode'
0
trap
'test -z "$tmp" || rm -fr "$tmp"'
0 1 2 13 15
set_cc_for_build
()
{
:
"
${
TMPDIR
=/tmp
}
"
...
...
@@ -263,6 +262,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*
:SolidBSD:
*
:
*
)
echo
"
$UNAME_MACHINE
"
-unknown-solidbsd
"
$UNAME_RELEASE
"
exit
;;
*
:OS108:
*
:
*
)
echo
"
$UNAME_MACHINE
"
-unknown-os108_
"
$UNAME_RELEASE
"
exit
;;
macppc:MirBSD:
*
:
*
)
echo
powerpc-unknown-mirbsd
"
$UNAME_RELEASE
"
exit
;;
...
...
@@ -392,15 +394,20 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo
i386-pc-auroraux
"
$UNAME_RELEASE
"
exit
;;
i86pc:SunOS:5.
*
:
*
|
i86xen:SunOS:5.
*
:
*
)
UNAME_REL
=
"
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
"
case
`
isainfo
-b
`
in
32
)
echo
i386-pc-solaris2
"
$UNAME_REL
"
;;
64
)
echo
x86_64-pc-solaris2
"
$UNAME_REL
"
;;
esac
set_cc_for_build
SUN_ARCH
=
i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if
[
"
$CC_FOR_BUILD
"
!=
no_compiler_found
]
;
then
if
(
echo
'#ifdef __amd64'
;
echo
IS_64BIT_ARCH
;
echo
'#endif'
)
|
\
(
CCOPTS
=
""
$CC_FOR_BUILD
-E
- 2>/dev/null
)
|
\
grep
IS_64BIT_ARCH
>
/dev/null
then
SUN_ARCH
=
x86_64
fi
fi
echo
"
$SUN_ARCH
"
-pc-solaris2
"
`
echo
"
$UNAME_RELEASE
"
|sed
-e
's/[^.]*//'
`
"
exit
;;
sun4
*
:SunOS:6
*
:
*
)
# According to config.sub, this is the proper way to canonicalize
...
...
@@ -981,22 +988,50 @@ EOF
exit
;;
mips:Linux:
*
:
*
|
mips64:Linux:
*
:
*
)
set_cc_for_build
IS_GLIBC
=
0
test
x
"
${
LIBC
}
"
=
xgnu
&&
IS_GLIBC
=
1
sed
's/^ //'
<<
EOF
> "
$dummy
.c"
#undef CPU
#undef
${
UNAME_MACHINE
}
#undef
${
UNAME_MACHINE
}
el
#undef mips
#undef mipsel
#undef mips64
#undef mips64el
#if
${
IS_GLIBC
}
&& defined(_ABI64)
LIBCABI=gnuabi64
#else
#if
${
IS_GLIBC
}
&& defined(_ABIN32)
LIBCABI=gnuabin32
#else
LIBCABI=
${
LIBC
}
#endif
#endif
#if
${
IS_GLIBC
}
&& defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa64r6
#else
#if
${
IS_GLIBC
}
&& !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa32r6
#else
#if defined(__mips64)
CPU=mips64
#else
CPU=mips
#endif
#endif
#endif
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=
${
UNAME_MACHINE
}
el
MIPS_ENDIAN=
el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=
${
UNAME_MACHINE
}
MIPS_ENDIAN=
#else
CPU
=
MIPS_ENDIAN
=
#endif
#endif
EOF
eval
"
`
$CC_FOR_BUILD
-E
"
$dummy
.c"
2>/dev/null |
grep
'^CPU'
`
"
test
"x
$CPU
"
!=
x
&&
{
echo
"
$CPU
-unknown-linux-
$LIBC
"
;
exit
;
}
eval
"
`
$CC_FOR_BUILD
-E
"
$dummy
.c"
2>/dev/null |
grep
'^CPU
\|^MIPS_ENDIAN\|^LIBCABI
'
`
"
test
"x
$CPU
"
!=
x
&&
{
echo
"
$CPU
${
MIPS_ENDIAN
}
-unknown-linux-
$LIBC
ABI
"
;
exit
;
}
;;
mips64el:Linux:
*
:
*
)
echo
"
$UNAME_MACHINE
"
-unknown-linux-
"
$LIBC
"
...
...
@@ -1109,7 +1144,7 @@ EOF
*
Pentium
)
UNAME_MACHINE
=
i586
;;
*
Pent
*
|
*
Celeron
)
UNAME_MACHINE
=
i686
;;
esac
echo
"
$UNAME_MACHINE
-unknown-sysv
${
UNAME_RELEASE
}${
UNAME_SYSTEM
}
{
$UNAME_VERSION
}"
echo
"
$UNAME_MACHINE
-unknown-sysv
${
UNAME_RELEASE
}${
UNAME_SYSTEM
}$
{
UNAME_VERSION
}
"
exit
;;
i
*
86:
*
:3.2:
*
)
if
test
-f
/usr/options/cb.name
;
then
...
...
@@ -1293,12 +1328,19 @@ EOF
echo
"
$UNAME_MACHINE
"
-apple-rhapsody
"
$UNAME_RELEASE
"
exit
;;
*
:Darwin:
*
:
*
)
UNAME_PROCESSOR
=
`
uname
-p
`
||
UNAME_PROCESSOR
=
unknown
UNAME_PROCESSOR
=
`
uname
-p
`
case
$UNAME_PROCESSOR
in
unknown
)
UNAME_PROCESSOR
=
powerpc
;;
esac
if
command
-v
xcode-select
>
/dev/null 2> /dev/null
&&
\
!
xcode-select
--print-path
>
/dev/null 2> /dev/null
;
then
# Avoid executing cc if there is no toolchain installed as
# cc will be a stub that puts up a graphical alert
# prompting the user to install developer tools.
CC_FOR_BUILD
=
no_compiler_found
else
set_cc_for_build
if
test
"
$UNAME_PROCESSOR
"
=
unknown
;
then
UNAME_PROCESSOR
=
powerpc
fi
if
test
"
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/\..*//'
`
"
-le
10
;
then
if
[
"
$CC_FOR_BUILD
"
!=
no_compiler_found
]
;
then
if
(
echo
'#ifdef __LP64__'
;
echo
IS_64BIT_ARCH
;
echo
'#endif'
)
|
\
(
CCOPTS
=
""
$CC_FOR_BUILD
-E
- 2>/dev/null
)
|
\
...
...
@@ -1316,15 +1358,9 @@ EOF
then
UNAME_PROCESSOR
=
powerpc
fi
fi
elif
test
"
$UNAME_PROCESSOR
"
=
i386
;
then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR
=
x86_64
# uname -m returns i386 or x86_64
UNAME_PROCESSOR
=
$UNAME_MACHINE
fi
echo
"
$UNAME_PROCESSOR
"
-apple-darwin
"
$UNAME_RELEASE
"
exit
;;
...
...
@@ -1429,6 +1465,143 @@ EOF
exit
;;
esac
# No uname command or uname output not recognized.
set_cc_for_build
cat
>
"
$dummy
.c"
<<
EOF
#ifdef _SEQUENT_
#include <sys/types.h>
#include <sys/utsname.h>
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#include <signal.h>
#if defined(_SIZE_T_) || defined(SIGLOST)
#include <sys/utsname.h>
#endif
#endif
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd
\n
"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s
\n
",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach
\(
[0-9]*
\)
.*/
\1
/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d
\n
", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d
\n
", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv
\n
"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach
\n
"); exit (0);
#else
printf ("ns32k-encore-bsd
\n
"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd
\n
"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix
\n
"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix
\n
"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2
\n
"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1
\n
"); exit (0);
}
printf ("i386-sequent-ptx
\n
"); exit (0);
#endif
#if defined (vax)
#if !defined (ultrix)
#include <sys/param.h>
#if defined (BSD)
#if BSD == 43
printf ("vax-dec-bsd4.3
\n
"); exit (0);
#else
#if BSD == 199006
printf ("vax-dec-bsd4.3reno
\n
"); exit (0);
#else
printf ("vax-dec-bsd
\n
"); exit (0);
#endif
#endif
#else
printf ("vax-dec-bsd
\n
"); exit (0);
#endif
#else
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname un;
uname (&un);
printf ("vax-dec-ultrix%s
\n
", un.release); exit (0);
#else
printf ("vax-dec-ultrix
\n
"); exit (0);
#endif
#endif
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname *un;
uname (&un);
printf ("mips-dec-ultrix%s
\n
", un.release); exit (0);
#else
printf ("mips-dec-ultrix
\n
"); exit (0);
#endif
#endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd
\n
"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD
-o
"
$dummy
"
"
$dummy
.c"
2>/dev/null
&&
SYSTEM_NAME
=
`
$dummy
`
&&
{
echo
"
$SYSTEM_NAME
"
;
exit
;
}
# Apollos put the system type in the environment.
test
-d
/usr/apollo
&&
{
echo
"
$ISP
-apollo-
$SYSTYPE
"
;
exit
;
}
echo
"
$0
: unable to guess system type"
>
&2
case
"
$UNAME_MACHINE
:
$UNAME_SYSTEM
"
in
...
...
config.sub
View file @
4c5fb88e
#! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-201
8
Free Software Foundation, Inc.
# Copyright 1992-201
9
Free Software Foundation, Inc.
timestamp
=
'201
8-11
-2
8
'
timestamp
=
'201
9-05
-2
3
'
# 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
...
...
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version
=
"
\
GNU config.sub (
$timestamp
)
Copyright 1992-201
8
Free Software Foundation, Inc.
Copyright 1992-201
9
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
...
...
@@ -111,7 +111,8 @@ case $# in
esac
# Split fields of configuration type
IFS
=
"-"
read
-r
field1 field2 field3 field4
<<
EOF
# shellcheck disable=SC2162
IFS
=
"-"
read
field1 field2 field3 field4
<<
EOF
$1
EOF
...
...
@@ -821,6 +822,8 @@ case $basic_machine in
cpu
=
m68k
vendor
=
next
case
$os
in
openstep
*
)
;;
nextstep
*
)
;;
ns2
*
)
...
...
@@ -918,7 +921,8 @@ case $basic_machine in
;;
*
-
*
)
IFS
=
"-"
read
-r
cpu vendor
<<
EOF
# shellcheck disable=SC2162
IFS
=
"-"
read
cpu vendor
<<
EOF
$basic_machine
EOF
;;
...
...
@@ -1168,7 +1172,7 @@ case $cpu-$vendor in
|
asmjs
\
|
ba
\
|
be32
|
be64
\
|
bfin
|
bs2000
\
|
bfin
|
bpf
|
bs2000
\
|
c[123]
*
|
c30
|
[
cjt]90
|
c4x
\
|
c8051
|
clipper
|
craynv
|
csky
|
cydra
\
|
d10v
|
d30v
|
dlx
|
dsp16xx
\
...
...
@@ -1183,13 +1187,13 @@ case $cpu-$vendor in
|
le32
|
le64
\
|
lm32
\
|
m32c
|
m32r
|
m32rle
\
|
m5200
|
m68000
|
m680[012346]0
|
m68360
|
m683?2
|
m68k
|
v70
|
w65
\
|
m6811
|
m68hc11
|
m6812
|
m68hc12
|
m68hcs12x
|
nvptx
|
picochip
\
|
m5200
|
m68000
|
m680[012346]0
|
m68360
|
m683?2
|
m68k
\
|
m6811
|
m68hc11
|
m6812
|
m68hc12
|
m68hcs12x
\
|
m88110
|
m88k
|
maxq
|
mb
|
mcore
|
mep
|
metag
\
|
microblaze
|
microblazeel
\
|
mips
|
mipsbe
|
mipseb
|
mipsel
|
mipsle
\
|
mips16
\
|
mips64
|
mips64el
\
|
mips64
|
mips64eb
|
mips64el
\
|
mips64octeon
|
mips64octeonel
\
|
mips64orion
|
mips64orionel
\
|
mips64r5900
|
mips64r5900el
\
...
...
@@ -1216,11 +1220,12 @@ case $cpu-$vendor in
|
nds32
|
nds32le
|
nds32be
\
|
nfp
\
|
nios
|
nios2
|
nios2eb
|
nios2el
\
|
none
|
np1
|
ns16k
|
ns32k
\
|
none
|
np1
|
ns16k
|
ns32k
|
nvptx
\
|
open8
\
|
or1k
*
\
|
or32
\
|
orion
\
|
picochip
\
|
pdp10
|
pdp11
|
pj
|
pjl
|
pn
|
power
\
|
powerpc
|
powerpc64
|
powerpc64le
|
powerpcle
|
powerpcspe
\
|
pru
\
...
...
@@ -1228,7 +1233,8 @@ case $cpu-$vendor in
|
riscv
|
riscv32
|
riscv64
\
|
rl78
|
romp
|
rs6000
|
rx
\
|
score
\
|
sh
|
sh[1234]
|
sh[24]a
|
sh[24]ae[lb]
|
sh[23]e
|
she[lb]
|
sh[lb]e
\
|
sh
|
shl
\
|
sh[1234]
|
sh[24]a
|
sh[24]ae[lb]
|
sh[23]e
|
she[lb]
|
sh[lb]e
\
|
sh[1234]e[lb]
|
sh[12345][lb]e
|
sh[23]ele
|
sh64
|
sh64le
\
|
sparc
|
sparc64
|
sparc64b
|
sparc64v
|
sparc86x
|
sparclet
\
|
sparclite
\
...
...
@@ -1238,10 +1244,11 @@ case $cpu-$vendor in
|
tic30
|
tic4x
|
tic54x
|
tic55x
|
tic6x
|
tic80
\
|
tron
\
|
ubicom32
\
|
v850
|
v850e
|
v850e1
|
v850es
|
v850e2
|
v850e2v3
\
|
v70
|
v850
|
v850e
|
v850e1
|
v850es
|
v850e2
|
v850e2v3
\
|
vax
\
|
visium
\
|
wasm32
\
|
w65
\
|
wasm32
|
wasm64
\
|
we32k
\
|
x86
|
x86_64
|
xc16x
|
xgate
|
xps100
\
|
xstormy16
|
xtensa
*
\
...
...
@@ -1361,7 +1368,7 @@ case $os in
|
powermax
*
|
dnix
*
|
nx6
|
nx7
|
sei
*
|
dragonfly
*
\
|
skyos
*
|
haiku
*
|
rdos
*
|
toppers
*
|
drops
*
|
es
*
\
|
onefs
*
|
tirtos
*
|
phoenix
*
|
fuchsia
*
|
redox
*
|
bme
*
\
|
midnightbsd
*
|
amdhsa
*
|
unleashed
*
)
|
midnightbsd
*
|
amdhsa
*
|
unleashed
*
|
emscripten
*
|
wasi
*
)
# Remember, each alternative MUST END IN *, to match a version number.
;;
qnx
*
)
...
...
configure
View file @
4c5fb88e
This diff is collapsed.
Click to expand it.
ctlseqs.ms
View file @
4c5fb88e
.\"#! troff -ms $1 -*- Nroff -*-
.\" "Xterm Control Sequences" document
.\" $XTermId: ctlseqs.ms,v 1.
491
2019/0
2/13 02:13:36
tom Exp $
.\" $XTermId: ctlseqs.ms,v 1.
505
2019/0
6/26 08:31:15
tom Exp $
.\"
.\"
.\" Copyright 1996-2018,2019 by Thomas E. Dickey
...
...
@@ -69,8 +69,8 @@
.\"
.ds XT XTerm
.ds xt xterm
.ds LF Patch #34
4
.ds RF 2019/0
2/12
.ds LF Patch #34
7
.ds RF 2019/0
6/26
.\"
.if n .pl 9999v \" no page breaks in nroff
.ND
...
...
@@ -611,10 +611,18 @@ equivalent to 8-bit C1 controls, ordered by the final character(s).
.St
.IP \\*(Es\\*(Sp\\*F
7-bit controls (S7C1T), VT220.
This tells the terminal to send C1 control characters as 7-bit sequences,
e.g., its responses to queries.
DEC VT200 and up always accept 8-bit control sequences except when
configured for VT100 mode.
.
.iP
.IP \\*(Es\\*(Sp\\*G
8-bit controls (S8C1T), VT220.
This tells the terminal to send C1 control characters as 8-bit sequences,
e.g., its responses to queries.
DEC VT200 and up always accept 8-bit control sequences except when
configured for VT100 mode.
.
.iP
.IP \\*(Es\\*(Sp\\*L
...
...
@@ -887,7 +895,7 @@ by changing the first \*(``u\*('' to a \*(``t\*(''
.
.iP
.IP \\*(Dc\\*+\\*p\\*(Pt\\*s\\*(ST
Set Termcap/Terminfo Data (\fI\*(xt\fP
, experimental
).
Set Termcap/Terminfo Data (\fI\*(xt\fP).
The string following the \*(``p\*('' is a name to use for retrieving data from
the terminal database.
The data will be used for the \*(``tcap\*('' keyboard
...
...
@@ -1109,9 +1117,8 @@ Cursor Backward Tabulation \*(Ps tab stops (default = 1) (CBT).
.IP \\*(Cs\\*(Ps\\*s\\*^
Scroll down \*(Ps lines (default = 1) (SD), ECMA-48.
.br
This is probably an error in ECMA-48, because the standard writes
codes as pairs of decimal values,
and this is \*(``14\*('' versus the VT420 \*(``4\*(''.
This was a publication error in the original ECMA-48 5th edition (1991)
corrected in 2003.
.
.iP
.IP \\*(Cs\\*(Pm\\*s\\*`
...
...
@@ -1711,15 +1718,23 @@ Soft terminal reset (DECSTR), VT220 and up.
.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*(c"\\*p
Set conformance level (DECSCL), VT220 and up.
.iP
Valid values for the first parameter:
\*(Ps = \*6\*1 \(-> VT100.
\*(Ps = \*6\*2 \(-> VT200.
\*(Ps = \*6\*3 \(-> VT300.
.iP
Valid values for the second parameter:
The first parameter selects the conformance level.
Valid values are:
\*(Ps = \*6\*1 \(-> level 1, e.g., VT100.
\*(Ps = \*6\*2 \(-> level 2, e.g., VT200.
\*(Ps = \*6\*3 \(-> level 3, e.g., VT300.
\*(Ps = \*6\*4 \(-> level 4, e.g., VT400.
\*(Ps = \*6\*5 \(-> level 5, e.g., VT500.
.iP
The second parameter selects the C1 control transmission mode.
This is an optional parameter, ignored in conformance level 1.
Valid values are:
\*(Ps = \*0 \(-> 8-bit controls.
\*(Ps = \*1 \(-> 7-bit controls (
always set for VT100
).
\*(Ps = \*1 \(-> 7-bit controls (
DEC factory default
).
\*(Ps = \*2 \(-> 8-bit controls.
.iP
The 7-bit and 8-bit control modes can also be set by S7C1T and S8C1T,
but DECSCL is preferred.
.
.iP
.IP \\*(Cs\\*(Ps\\*s\\*$\\*p
...
...
@@ -1752,6 +1767,13 @@ Two private modes are read-only (i.e., \*1\*3 and \*1\*4),
provided only for reporting their values using this control sequence.
They correspond to the resources \fBcursorBlink\fP and \fBcursorBlinkXOR\fP.
.
.IP \\*(Cs\\*#\\*p
.br
.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*#\\*p
Push video attributes onto stack (XTPUSHSGR), \fI\*(xt\fP.
This is an alias for \*(Cs\*#\*{,
used to work around language limitations of C#.
.
.iP
.IP \\*(Cs\\*(Ps\\*s\\*q
Load LEDs (DECLL), VT100.
...
...
@@ -1783,6 +1805,12 @@ Valid values for the parameter:
\*(Ps = \*2 \(-> DECSED and DECSEL can erase.
.
.iP
.IP \\*(Cs\\*#\\*q
Pop video attributes from stack (XTPOPSGR), \fI\*(xt\fP.
This is an alias for \*(Cs\*#\*},
used to work around language limitations of C#.
.
.iP
.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*r
Set Scrolling Region [top;bottom] (default = full size of window)
(DECSTBM), VT100.
...
...
@@ -1856,6 +1884,10 @@ If the \fI\*(xt\fP window is non-iconified, it returns \*(Cs\*1\*t.
If the \fI\*(xt\fP window is iconified, it returns \*(Cs\*2\*t.
\*(Ps = \*1\*3 \(-> Report \fI\*(xt\fP window position.
.br
Note: X Toolkit positions can be negative,
but the reported values are unsigned, in the range 0-65535.
Negative values correspond to 32768-65535.
.br
Result is
\*(Cs\*3\*;\*(Ix\*s\*;\*(Iy\*s\*t
\*(Ps = \*1\*3\*;\*s\*2 \(-> Report \fI\*(xt\fP text-area position.
...
...
@@ -2237,7 +2269,9 @@ using \*1\*0 through \*1\*9 are
denoted \fIdynamic colors\fR, since the corresponding control sequences
were the first means for setting \fI\*(xt\fR's colors dynamically,
i.e., after it was started.
They are not the same as the ANSI colors.
They are not the same as the ANSI colors
(however, the dynamic text foreground and background colors
are used when ANSI colors are reset using SGR \*3\*9 and \*4\*9, respectively).
These controls may be disabled using the \fIallowColorOps\fP resource.
At least one parameter is expected for \*(Pt.
Each successive parameter changes the next color in the list.
...
...
@@ -2291,10 +2325,11 @@ The parameter \*(Pt is parsed as
\*(Pc\*s\*;\*(Pd
.br
The first, \*(Pc, may contain zero or more characters from the
set \*c, \*p, \*(cs, \*0, \*1, \*2, \*3, \*4, \*5, \*6, and \*7.
set \*c, \*p,
\*q,
\*(cs, \*0, \*1, \*2, \*3, \*4, \*5, \*6, and \*7.
It is used to construct a list of selection parameters for
clipboard,
primary,
secondary,
select,
or cut buffers 0 through 7 respectively,
in the order given.
...
...
@@ -2948,9 +2983,9 @@ It is enabled by specifying parameter 9 to DECSET.
On button press, \fI\*(xt\fP sends
\*(Cs\*M\*(Cb\*(Cx\*(Cy (6 characters).
.bP
\*(Cb is button\
-1
.
\*(Cb is
\fI
button\
fP\-1, where \fIbutton\fP is 1, 2 or 3
.
.bP
\*(Cx and \*(Cy are the
x and y
coordinates of the mouse when the
\*(Cx and \*(Cy are the
\fIx\fP and \fIy\fP
coordinates of the mouse when the
button was pressed.
.Ss Normal tracking mode
.LP
...
...
@@ -3020,8 +3055,8 @@ hang \fI\*(xt.\fP
On button press, the same information as for normal tracking is
generated; \fI\*(xt\fP then waits for the program to send mouse
tracking information.
\fIAll X events are ignored until the proper escape sequence is
received from the pty:\fP
\fIAll X events are ignored until the proper escape sequence is
\fP
\fI
received from the pty:\fP
\*(Cs\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*T.
The parameters are \fIfunc, startx, starty, firstrow,\fP and \fIlastrow.\fP
.bP
...
...
@@ -3565,7 +3600,7 @@ Digital Equipment Corporation
\fILevel 2 Programming Reference Manual\fP
.br
Digital Equipment Corporation
(EK-PPLV2-PM
.
B01, August 1994).
(EK-PPLV2-PM B01, August 1994).
.bP
\fI4014 and 4014-1 Computer Display Terminal\fP
.br
...
...
@@ -3579,6 +3614,27 @@ The DEC terminal family (VT100 through VT525) is upward-compatible,
using standards plus \fIextensions\fP, e.g., \*(``private modes\*(''.
Not all commonly-used features are standard.
For example, scrolling regions are not found in ECMA-48.
.LP
Again, it is possible to find discrepancies in the standards:
.bP
The printed ECMA-48 5th edition (1991)
and the first PDF produced for that edition (April 1998)
state that \fBSD\fP (scroll down) ends with 05/14, i.e., \*^,
which disagrees with DEC's VT420 hardware implementation and
DEC's manuals which use 05/04 \*T.
(A few other terminals such as AT&T 5620 and IBM 5151 also used 05/04,
but the documentation and dates are lacking).
.IP
ECMA created a new PDF in April 2003 which changed that detail to use \*T,
and later in 2008 provided PDFs of the earlier editions which used \*T.
.bP
The VT320, VT420, VT520 manuals claim that \fBDECSCL\fP does a
hard reset (\fBRIS\fP).
.IP
Both the VT220 manual and DEC STD 070 (which documents
levels 1-4 in detail) state that it is a soft reset, e.g., \fBDECSTR\fP.
.LP
Here are the relevant standards:
.bP
\fIECMA-35: Character Code Structure and Extension Techniques\fP
.br
...
...
ctlseqs.txt
View file @
4c5fb88e
...
...
@@ -21,7 +21,7 @@
Thomas Dickey
XFree86 Project (1996-2006)
invisible-island.net (2006-2019)
updated for XTerm Patch #34
4
(2019/0
2/10
)
updated for XTerm Patch #34
7
(2019/0
6/26
)
...
...
@@ -32,7 +32,7 @@ c The literal character c.
C A single (required) character.
Ps A single (usually optional) numeric parameter, composed of one o
f
Ps A single (usually optional) numeric parameter, composed of one o
r
more digits.
Pm A multiple numeric parameter composed of any number of single
...
...
@@ -240,9 +240,15 @@ Controls beginning with ESC
This excludes controls where ESC is part of a 7-bit equivalent to 8-bit
C1 controls, ordered by the final character(s).
ESC SP F 7-bit controls (S7C1T), VT220.
ESC SP F 7-bit controls (S7C1T), VT220. This tells the terminal to
send C1 control characters as 7-bit sequences, e.g., its
responses to queries. DEC VT200 and up always accept 8-bit
control sequences except when configured for VT100 mode.
ESC SP G 8-bit controls (S8C1T), VT220.
ESC SP G 8-bit controls (S8C1T), VT220. This tells the terminal to
send C1 control characters as 8-bit sequences, e.g., its
responses to queries. DEC VT200 and up always accept 8-bit
control sequences except when configured for VT100 mode.
ESC SP L Set ANSI conformance level 1 (dpANS X3.134.1).
...
...
@@ -422,11 +428,11 @@ DCS Ps $ t Pt ST
Ps = 2 -> DECTABSR
DCS + p Pt ST
Set Termcap/Terminfo Data (xterm
, experimental
). The string
following the
"p" is a name to use for retrieving data from
the terminal
database. The data will be used for the "tcap"
keyboard con
figuration's function- and special-keys, as well
as by the
Request Termcap/Terminfo String control.
Set Termcap/Terminfo Data (xterm). The string
following the
"p" is a name to use for retrieving data from
the terminal
database. The data will be used for the "tcap"
keyboard con-
figuration's function- and special-keys, as well
as by the
Request Termcap/Terminfo String control.
DCS + q Pt ST
Request Termcap/Terminfo String (xterm). The string following
...
...
@@ -579,9 +585,8 @@ CSI Ps X Erase Ps Character(s) (default = 1) (ECH).
CSI Ps Z Cursor Backward Tabulation Ps tab stops (default = 1) (CBT).
CSI Ps ^ Scroll down Ps lines (default = 1) (SD), ECMA-48.
This is probably an error in ECMA-48, because the standard
writes codes as pairs of decimal values, and this is "14" ver-
sus the VT420 "4".
This was a publication error in the original ECMA-48 5th edi-
tion (1991) corrected in 2003.
CSI Pm ` Character Position Absolute [column] (default = [row,1])
(HPA).
...
...
@@ -1117,16 +1122,24 @@ CSI ! p Soft terminal reset (DECSTR), VT220 and up.
CSI Ps ; Ps " p
Set conformance level (DECSCL), VT220 and up.
Valid values for the first parameter:
Ps = 6 1 -> VT100.
Ps = 6 2 -> VT200.
Ps = 6 3 -> VT300.
Valid values for the second parameter:
The first parameter selects the conformance level. Valid val-
ues are:
Ps = 6 1 -> level 1, e.g., VT100.
Ps = 6 2 -> level 2, e.g., VT200.
Ps = 6 3 -> level 3, e.g., VT300.
Ps = 6 4 -> level 4, e.g., VT400.
Ps = 6 5 -> level 5, e.g., VT500.
The second parameter selects the C1 control transmission mode.
This is an optional parameter, ignored in conformance level 1.
Valid values are:
Ps = 0 -> 8-bit controls.
Ps = 1 -> 7-bit controls (
always set for VT100
).
Ps = 1 -> 7-bit controls (
DEC factory default
).
Ps = 2 -> 8-bit controls.
The 7-bit and 8-bit control modes can also be set by S7C1T and
S8C1T, but DECSCL is preferred.
CSI Ps $ p
Request ANSI mode (DECRQM). For VT300 and up, reply DECRPM is
CSI Ps; Pm$ y
...
...
@@ -1148,6 +1161,11 @@ CSI ? Ps $ p
vided only for reporting their values using this control
sequence. They correspond to the resources cursorBlink and
cursorBlinkXOR.
CSI # p
CSI Ps ; Ps # p
Push video attributes onto stack (XTPUSHSGR), xterm. This is
an alias for CSI # { , used to work around language limita-
tions of C#.
CSI Ps q Load LEDs (DECLL), VT100.
Ps = 0 -> Clear all LEDS (default).
...
...
@@ -1175,6 +1193,10 @@ CSI Ps " q
Ps = 1 -> DECSED and DECSEL cannot erase.
Ps = 2 -> DECSED and DECSEL can erase.
CSI # q Pop video attributes from stack (XTPOPSGR), xterm. This is an
alias for CSI # } , used to work around language limitations
of C#.
CSI Ps ; Ps r
Set Scrolling Region [top;bottom] (default = full size of win-
dow) (DECSTBM), VT100.
...
...
@@ -1240,6 +1262,9 @@ CSI Ps ; Ps ; Ps t
If the xterm window is non-iconified, it returns CSI 1 t .
If the xterm window is iconified, it returns CSI 2 t .
Ps = 1 3 -> Report xterm window position.
Note: X Toolkit positions can be negative, but the reported
values are unsigned, in the range 0-65535. Negative values
correspond to 32768-65535.
Result is CSI 3 ; x ; y t
Ps = 1 3 ; 2 -> Report xterm text-area position.
Result is CSI 3 ; x ; y t
...
...
@@ -1546,12 +1571,14 @@ OSC Ps ; Pt ST
through 1 9 are denoted dynamic colors, since the correspond-
ing control sequences were the first means for setting xterm's
colors dynamically, i.e., after it was started. They are not
the same as the ANSI colors. These controls may be disabled
using the allowColorOps resource. At least one parameter is
expected for Pt. Each successive parameter changes the next
color in the list. The value of Ps tells the starting point
in the list. The colors are specified by name or RGB specifi-
cation as per XParseColor.
the same as the ANSI colors (however, the dynamic text fore-
ground and background colors are used when ANSI colors are
reset using SGR 3 9 and 4 9 , respectively). These controls
may be disabled using the allowColorOps resource. At least
one parameter is expected for Pt. Each successive parameter
changes the next color in the list. The value of Ps tells the
starting point in the list. The colors are specified by name
or RGB specification as per XParseColor.
If a "?" is given rather than a name or RGB specification,
xterm replies with a control sequence of the same form which
...
...
@@ -1598,11 +1625,11 @@ OSC Ps ; Pt ST
Pt is parsed as
Pc ; Pd
The first, Pc, may contain zero or more characters from the
set c , p , s , 0 , 1 , 2 , 3 , 4 , 5 , 6 , and 7 . It is
set c , p ,
q ,
s , 0 , 1 , 2 , 3 , 4 , 5 , 6 , and 7 . It is
used to construct a list of selection parameters for clip-
board, primary, select, or cut buffers 0 through 7
respec-
tively, in the order given. If the parameter is empty,
xterm
uses s 0 , to specify the configurable primary/clipboard
board, primary,
secondary,
select, or cut buffers 0 through 7
respec
tively, in the order given. If the parameter is empty,
xterm
uses s 0 , to specify the configurable primary/clipboard
selection and cut buffer 0.
The second parameter, Pd, gives the selection data. Normally
...
...
@@ -2141,7 +2168,7 @@ encoding the location and the mouse button pressed. It is enabled by
specifying parameter 9 to DECSET. On button press, xterm sends CSI M
CbCxCy (6 characters).
o Cb is button-1.
o Cb is button-1
, where button is 1, 2 or 3
.
o Cx and Cy are the x and y coordinates of the mouse when the button
was pressed.
...
...
@@ -2635,7 +2662,7 @@ o VT520/VT525 Video Terminal
o Digital ANSI-Compliant Printing Protocol
Level 2 Programming Reference Manual
Digital Equipment Corporation (EK-PPLV2-PM
.
B01, August 1994).
Digital Equipment Corporation (EK-PPLV2-PM B01, August 1994).
o 4014 and 4014-1 Computer Display Terminal
User's Manual.
...
...
@@ -2649,6 +2676,27 @@ using standards plus extensions, e.g., "private modes". Not all com-
monly-used features are standard. For example, scrolling regions are
not found in ECMA-48.
Again, it is possible to find discrepancies in the standards:
o The printed ECMA-48 5th edition (1991) and the first PDF produced
for that edition (April 1998) state that SD (scroll down) ends with
05/14, i.e., ^ , which disagrees with DEC's VT420 hardware implemen-
tation and DEC's manuals which use 05/04 T . (A few other terminals
such as AT&T 5620 and IBM 5151 also used 05/04, but the documenta-
tion and dates are lacking).
ECMA created a new PDF in April 2003 which changed that detail to
use T , and later in 2008 provided PDFs of the earlier editions
which used T .
o The VT320, VT420, VT520 manuals claim that DECSCL does a hard reset
(RIS).
Both the VT220 manual and DEC STD 070 (which documents levels 1-4 in
detail) state that it is a soft reset, e.g., DECSTR.
Here are the relevant standards:
o ECMA-35: Character Code Structure and Extension Techniques
(6th Edition, December 1994).
...
...
cursor.c
View file @
4c5fb88e
/* $XTermId: cursor.c,v 1.7
5
201
8
/0
9
/1
5
0
0:48:57
tom Exp $ */
/* $XTermId: cursor.c,v 1.7
6
201
9
/0
6
/1
1
0
8:58:26
tom Exp $ */
/*
* Copyright 2002-201
7
,201
8
by Thomas E. Dickey
* Copyright 2002-201
8
,201
9
by Thomas E. Dickey
*
* All Rights Reserved
*
...
...
@@ -135,7 +135,7 @@ CursorBack(XtermWidget xw, int n)
}
set_cur_row
(
screen
,
(
offset
/
in_row
));
set_cur_col
(
screen
,
(
offset
%
in_row
)
+
left
);
do_xevents
();
do_xevents
(
xw
);
}
else
{
set_cur_col
(
screen
,
left
);
}
...
...
@@ -289,7 +289,7 @@ CarriageReturn(XtermWidget xw)
set_cur_col
(
screen
,
col
);
ResetWrap
(
screen
);
do_xevents
();
do_xevents
(
xw
);
}
/*
...
...
@@ -393,7 +393,7 @@ CursorNextLine(XtermWidget xw, int count)
CursorDown
(
screen
,
count
<
1
?
1
:
count
);
CarriageReturn
(
xw
);
do_xevents
();
do_xevents
(
xw
);
}
/*
...
...
@@ -406,7 +406,7 @@ CursorPrevLine(XtermWidget xw, int count)
CursorUp
(
screen
,
count
<
1
?
1
:
count
);
CarriageReturn
(
xw
);
do_xevents
();
do_xevents
(
xw
);
}
/*
...
...
data.h
View file @
4c5fb88e
/* $XTermId: data.h,v 1.13
4
201
8
/0
8/10 19:52:54
tom Exp $ */
/* $XTermId: data.h,v 1.13
6
201
9
/0
6/28 09:55:29
tom Exp $ */
/*
* Copyright 2002-201
7
,201
8
by Thomas E. Dickey
* Copyright 2002-201
8
,201
9
by Thomas E. Dickey
*
* All Rights Reserved
*
...
...
@@ -241,6 +241,10 @@ typedef struct XTERM_RESOURCE {
String
fullscreen_s
;
/* resource for "fullscreen" */
int
fullscreen
;
/* derived from fullscreen_s */
#endif
#if OPT_DOUBLE_BUFFER
Boolean
buffered
;
int
buffered_fps
;
#endif
}
XTERM_RESOURCE
;
extern
Boolean
guard_keyboard_type
;
...
...
graphics.c
View file @
4c5fb88e
/* $XTermId: graphics.c,v 1.7
7
201
8
/0
7
/2
6 01:32:33
tom Exp $ */
/* $XTermId: graphics.c,v 1.7
9
201
9
/0
6
/2
9 17:29:09
tom Exp $ */
/*
* Copyright 2013-201
7
,201
8
by Ross Combs
* Copyright 2013-201
8
,201
9
by Ross Combs
*
* All Rights Reserved
*
...
...
@@ -1626,14 +1626,14 @@ refresh_graphics(XtermWidget xw,
(
unsigned
)
xw
->
visInfo
->
depth
,
ZPixmap
,
0
,
NULL
,
image_w
,
image_h
,
sizeof
(
int
)
*
8U
,
0
);
(
int
)
(
sizeof
(
int
)
*
8U
)
,
0
);
if
(
!
image
)
{
TRACE
((
"unable to allocate XImage for graphics refresh
\n
"
));
XFreeGC
(
display
,
graphics_gc
);
free
(
buffer
);
return
;
}
imgdata
=
malloc
(
image_h
*
(
unsigned
)
image
->
bytes_per_line
);
imgdata
=
malloc
((
size_t
)
(
image_h
*
(
unsigned
)
image
->
bytes_per_line
)
)
;
if
(
!
imgdata
)
{
TRACE
((
"unable to allocate XImage for graphics refresh
\n
"
));
XDestroyImage
(
image
);
...
...
graphics_regis.c
View file @
4c5fb88e
/* $XTermId: graphics_regis.c,v 1.1
08
201
8/12/15 19:18:08
tom Exp $ */
/* $XTermId: graphics_regis.c,v 1.1
11
201
9/06/29 17:26:40
tom Exp $ */
/*
* Copyright 2014-201
7
,201
8
by Ross Combs
* Copyright 2014-201
8
,201
9
by Ross Combs
*
* All Rights Reserved
*
...
...
@@ -1586,7 +1586,7 @@ copy_bitmap_from_xft_font(Display *display, XftFont *font, FcChar32 ch,
XftDrawString32
(
draw
,
&
fg
,
font
,
0
,
font
->
ascent
-
(
int
)
ymin
,
&
ch
,
1
);
image
=
XGetImage
(
display
,
bitmap
,
(
int
)
xmin
,
0
,
w
,
h
,
1
,
XYPixmap
);
image
=
XGetImage
(
display
,
bitmap
,
(
int
)
xmin
,
0
,
w
,
h
,
1
UL
,
XYPixmap
);
if
(
!
image
)
{
TRACE
((
"Unable to create XImage
\n
"
));
XftDrawDestroy
(
draw
);
...
...
@@ -2002,7 +2002,7 @@ get_xft_bitmap_of_character(RegisGraphicsContext const *context,
return
1
;
#else
(
void
)
context
;
(
void
)
c
ont
ext
;
(
void
)
f
ont
name
;
(
void
)
ch
;
(
void
)
maxw
;
(
void
)
maxh
;
...
...
@@ -7483,16 +7483,7 @@ parse_regis(XtermWidget xw, ANSI *params, char const *string)
prev_tv
=
curr_tv
;
iterations
=
0U
;
refresh_modified_displayed_graphics
(
xw
);
#if OPT_DOUBLE_BUFFER
{
XdbeSwapInfo
swap
;
swap
.
swap_window
=
VWindow
(
screen
);
swap
.
swap_action
=
XdbeCopied
;
XdbeSwapBuffers
(
XtDisplay
(
xw
),
&
swap
,
1
);
XFlush
(
XtDisplay
(
xw
));
}
#endif
xtermFlushDbe
(
xw
);
}
continue
;
...
...
Prev
1
2
3
Next