Update to xterm 327

This commit is contained in:
matthieu 2016-11-03 14:25:06 +00:00
parent 055e2cd049
commit a0d355a5ad
24 changed files with 1388 additions and 1204 deletions

View File

@ -1,4 +1,4 @@
XCOMM $XTermId: Imakefile,v 1.112 2016/01/28 01:56:53 Jens.Schweikhardt Exp $
XCOMM $XTermId: Imakefile,v 1.113 2016/10/06 00:56:32 tom Exp $
XCOMM
XCOMM Attention xterm porters
XCOMM
@ -244,11 +244,21 @@ TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR
AllTarget($(PROGRAMS))
VTPARSE_H = VTparse.h VTparse.hin
TEKPARSE_H = Tekparse.h Tekparse.hin
.SUFFIXES : .def .hin
.def.hin :
awk '/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
SpecialCObjectRule(main,$(_NOOP_),$(MAIN_DEFINES))
SpecialCObjectRule(menu,$(_NOOP_),$(MISC_DEFINES))
SpecialCObjectRule(misc,$(_NOOP_),$(MISC_DEFINES))
SpecialCObjectRule(charproc,$(_NOOP_),$(MISC_DEFINES))
SpecialCObjectRule(misc,$(VTPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(VTPrsTbl,$(VTPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(charproc,$(VTPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(data,$(_NOOP_),$(MISC_DEFINES))
SpecialCObjectRule(TekPrsTbl,$(TEKPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(TekProc,$(TEKPARSE_H),$(MISC_DEFINES))
#if InstallXtermSetUID
SetUIDProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB))
@ -319,4 +329,8 @@ InstallAppDefaults(UXTerm)
InstallAppDefaultsLong(XTerm-col,XTerm-color)
InstallManPage(xterm,$(MANDIR))
InstallManPage(resize,$(MANDIR))
cleandir::
$(RM) *parse.hin
DependTarget()

View File

@ -1,4 +1,4 @@
MANIFEST for xterm-325, version xterm-325
MANIFEST for xterm-327, version xterm-327
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.30 2016/10/24 19:55:37 matthieu Exp $
# $OpenBSD: Makefile,v 1.31 2016/11/03 14:25:06 matthieu Exp $
.include <bsd.xconf.mk>
SUBDIR= icons resize
@ -49,7 +49,12 @@ builtin_icons.h :
@echo "#endif" >>$@
@echo "made $@"
beforedepend: builtin_icons.h
.SUFFIXES: .hin .def
.def.hin:
awk '/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
beforedepend: builtin_icons.h VTparse.hin
.SUFFIXES: .man .1
@ -76,7 +81,7 @@ PATCH_YMD != sed -n '/XTERM_DATE/s,[^0-9/.-]*,,gp' ${.CURDIR}/version.h
-e s%/etc/wtmp%/var/run/wtmp%g \
< $< > $@
CLEANFILES+= ${MAN} builtin_icons.h
CLEANFILES+= ${MAN} builtin_icons.h VTparse.hin
afterinstall:
${INSTALL} ${INSTALL_COPY} -m ${SHAREMODE} \

22
app/xterm/NEWS Normal file
View File

@ -0,0 +1,22 @@
The NEWS file was generated from xterm.log.html, which serves as the changelog
for xterm.
--------------------------------------------------------------------------------
Patch #327 - 2016/10/07
* add a check in the function which handles end-of-line wrapping to
ensure that C1 controls are allocated one column when
allowC1Printable is set (Debian #738794).
* use consistent error-checking after strtol calls, fixes a case
where a query with OSC 6 did not ensure there was a valid color
number (report by Alex Smith).
* add -baudrate option, for testing ncurses.
* always generate the CASE_xxx symbols in VTparse.h and Tekparse.h,
as part of a change to improve debug-logging. This makes the build
always depend upon awk.
* modify allowC1Printable to disallow codes 160-254 as being
equivalent to codes 32-126 when parsing escape sequences (Debian
#839220).
* amend fix from patch #326 for TrueType fonts to exclude the hidden
character used for double-width cells (report by Grady Martin).
* fix a typo in ctlseqs.ms

View File

@ -1,31 +1,34 @@
/* $XTermId: Tekparse.h,v 1.7 2006/02/13 01:14:57 tom Exp $ */
/* $XTermId: Tekparse.h,v 1.8 2016/10/06 00:32:30 tom Exp $ */
/*
* Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
* Copyright 1998-2006,2016 by Thomas E. Dickey
*
* All Rights Reserved
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above copyright notice appear in all copies and that
* both that copyright notice and this permission notice appear in
* supporting documentation, and that the name of Digital Equipment
* Corporation not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior permission.
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above copyright
* holders shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization.
*/
/* $XFree86: xc/programs/xterm/Tekparse.h,v 1.6 2006/02/13 01:14:57 dickey Exp $ */
/* @(#)Tekparse.h X10/6.6 11/7/86 */
#ifndef included_Tekparse_h
#define included_Tekparse_h 1
@ -47,51 +50,6 @@ extern Const int Tplttable[];
extern Const int Tpttable[];
extern Const int Tspttable[];
/*
* The following list of definitions is generated from Tekparse.def using the
* following command line:
*
* egrep -v '^CASE_' Tekparse.def | \
* awk 'BEGIN {n = 0;} {printf "#define %s %d\n", $1, n; n++}'
*
* You you need to change something, change Tekparse.def and regenerate the
* definitions. This would have been automatic, but since this doesn't change
* very often, it isn't worth the makefile hassle.
*/
#define CASE_REPORT 0
#define CASE_VT_MODE 1
#define CASE_SPT_STATE 2
#define CASE_GIN 3
#define CASE_BEL 4
#define CASE_BS 5
#define CASE_PT_STATE 6
#define CASE_PLT_STATE 7
#define CASE_TAB 8
#define CASE_IPL_STATE 9
#define CASE_ALP_STATE 10
#define CASE_UP 11
#define CASE_COPY 12
#define CASE_PAGE 13
#define CASE_BES_STATE 14
#define CASE_BYP_STATE 15
#define CASE_IGNORE 16
#define CASE_ASCII 17
#define CASE_APL 18
#define CASE_CHAR_SIZE 19
#define CASE_BEAM_VEC 20
#define CASE_CURSTATE 21
#define CASE_PENUP 22
#define CASE_PENDOWN 23
#define CASE_IPL_POINT 24
#define CASE_PLT_VEC 25
#define CASE_PT_POINT 26
#define CASE_SPT_POINT 27
#define CASE_CR 28
#define CASE_ESC_STATE 29
#define CASE_LF 30
#define CASE_SP 31
#define CASE_PRINT 32
#define CASE_OSC 33
#include <Tekparse.hin>
#endif /* included_Tekparse_h */

View File

@ -1,7 +1,7 @@
/* $XTermId: VTparse.h,v 1.65 2015/02/16 00:10:39 tom Exp $ */
/* $XTermId: VTparse.h,v 1.66 2016/10/06 00:37:11 tom Exp $ */
/*
* Copyright 2002-2014,2015 by Thomas E. Dickey
* Copyright 1996-2015,2016 by Thomas E. Dickey
*
* All Rights Reserved
*
@ -28,28 +28,6 @@
* holders shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization.
*
*
* Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
*
* All Rights Reserved
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above copyright notice appear in all copies and that
* both that copyright notice and this permission notice appear in
* supporting documentation, and that the name of Digital Equipment
* Corporation not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior permission.
*
*
* DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
#ifndef included_VTparse_h
@ -106,178 +84,6 @@ extern Const PARSE_T esc_pct_table[];
extern Const PARSE_T scs_pct_table[];
#endif
/*
* The following list of definitions is generated from VTparse.def using the
* following command line:
*
* grep '^CASE_' VTparse.def | awk '{printf "#define %s %d\n", $1, n++}'
*
* If you need to change something, change VTparse.def and regenerate the
* definitions. This would have been automatic, but since this doesn't change
* very often, it isn't worth the makefile hassle.
*/
#define CASE_GROUND_STATE 0
#define CASE_IGNORE 1
#define CASE_BELL 2
#define CASE_BS 3
#define CASE_CR 4
#define CASE_ESC 5
#define CASE_VMOT 6
#define CASE_TAB 7
#define CASE_SI 8
#define CASE_SO 9
#define CASE_SCR_STATE 10
#define CASE_SCS0_STATE 11
#define CASE_SCS1_STATE 12
#define CASE_SCS2_STATE 13
#define CASE_SCS3_STATE 14
#define CASE_ESC_IGNORE 15
#define CASE_ESC_DIGIT 16
#define CASE_ESC_SEMI 17
#define CASE_DEC_STATE 18
#define CASE_ICH 19
#define CASE_CUU 20
#define CASE_CUD 21
#define CASE_CUF 22
#define CASE_CUB 23
#define CASE_CUP 24
#define CASE_ED 25
#define CASE_EL 26
#define CASE_IL 27
#define CASE_DL 28
#define CASE_DCH 29
#define CASE_DA1 30
#define CASE_TRACK_MOUSE 31
#define CASE_TBC 32
#define CASE_SET 33
#define CASE_RST 34
#define CASE_SGR 35
#define CASE_CPR 36
#define CASE_DECSTBM 37
#define CASE_DECREQTPARM 38
#define CASE_DECSET 39
#define CASE_DECRST 40
#define CASE_DECALN 41
#define CASE_GSETS 42
#define CASE_DECSC 43
#define CASE_DECRC 44
#define CASE_DECKPAM 45
#define CASE_DECKPNM 46
#define CASE_IND 47
#define CASE_NEL 48
#define CASE_HTS 49
#define CASE_RI 50
#define CASE_SS2 51
#define CASE_SS3 52
#define CASE_CSI_STATE 53
#define CASE_OSC 54
#define CASE_RIS 55
#define CASE_LS2 56
#define CASE_LS3 57
#define CASE_LS3R 58
#define CASE_LS2R 59
#define CASE_LS1R 60
#define CASE_PRINT 61
#define CASE_XTERM_SAVE 62
#define CASE_XTERM_RESTORE 63
#define CASE_XTERM_TITLE 64
#define CASE_DECID 65
#define CASE_HP_MEM_LOCK 66
#define CASE_HP_MEM_UNLOCK 67
#define CASE_HP_BUGGY_LL 68
#define CASE_HPA 69
#define CASE_VPA 70
#define CASE_XTERM_WINOPS 71
#define CASE_ECH 72
#define CASE_CHT 73
#define CASE_CPL 74
#define CASE_CNL 75
#define CASE_CBT 76
#define CASE_SU 77
#define CASE_SD 78
#define CASE_S7C1T 79
#define CASE_S8C1T 80
#define CASE_ESC_SP_STATE 81
#define CASE_ENQ 82
#define CASE_DECSCL 83
#define CASE_DECSCA 84
#define CASE_DECSED 85
#define CASE_DECSEL 86
#define CASE_DCS 87
#define CASE_PM 88
#define CASE_SOS 89
#define CASE_ST 90
#define CASE_APC 91
#define CASE_EPA 92
#define CASE_SPA 93
#define CASE_CSI_QUOTE_STATE 94
#define CASE_DSR 95
#define CASE_ANSI_LEVEL_1 96
#define CASE_ANSI_LEVEL_2 97
#define CASE_ANSI_LEVEL_3 98
#define CASE_MC 99
#define CASE_DEC2_STATE 100
#define CASE_DA2 101
#define CASE_DEC3_STATE 102
#define CASE_DECRPTUI 103
#define CASE_VT52_CUP 104
#define CASE_REP 105
#define CASE_CSI_EX_STATE 106
#define CASE_DECSTR 107
#define CASE_DECDHL 108
#define CASE_DECSWL 109
#define CASE_DECDWL 110
#define CASE_DEC_MC 111
#define CASE_ESC_PERCENT 112
#define CASE_UTF8 113
#define CASE_CSI_TICK_STATE 114
#define CASE_DECELR 115
#define CASE_DECRQLP 116
#define CASE_DECEFR 117
#define CASE_DECSLE 118
#define CASE_CSI_IGNORE 119
#define CASE_VT52_IGNORE 120
#define CASE_VT52_FINISH 121
#define CASE_CSI_DOLLAR_STATE 122
#define CASE_DECCRA 123
#define CASE_DECERA 124
#define CASE_DECFRA 125
#define CASE_DECSERA 126
#define CASE_DECSACE 127
#define CASE_DECCARA 128
#define CASE_DECRARA 129
#define CASE_CSI_STAR_STATE 130
#define CASE_SET_MOD_FKEYS 131
#define CASE_SET_MOD_FKEYS0 132
#define CASE_HIDE_POINTER 133
#define CASE_SCS1A_STATE 134
#define CASE_SCS2A_STATE 135
#define CASE_SCS3A_STATE 136
#define CASE_CSI_SPACE_STATE 137
#define CASE_DECSCUSR 138
#define CASE_SM_TITLE 139
#define CASE_RM_TITLE 140
#define CASE_DECSMBV 141
#define CASE_DECSWBV 142
#define CASE_DECLL 143
#define CASE_DECRQM 144
#define CASE_RQM 145
#define CASE_CSI_DEC_DOLLAR_STATE 146
#define CASE_SL 147
#define CASE_SR 148
#define CASE_DECDC 149
#define CASE_DECIC 150
#define CASE_DECBI 151
#define CASE_DECFI 152
#define CASE_DECRQCRA 153
#define CASE_HPR 154
#define CASE_VPR 155
#define CASE_ANSI_SC 156
#define CASE_ANSI_RC 157
#define CASE_ESC_COLON 158
#define CASE_SCS_PERCENT 159
#define CASE_GSETS_PERCENT 160
#define CASE_GRAPHICS_ATTRIBUTES 161
#include <VTparse.hin>
#endif /* included_VTparse_h */

View File

@ -1,4 +1,4 @@
/* $XTermId: charproc.c,v 1.1420 2016/05/30 19:31:33 tom Exp $ */
/* $XTermId: charproc.c,v 1.1426 2016/10/07 21:14:54 tom Exp $ */
/*
* Copyright 1999-2015,2016 by Thomas E. Dickey
@ -236,6 +236,7 @@ static String _Font_Selected_ = "yes"; /* string is arbitrary */
static const char *defaultTranslations;
/* *INDENT-OFF* */
static XtActionsRec actionsList[] = {
{ "allow-bold-fonts", HandleAllowBoldFonts },
{ "allow-send-events", HandleAllowSends },
{ "bell", HandleBell },
{ "clear-saved-lines", HandleClearSavedLines },
@ -1144,7 +1145,7 @@ resetCharsets(TScreen *screen)
#if OPT_VT52_MODE
if (screen->vtXX_level == 0)
screen->gsets[1] = '0'; /* Graphics */
screen->gsets[1] = nrc_DEC_Spec_Graphic; /* Graphics */
#endif
}
@ -2109,10 +2110,13 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
* provided that they are not intermixed with an escape sequence.
*/
if (screen->c1_printable
&& (c >= 128 && c < 160)) {
&& (c >= 128 && c < 256)) {
sp->nextstate = (sp->parsestate == esc_table
? CASE_ESC_IGNORE
: sp->parsestate[E2A(160)]);
TRACE(("allowC1Printable %04X %s ->%s\n",
c, which_table(sp->parsestate),
visibleVTparse(sp->nextstate)));
}
#endif
@ -2215,8 +2219,8 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
}
DumpParams();
TRACE(("parse %04X -> %d %s (used=%lu)\n",
c, sp->nextstate,
TRACE(("parse %04X -> %s %s (used=%lu)\n",
c, visibleVTparse(sp->nextstate),
which_table(sp->parsestate),
(unsigned long) sp->string_used));
@ -4991,6 +4995,10 @@ dotext(XtermWidget xw,
if (!screen->utf8_mode
|| (screen->vt100_graphics && charset == '0')) {
last_chomp = 1;
} else if (screen->c1_printable &&
buf[chars_chomped + offset] >= 0x80 &&
buf[chars_chomped + offset] <= 0xa0) {
last_chomp = 1;
} else {
last_chomp = my_wcwidth((wchar_t) buf[chars_chomped + offset]);
}
@ -7553,7 +7561,7 @@ set_flags_from_list(char *target,
char *temp;
value = (int) strtol(next, &temp, 0);
if (!IsEmpty(temp)) {
if (!FullS2L(next, temp)) {
xtermWarning("Expected a number: %s\n", next);
} else {
for (n = 0; n < limit; ++n) {

View File

@ -1,6 +1,6 @@
.\"#! troff -ms $1 -*- Nroff -*-
.\" "Xterm Control Sequences" document
.\" $XTermId: ctlseqs.ms,v 1.330 2016/02/22 00:44:10 tom Exp $
.\" $XTermId: ctlseqs.ms,v 1.333 2016/10/02 23:19:00 tom Exp $
.\"
.\"
.\" Copyright 1996-2015,2016 by Thomas E. Dickey
@ -69,8 +69,8 @@
.\"
.ds XT XTerm
.ds xt xterm
.ds LF Patch #323
.ds RF 2016/02/21
.ds LF Patch #326
.ds RF 2016/10/02
.\"
.if n .pl 9999v \" no page breaks in nroff
.ND
@ -498,10 +498,13 @@ Default response is an empty string, but may be overridden
by a resource \fBanswerbackString\fP.
.
.IP \\*(Ff
Form Feed or New Page (NP). Ctrl-L is treated the same as LF.
Form Feed or New Page (NP).
(\*(Ff is Ctrl-L).
\*(Ff is treated the same as \*(Lf.
.
.IP \\*(Lf
Line Feed or New Line (NL). (LF is Ctrl-J).
Line Feed or New Line (NL).
(\*(Lf is Ctrl-J).
.
.IP \\*(Si
Shift In (Ctrl-O) \(-> Switch to Standard Character Set. This invokes the
@ -676,7 +679,7 @@ Invoke the G1 Character Set as GR (LS1R).
.Ed
.
.St
.Ss Application Program-Control functions
.Ss Application Program-Command functions
.IP \\*(AP\\*(Pt\\*s\\*(ST
None. \fIxterm\fP implements no \*(AP functions; \*(Pt is ignored.
\*(Pt need not be printable characters.
@ -1630,7 +1633,7 @@ Delete \*(Ps Column(s) (default = 1) (DECDC), VT420 and up.
.Ed
.
.St
.Ss Operating System Controls
.Ss Operating System Commands
.
.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(ST
.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be

View File

@ -21,7 +21,7 @@
Thomas Dickey
XFree86 Project (1996-2006)
invisible-island.net (2006-2016)
updated for XTerm Patch #323 (2016/02/21)
updated for XTerm Patch #326 (2016/10/02)
@ -158,8 +158,9 @@ BS Backspace (Ctrl-H).
CR Carriage Return (Ctrl-M).
ENQ Return Terminal Status (Ctrl-E). Default response is an empty
string, but may be overridden by a resource answerbackString.
FF Form Feed or New Page (NP). Ctrl-L is treated the same as LF.
LF Line Feed or New Line (NL). (LF is Ctrl-J).
FF Form Feed or New Page (NP). (FF is Ctrl-L). FF is treated
the same as LF .
LF Line Feed or New Line (NL). (LF is Ctrl-J).
SI Shift In (Ctrl-O) -> Switch to Standard Character Set. This
invokes the G0 character set (the default).
SO Shift Out (Ctrl-N) -> Switch to Alternate Character Set. This
@ -240,7 +241,7 @@ ESC | Invoke the G3 Character Set as GR (LS3R).
ESC } Invoke the G2 Character Set as GR (LS2R).
ESC ~ Invoke the G1 Character Set as GR (LS1R).
Application Program-Control functions
Application Program-Command functions
APC Pt ST None. xterm implements no APC functions; Pt is ignored. Pt
need not be printable characters.
@ -1036,7 +1037,7 @@ CSI Pm ' }
CSI Pm ' ~
Delete Ps Column(s) (default = 1) (DECDC), VT420 and up.
Operating System Controls
Operating System Commands
OSC Ps ; Pt ST
OSC Ps ; Pt BEL
Set Text Parameters. For colors and font, if Pt is a "?", the

View File

@ -1,4 +1,4 @@
/* $XTermId: main.c,v 1.781 2016/06/01 09:13:46 tom Exp $ */
/* $XTermId: main.c,v 1.784 2016/10/07 00:40:34 tom Exp $ */
/*
* Copyright 2002-2015,2016 by Thomas E. Dickey
@ -445,7 +445,8 @@ extern char *ptsname(int);
#ifndef VMS
static void reapchild(int /* n */ );
static int spawnXTerm(XtermWidget /* xw */ );
static int spawnXTerm(XtermWidget /* xw */
,unsigned /* line_speed */ );
static void remove_termcap_entry(char *, const char *);
#ifdef USE_PTY_SEARCH
static int pty_search(int * /* pty */ );
@ -1115,6 +1116,7 @@ static XrmOptionDescRec optionDescList[] = {
/* options that we process ourselves */
{"-help", NULL, XrmoptionSkipNArgs, (XPointer) NULL},
{"-version", NULL, XrmoptionSkipNArgs, (XPointer) NULL},
{"-baudrate", NULL, XrmoptionSkipArg, (XPointer) NULL},
{"-class", NULL, XrmoptionSkipArg, (XPointer) NULL},
{"-e", NULL, XrmoptionSkipLine, (XPointer) NULL},
{"-into", NULL, XrmoptionSkipArg, (XPointer) NULL},
@ -1159,6 +1161,7 @@ static OptionHelp xtermOptions[] = {
#endif
{ "-iconic", "start iconic" },
{ "-name string", "client instance, icon, and title strings" },
{ "-baudrate rate", "set line-speed (default 38400)" },
{ "-class string", "class string (XTerm)" },
{ "-title string", "title string" },
{ "-xrm resourcestring", "additional resource specifications" },
@ -1357,9 +1360,10 @@ decode_keyvalue(char **ptr, int termcap)
}
++string;
} else if (termcap && (*string == '\\')) {
char *s = (string + 1);
char *d;
int temp = (int) strtol(string + 1, &d, 8);
if (temp > 0 && d != string) {
int temp = (int) strtol(s, &d, 8);
if (PartS2L(s, d) && temp > 0) {
value = temp;
string = d;
}
@ -1971,6 +1975,124 @@ complex_command(char **args)
}
#endif
static unsigned
lookup_baudrate(const char *value)
{
struct speed {
unsigned given_speed; /* values for 'ospeed' */
unsigned actual_speed; /* the actual speed */
};
#define DATA(number) { B##number, number }
static struct speed const speeds[] =
{
DATA(0),
DATA(50),
DATA(75),
DATA(110),
DATA(134),
DATA(150),
DATA(200),
DATA(300),
DATA(600),
DATA(1200),
DATA(1800),
DATA(2400),
DATA(4800),
DATA(9600),
#ifdef B19200
DATA(19200),
#elif defined(EXTA)
{EXTA, 19200},
#endif
#ifdef B28800
DATA(28800),
#endif
#ifdef B38400
DATA(38400),
#elif defined(EXTB)
{EXTB, 38400},
#endif
#ifdef B57600
DATA(57600),
#endif
#ifdef B76800
DATA(76800),
#endif
#ifdef B115200
DATA(115200),
#endif
#ifdef B153600
DATA(153600),
#endif
#ifdef B230400
DATA(230400),
#endif
#ifdef B307200
DATA(307200),
#endif
#ifdef B460800
DATA(460800),
#endif
#ifdef B500000
DATA(500000),
#endif
#ifdef B576000
DATA(576000),
#endif
#ifdef B921600
DATA(921600),
#endif
#ifdef B1000000
DATA(1000000),
#endif
#ifdef B1152000
DATA(1152000),
#endif
#ifdef B1500000
DATA(1500000),
#endif
#ifdef B2000000
DATA(2000000),
#endif
#ifdef B2500000
DATA(2500000),
#endif
#ifdef B3000000
DATA(3000000),
#endif
#ifdef B3500000
DATA(3500000),
#endif
#ifdef B4000000
DATA(4000000),
#endif
};
#undef DATA
unsigned result = 0;
long check;
char *next;
if (x_toupper(*value) == 'B')
value++;
if (isdigit(CharOf(*value))) {
check = strtol(value, &next, 10);
if (FullS2L(value, next) && (check > 0)) {
Cardinal n;
for (n = 0; n < XtNumber(speeds); ++n) {
if (speeds[n].actual_speed == (unsigned) check) {
result = speeds[n].given_speed;
break;
}
}
}
}
if (result == 0) {
fprintf(stderr, "unsupported value for baudrate: %s\n", value);
}
return result;
}
int
main(int argc, char *argv[]ENVP_ARG)
{
@ -1989,6 +2111,7 @@ main(int argc, char *argv[]ENVP_ARG)
TScreen *screen;
int mode;
char *my_class = x_strdup(DEFCLASS);
unsigned line_speed = VAL_LINE_SPEED;
Window winToEmbedInto = None;
ProgramName = argv[0];
@ -2070,6 +2193,11 @@ main(int argc, char *argv[]ENVP_ARG)
} else if (!strcmp(option_ptr->option, "-help")) {
Help();
quit = True;
} else if (!strcmp(option_ptr->option, "-baudrate")) {
if ((line_speed = lookup_baudrate(option_value)) == 0) {
Help();
quit = True;
}
} else if (!strcmp(option_ptr->option, "-class")) {
free(my_class);
if ((my_class = x_strdup(option_value)) == 0) {
@ -2079,6 +2207,10 @@ main(int argc, char *argv[]ENVP_ARG)
} else if (!strcmp(option_ptr->option, "-into")) {
char *endPtr;
winToEmbedInto = (Window) strtol(option_value, &endPtr, 0);
if (!FullS2L(option_value, endPtr)) {
Help();
quit = True;
}
}
}
if (quit)
@ -2126,7 +2258,7 @@ main(int argc, char *argv[]ENVP_ARG)
}
}
#if defined(macII) || defined(ATT) || defined(CRAY) /* { */
d_tio.c_cflag = VAL_LINE_SPEED | CS8 | CREAD | PARENB | HUPCL;
d_tio.c_cflag = line_speed | CS8 | CREAD | PARENB | HUPCL;
d_tio.c_lflag = ISIG | ICANON | ECHO | ECHOE | ECHOK;
#ifdef ECHOKE
d_tio.c_lflag |= ECHOKE | IEXTEN;
@ -2153,12 +2285,12 @@ main(int argc, char *argv[]ENVP_ARG)
#ifdef BAUD_0 /* { */
d_tio.c_cflag = CS8 | CREAD | PARENB | HUPCL;
#else /* }{ !BAUD_0 */
d_tio.c_cflag = VAL_LINE_SPEED | CS8 | CREAD | PARENB | HUPCL;
d_tio.c_cflag = line_speed | CS8 | CREAD | PARENB | HUPCL;
#endif /* } !BAUD_0 */
#else /* USE_POSIX_TERMIOS */
d_tio.c_cflag = CS8 | CREAD | PARENB | HUPCL;
cfsetispeed(&d_tio, VAL_LINE_SPEED);
cfsetospeed(&d_tio, VAL_LINE_SPEED);
cfsetispeed(&d_tio, line_speed);
cfsetospeed(&d_tio, line_speed);
#endif
d_tio.c_lflag = ISIG | ICANON | ECHO | ECHOE | ECHOK;
#ifdef ECHOKE
@ -2349,6 +2481,11 @@ main(int argc, char *argv[]ENVP_ARG)
debug = True;
continue;
#endif /* DEBUG */
case 'b':
if (strcmp(argv[0], "-baudrate"))
Syntax(*argv);
argc--, argv++;
continue;
case 'c':
if (strcmp(argv[0], "-class"))
Syntax(*argv);
@ -2506,7 +2643,7 @@ main(int argc, char *argv[]ENVP_ARG)
}
});
spawnXTerm(term);
spawnXTerm(term, line_speed);
#ifndef VMS
/* Child process is out there, let's catch its termination */
@ -3323,7 +3460,7 @@ resetShell(char *oldPath)
* If slave, the pty named in passedPty is already open for use
*/
static int
spawnXTerm(XtermWidget xw)
spawnXTerm(XtermWidget xw, unsigned line_speed)
{
TScreen *screen = TScreenOf(xw);
Cardinal nn;
@ -4028,13 +4165,13 @@ spawnXTerm(XtermWidget xw)
#ifdef BAUD_0
/* baud rate is 0 (don't care) */
#elif defined(HAVE_TERMIO_C_ISPEED)
tio.c_ispeed = tio.c_ospeed = VAL_LINE_SPEED;
tio.c_ispeed = tio.c_ospeed = line_speed;
#else /* !BAUD_0 */
tio.c_cflag |= VAL_LINE_SPEED;
tio.c_cflag |= line_speed;
#endif /* !BAUD_0 */
#else /* USE_POSIX_TERMIOS */
cfsetispeed(&tio, VAL_LINE_SPEED);
cfsetospeed(&tio, VAL_LINE_SPEED);
cfsetispeed(&tio, line_speed);
cfsetospeed(&tio, line_speed);
#ifdef __MVS__
/* turn off bits that can't be set from the slave side */
tio.c_cflag &= ~(PACKET | PKT3270 | PTU3270 | PKTXTND);
@ -4115,8 +4252,8 @@ spawnXTerm(XtermWidget xw)
sg.sg_flags &= ~(ALLDELAY | XTABS | CBREAK | RAW);
sg.sg_flags |= ECHO | CRMOD;
/* make sure speed is set on pty so that editors work right */
sg.sg_ispeed = VAL_LINE_SPEED;
sg.sg_ospeed = VAL_LINE_SPEED;
sg.sg_ispeed = line_speed;
sg.sg_ospeed = line_speed;
/* reset t_brkc to default value */
tc.t_brkc = -1;
#ifdef LPASS8

View File

@ -1,4 +1,4 @@
/* $XTermId: misc.c,v 1.741 2016/06/01 09:21:56 tom Exp $ */
/* $XTermId: misc.c,v 1.743 2016/10/07 00:41:14 tom Exp $ */
/*
* Copyright 1999-2015,2016 by Thomas E. Dickey
@ -657,6 +657,7 @@ xevents(void)
case ButtonRelease:
/* also these... */
case Expose:
case GraphicsExpose:
case NoExpose:
case PropertyNotify:
case ClientMessage:
@ -2765,7 +2766,7 @@ ResetAnsiColorRequest(XtermWidget xw, char *buf, int start)
char *next;
color = (int) (strtol) (buf, &next, 10);
if ((next == buf) || (color < 0))
if (!PartS2L(buf, next) || (color < 0))
break; /* no number at all */
if (next != 0) {
if (strchr(";", *next) == 0)
@ -3665,7 +3666,7 @@ do_osc(XtermWidget xw, Char *oscbuf, size_t len, int final)
++buf;
} else {
which = strtol(buf, &next, 10);
if (next == 0)
if (!PartS2L(buf, next) || (which < 0))
break;
buf = next;
if (*buf == ';')
@ -3675,7 +3676,7 @@ do_osc(XtermWidget xw, Char *oscbuf, size_t len, int final)
++buf;
} else {
value = strtol(buf, &next, 10);
if (next == 0)
if (!PartS2L(buf, next) || (which < 0))
break;
buf = next;
if (*buf == ';')

View File

@ -1,3 +1,15 @@
xterm-dev (327) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 02 Oct 2016 19:18:09 -0400
xterm-dev (326) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Wed, 07 Sep 2016 21:12:23 -0400
xterm-dev (325) unstable; urgency=low
* maintenance updates

View File

@ -5,7 +5,7 @@
# and "make makesum".
PORTNAME= xterm
PORTVERSION= 325
PORTVERSION= 327
CATEGORIES= x11
MASTER_SITES= ftp://invisible-island.net/xterm/ \
CRITICAL

View File

@ -1,11 +1,11 @@
# $XTermId: xterm.spec,v 1.91 2016/05/12 23:25:56 tom Exp $
# $XTermId: xterm.spec,v 1.93 2016/10/02 23:18:09 tom Exp $
Summary: X terminal emulator (development version)
%global my_middle xterm
%global my_suffix -dev
%global fullname %{my_middle}%{my_suffix}
%global my_class XTermDev
Name: %{fullname}
Version: 325
Version: 327
Release: 1
License: X11
Group: User Interface/X

View File

@ -1,4 +1,4 @@
/* $XTermId: ptyx.h,v 1.829 2016/05/29 20:32:48 tom Exp $ */
/* $XTermId: ptyx.h,v 1.830 2016/10/07 00:38:57 tom Exp $ */
/*
* Copyright 1999-2015,2016 by Thomas E. Dickey
@ -324,6 +324,13 @@ typedef Char *UString;
#define IsEmpty(s) ((s) == 0 || *(s) == '\0')
#define IsSpace(c) ((c) == ' ' || (c) == '\t' || (c) == '\r' || (c) == '\n')
/*
* Check strtol result, using "FullS2L" when no more data is expected, and
* "PartS2L" when more data may follow in the string.
*/
#define FullS2L(s,d) (PartS2L(s,d) && (*(d) == '\0'))
#define PartS2L(s,d) (isdigit(CharOf(*(s))) && (d) != (s) && (d) != 0)
#define CASETYPE(name) case name: result = #name; break
#define CharOf(n) ((Char)(n))

View File

@ -1,6 +1,6 @@
.\" $XTermId: resize.man,v 1.30 2013/01/06 16:13:44 tom Exp $
.\" $XTermId: resize.man,v 1.32 2016/09/24 11:14:15 tom Exp $
.\"
.\" Copyright 1998-2012,2013 by Thomas E. Dickey
.\" Copyright 1998-2013,2016 by Thomas E. Dickey
.\"
.\" All Rights Reserved
.\"
@ -202,7 +202,7 @@ sets these variables on systems using terminfo.
Many applications (including the curses library)
use those variables when set to override their screensize.
.SH "SEE ALSO"
use_env(3)
use_env(3x)
.br
csh(1), stty(1), tset(1)
.br

View File

@ -1,4 +1,4 @@
# $XTermId: termcap,v 1.82 2016/05/30 21:41:18 tom Exp $
# $XTermId: termcap,v 1.83 2016/07/09 18:40:00 tom Exp $
#
# These are termcap entries that correspond to xterm's terminfo file.
# The file is formatted using ncurses' "tic -CNx", but is not mechanically
@ -50,7 +50,7 @@
# the resolved length of each entry in a comment at the end - T.Dickey
#
xf|xterm-new|modern xterm:\
:XT::*6=\EOF:@7=\EOF:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\
:XT:*6=\EOF:@7=\EOF:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\
:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kB=\E[Z:kH=\EOF:\
:kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\EOB:kh=\EOH:kl=\EOD:\
@ -82,7 +82,7 @@ xb|xterm-basic|modern xterm common:\
# + uses DEC-style control sequences for the application keypad.
#
vt|xterm-vt220|xterm emulating vt220:\
:XT::*6=\E[4~:@7=\E[4~:K2=\EOu:Km=\E[M:kB=\E[Z:kH=\E[4~:\
:XT:*6=\E[4~:@7=\E[4~:K2=\EOu:Km=\E[M:kB=\E[Z:kH=\E[4~:\
:kh=\E[1~:tc=xterm-basic:
v1|xterm-24|xterms|vs100|24x80 xterm:\

View File

@ -1,4 +1,4 @@
/* $XTermId: trace.c,v 1.165 2016/05/31 00:48:42 tom Exp $ */
/* $XTermId: trace.c,v 1.166 2016/10/05 09:16:01 tom Exp $ */
/*
* Copyright 1997-2015,2016 by Thomas E. Dickey
@ -444,6 +444,46 @@ visibleSelectionTarget(Display *d, Atom a)
return result;
}
const char *
visibleTekparse(int code)
{
static const struct {
int code;
const char *name;
} table[] = {
#include "Tekparse.cin"
};
const char *result = "?";
Cardinal n;
for (n = 0; n < XtNumber(table); ++n) {
if (table[n].code == code) {
result = table[n].name;
break;
}
}
return result;
}
const char *
visibleVTparse(int code)
{
static const struct {
int code;
const char *name;
} table[] = {
#include "VTparse.cin"
};
const char *result = "?";
Cardinal n;
for (n = 0; n < XtNumber(table); ++n) {
if (table[n].code == code) {
result = table[n].name;
break;
}
}
return result;
}
const char *
visibleXError(int code)
{

View File

@ -1,4 +1,4 @@
/* $XTermId: trace.h,v 1.77 2016/05/13 20:46:40 tom Exp $ */
/* $XTermId: trace.h,v 1.78 2016/10/05 08:56:36 tom Exp $ */
/*
* Copyright 1997-2015,2016 by Thomas E. Dickey
@ -64,6 +64,8 @@ extern const char * visibleNotifyDetail(int /* code */);
extern const char * visibleNotifyMode (int /* code */);
extern const char * visibleScsCode(int /* chrset */);
extern const char * visibleSelectionTarget(Display * /* d */, Atom /* a */);
extern const char * visibleTekparse (int);
extern const char * visibleVTparse (int);
extern const char * visibleXError (int /* code */);
extern void TraceArgv(const char * /* tag */, char ** /* argv */);

View File

@ -1,4 +1,4 @@
/* $XTermId: util.c,v 1.688 2016/06/03 08:58:37 tom Exp $ */
/* $XTermId: util.c,v 1.693 2016/10/07 00:41:38 tom Exp $ */
/*
* Copyright 1999-2015,2016 by Thomas E. Dickey
@ -3309,6 +3309,10 @@ fixupItalics(XtermWidget xw,
}
#endif
#define SetMissing() \
TRACE(("%s@%d: missing %d\n", __FILE__, __LINE__, missing)); \
missing = 1
/*
* Draws text with the specified combination of bold/underline. The return
* value is the updated x position.
@ -3538,7 +3542,7 @@ drawXtermText(XtermWidget xw,
*/
if (screen->force_box_chars
|| xtermXftMissing(xw, currFont, dec2ucs(ch))) {
missing = 1;
SetMissing();
} else {
ch = dec2ucs(ch);
replace = True;
@ -3555,7 +3559,7 @@ drawXtermText(XtermWidget xw,
if (screen->force_box_chars
|| xtermXftMissing(xw, currFont, ch)) {
ch = part;
missing = True;
SetMissing();
}
} else if (xtermXftMissing(xw, currFont, ch)) {
XftFont *test = pickXftFont(needed, font0, wfont0);
@ -3567,6 +3571,8 @@ drawXtermText(XtermWidget xw,
filler = needed - 1;
ch = part;
replace = True;
} else if (ch != HIDDEN_CHAR) {
SetMissing();
}
}
});
@ -3582,7 +3588,7 @@ drawXtermText(XtermWidget xw,
* box-characters.
*/
if (xtermXftMissing(xw, currFont, ch)) {
missing = 1;
SetMissing();
}
}
#endif
@ -3756,10 +3762,11 @@ drawXtermText(XtermWidget xw,
&& (!screen->fnt_boxes
|| (FontIsIncomplete(curFont) && !screen->assume_all_chars)
|| screen->force_box_chars)) {
/* Fill in missing box-characters.
Find regions without missing characters, and draw
them calling ourselves recursively. Draw missing
characters via xtermDrawBoxChar(). */
/*
* Fill in missing box-characters. Find regions without missing
* characters, and draw them calling ourselves recursively. Draw
* missing characters via xtermDrawBoxChar().
*/
int last, first = 0;
Bool drewBoxes = False;
@ -3827,6 +3834,8 @@ drawXtermText(XtermWidget xw,
#if OPT_WIDE_CHARS
if (ch_width <= 0 && ch < 32)
ch_width = 1; /* special case for line-drawing */
else if (ch_width < 0)
ch_width = 1; /* special case for combining char */
if (!ucs_workaround(xw, ch,
attr_flags,
draw_flags,
@ -4838,8 +4847,8 @@ extendedBoolean(const char *value, const FlagList * table, Cardinal limit)
|| (x_strcasecmp(value, "no") == 0)
|| (x_strcasecmp(value, "off") == 0)) {
result = False;
} else if ((check = strtol(value, &next, 0)) >= 0 && *next == '\0') {
if (check >= (long) limit)
} else if ((check = strtol(value, &next, 0)) >= 0 && FullS2L(value, next)) {
if (check >= (long) (limit + 2)) /* 2 is past False=0, True=1 */
check = True;
result = (int) check;
} else {
@ -4942,7 +4951,7 @@ parse_xinerama_screen(Display *display, const char *str, struct Xinerama_geometr
str++;
} else {
long s = strtol(str, &end, 0);
if (end > str && (int) s >= 0) {
if (FullS2L(str, end) && ((int) s >= 0)) {
screen = (int) s;
str = end;
}

View File

@ -1,4 +1,4 @@
/* $XTermId: version.h,v 1.427 2016/06/05 22:28:35 tom Exp $ */
/* $XTermId: version.h,v 1.431 2016/10/08 00:45:01 tom Exp $ */
/*
* Copyright 1998-2015,2016 by Thomas E. Dickey
@ -38,8 +38,8 @@
* version of X to which this version of xterm has been built. The resulting
* number in parentheses is my patch number (Thomas E. Dickey).
*/
#define XTERM_PATCH 325
#define XTERM_DATE 2016-06-05
#define XTERM_PATCH 327
#define XTERM_DATE 2016-10-07
#ifndef __vendorversion__
#define __vendorversion__ "XTerm/OpenBSD"

View File

@ -1,33 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014,2016 Thomas Dickey <dickey@invisible-island.net> -->
<application>
<id type="desktop">xterm.desktop</id>
<metadata_license>CC-BY-3.0</metadata_license>
<project_license>X11</project_license>
<name>XTerm</name>
<summary>Terminal emulator for the X Window System</summary>
<description>
<p>
<component type="desktop">
<id>xterm.desktop</id>
<metadata_license>CC-BY-3.0</metadata_license>
<project_license>X11</project_license>
<name>XTerm</name>
<summary>Terminal emulator for the X Window System</summary>
<description>
<p>
XTerm is the standard terminal emulator for the X Window System.
It provides DEC VT102/VT220 and selected features from higher-level
terminals such as VT320/VT420/VT520 (VTxxx). It also provides Tektronix
4014 emulation for programs that cannot use the window system directly.
</p>
<p>
<p>
You would use xterm to get a shell prompt, to run command-line programs.
</p>
</description>
<screenshots>
<screenshot type="default" width="813" height="539">http://invisible-island.net/xterm/images/merged-xterm-menus.png</screenshot>
</screenshots>
<keywords>
<keyword>3D</keyword>
<keyword>shell</keyword>
<keyword>prompt</keyword>
<keyword>command</keyword>
<keyword>commandline</keyword>
<keyword>cmd</keyword>
</keywords>
<url type="homepage">http://invisible-island.net/xterm/</url>
<updatecontact>dickey@invisible-island.net</updatecontact>
</application>
</description>
<screenshots>
<screenshot type="default" height="539" width="813">
<image>http://invisible-island.net/xterm/images/merged-xterm-menus.png</image>
<caption>xterm with its popup menus superimposed</caption>
</screenshot>
</screenshots>
<keywords>
<keyword>shell</keyword>
<keyword>prompt</keyword>
<keyword>command</keyword>
<keyword>commandline</keyword>
<keyword>cmd</keyword>
<keyword>terminal</keyword>
</keywords>
<url type="homepage">http://invisible-island.net/xterm/</url>
<update_contact>dickey@invisible-island.net</update_contact>
<developer_name>Thomas E. Dickey</developer_name>
<url type="bugtracker">mailto:dickey@invisible-island.net</url>
<url type="donation"/>
<url type="help">http://invisible-island.net/xterm/xterm.faq.html</url>
<url type="translate"/>
</component>

View File

@ -30,7 +30,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
*****************************************************************************
$XTermId: xterm.log.html,v 1.1669 2016/06/05 22:28:12 tom Exp $
$XTermId: xterm.log.html,v 1.1693 2016/10/08 00:44:44 tom Exp $
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
@ -72,6 +72,10 @@
CHANGELOG</a>).</p>
<ul>
<li><a href="#xterm_327">Patch #327 - 2016/10/07</a></li>
<li><a href="#xterm_326">Patch #326 - 2016/09/25</a></li>
<li><a href="#xterm_325">Patch #325 - 2016/06/05</a></li>
<li><a href="#xterm_324">Patch #324 - 2016/03/10</a></li>
@ -935,6 +939,80 @@
<li><a href="#xterm_01">Patch #1 - 1996/1/6</a></li>
</ul>
<h1><a name="xterm_327" id="xterm_327">Patch #327 -
2016/10/07</a></h1>
<ul>
<li>add a check in the function which handles end-of-line
wrapping to ensure that C1 controls are allocated one column
when <code>allowC1Printable</code> is set (Debian
#738794).</li>
<li>use consistent error-checking after <code>strtol</code>
calls, fixes a case where a query with OSC 6 did not ensure
there was a valid color number (report by Alex Smith).</li>
<li>add <code>-baudrate</code> option, for testing
ncurses.</li>
<li>always generate the <code>CASE_<em>xxx</em></code> symbols
in <code>VTparse.h</code> and <code>Tekparse.h</code>, as part
of a change to improve debug-logging. This makes the build
always depend upon <code>awk</code>.</li>
<li>modify <code>allowC1Printable</code> to disallow codes
160-254 as being equivalent to codes 32-126 when parsing escape
sequences (Debian #839220).</li>
<li>amend fix from <a href="#xterm_326">patch #326</a> for
TrueType fonts to exclude the hidden character used for
double-width cells (report by Grady Martin).</li>
<li>fix a typo in <code>ctlseqs.ms</code></li>
</ul>
<h1><a name="xterm_326" id="xterm_326">Patch #326 -
2016/09/25</a></h1>
<ul>
<li>updated appdata file (report by Richard Hughes).</li>
<li>improve discussion of the different terminal emulations
provided by xterm in the manual page.</li>
<li>add examples of setting the icon title with/without the
window title in the manual (Debian #833984).</li>
<li>correct a limit-check when using a numeric value for
extended Booleans e.g., <code>*fullscreen:3</code> rather than
a name such as <code>*fullscreen:never</code>.</li>
<li>add action <code>allow-bold-fonts</code></li>
<li>improved formatting fixes for manual page, using script to
find mismatches in spelling of resources, actions and menu
entries.</li>
<li>improve documentation of logging resources.</li>
<li>fix a special case of flickering cursor by adding
<code>GraphicsExpose</code> to the list of event types that
should not trigger making the mouse cursor visible (patch by
Joe Peterson).</li>
<li>correct initialization of line-drawing in VT52-mode,
overlooked in changes for <a href="#xterm_297">patch #297</a>
(report/patch by Ben Wiley Sittler).</li>
<li>minor clarification of form-feed versus line-feed in
<code>ctlseqs.ms</code> (suggested by David Kemper).</li>
<li>amend fix for Debian #738794 to restore a check for missing
characters which are <em>not</em> combining characters. Also
fill in a corresponding special case for TrueType fonts (Debian
#827905).</li>
</ul>
<h1><a name="xterm_325" id="xterm_325">Patch #325 -
2016/06/05</a></h1>

File diff suppressed because it is too large Load Diff