Julien Cristau pushed to branch upstream-unstable at X Strike Force / app / xterm
Commits:
-
610ba934
by Julien Cristau at 2021-02-11T10:28:14+01:00
14 changed files:
- MANIFEST
- NEWS
- THANKS
- button.c
- charproc.c
- main.c
- misc.c
- package/debian/changelog
- package/freebsd/Makefile
- package/pkgsrc/Makefile
- package/xterm.spec
- version.h
- xterm.appdata.xml
- xterm.log.html
Changes:
1 |
-MANIFEST for xterm-365, version xterm-365
|
|
1 |
+MANIFEST for xterm-366, version xterm-366
|
|
2 | 2 |
--------------------------------------------------------------------------------
|
3 | 3 |
MANIFEST this file
|
4 | 4 |
256colres.h resource-definitions for 256-color mode
|
1 | 1 |
The NEWS file was generated from xterm.log.html, which serves as the changelog
|
2 | 2 |
for xterm.
|
3 | 3 |
--------------------------------------------------------------------------------
|
4 |
- Patch #365 - 2021/02/03
|
|
4 |
+ Patch #366 - 2021/02/10
|
|
5 | 5 |
|
6 |
- * amend fix for “word” selection in patch #364 to limit that to the
|
|
7 |
- insert-selectable action, which reads data from the screen. This
|
|
8 |
- restores the interactive behavior where double-clicking on a “word”
|
|
9 |
- would make subsequent selection extensions by words as well as
|
|
10 |
- suppressing some boundary-checks (report by David Wolfskill,
|
|
11 |
- FreeBSD #253225).
|
|
6 |
+ * correct a compiler-warning fix in patch #352 which allowed
|
|
7 |
+ sign-extension of coordinate values (report by "CismonX").
|
|
8 |
+ * correct upper-limit for selection buffer, accounting for combining
|
|
9 |
+ characters (report/testcase by Tavis Ormandy).
|
|
10 |
+ * with alwaysHighlight true, xterm does not properly track focus. The
|
|
11 |
+ screen->select FOCUS flag remains always on, which prevents
|
|
12 |
+ bellIsUrgent from working, as the urgent WM_HINT flag is only set
|
|
13 |
+ in setXUrgency() when the window is not focused. Fix this by
|
|
14 |
+ updating screen->select in unselectwindow() regardless of the value
|
|
15 |
+ of always_highlight (patch by Jiri Bohac).
|
|
16 |
+ * improve fix for interaction between SRM and ENQ (report by Grant
|
|
17 |
+ Taylor).
|
|
18 |
+ * build-fix for --with-Xaw3dxft, needed when --with-toolbar is
|
|
19 |
+ omitted (report by Jimmy Olgeni, Emanuel Haupt).
|
|
12 | 20 |
|
1 |
--- $XTermId: THANKS,v 1.29 2021/01/28 01:13:56 tom Exp $
|
|
1 |
+-- $XTermId: THANKS,v 1.30 2021/02/09 01:32:10 tom Exp $
|
|
2 | 2 |
-- vile:txtmode fk=utf-8
|
3 | 3 |
There's no AUTHORS file in this distribution; it would be redundant since
|
4 | 4 |
I (Thomas E. Dickey) have done more than 80% of the work on xterm since 1996.
|
... | ... | @@ -113,6 +113,7 @@ Jeroen Ruigrok |
113 | 113 |
Jess Thrysoee
|
114 | 114 |
Jim Paris
|
115 | 115 |
Jimmy Aguilar Mena
|
116 |
+Jiri Bohac
|
|
116 | 117 |
Jochen Voss
|
117 | 118 |
Joe Allen
|
118 | 119 |
Joe Peterson
|
1 |
-/* $XTermId: button.c,v 1.631 2021/02/04 01:00:26 tom Exp $ */
|
|
1 |
+/* $XTermId: button.c,v 1.636 2021/02/10 01:14:51 tom Exp $ */
|
|
2 | 2 |
|
3 | 3 |
/*
|
4 | 4 |
* Copyright 1999-2020,2021 by Thomas E. Dickey
|
... | ... | @@ -409,7 +409,7 @@ xtermButtonInit(XtermWidget xw) |
409 | 409 |
unsigned allowed = 0;
|
410 | 410 |
unsigned disallow = 0;
|
411 | 411 |
|
412 |
- TRACE(("xtermButtonInit length %ld\n", strlen(result)));
|
|
412 |
+ TRACE(("xtermButtonInit length %ld\n", (long) strlen(result)));
|
|
413 | 413 |
xw->keyboard.print_translations = data;
|
414 | 414 |
while ((next = scanTrans(data, &state, &state2, &first, &last)) != 0) {
|
415 | 415 |
unsigned len = (last - first);
|
... | ... | @@ -4323,6 +4323,7 @@ SaltTextAway(XtermWidget xw, |
4323 | 4323 |
int i;
|
4324 | 4324 |
int eol;
|
4325 | 4325 |
int need = 0;
|
4326 |
+ size_t have = 0;
|
|
4326 | 4327 |
Char *line;
|
4327 | 4328 |
Char *lp;
|
4328 | 4329 |
CELL first = *cellc;
|
... | ... | @@ -4357,7 +4358,11 @@ SaltTextAway(XtermWidget xw, |
4357 | 4358 |
|
4358 | 4359 |
/* UTF-8 may require more space */
|
4359 | 4360 |
if_OPT_WIDE_CHARS(screen, {
|
4360 |
- need *= 4;
|
|
4361 |
+ if (need > 0) {
|
|
4362 |
+ if (screen->max_combining > 0)
|
|
4363 |
+ need += screen->max_combining;
|
|
4364 |
+ need *= 6;
|
|
4365 |
+ }
|
|
4361 | 4366 |
});
|
4362 | 4367 |
|
4363 | 4368 |
/* now get some memory to save it in */
|
... | ... | @@ -4395,10 +4400,26 @@ SaltTextAway(XtermWidget xw, |
4395 | 4400 |
}
|
4396 | 4401 |
*lp = '\0'; /* make sure we have end marked */
|
4397 | 4402 |
|
4398 |
- TRACE(("Salted TEXT:%u:%s\n", (unsigned) (lp - line),
|
|
4399 |
- visibleChars(line, (unsigned) (lp - line))));
|
|
4403 |
+ have = (size_t) (lp - line);
|
|
4404 |
+ /*
|
|
4405 |
+ * Scanning the buffer twice is unnecessary. Discard unwanted memory if
|
|
4406 |
+ * the estimate is too-far off.
|
|
4407 |
+ */
|
|
4408 |
+ if ((have * 2) < (size_t) need) {
|
|
4409 |
+ Char *next;
|
|
4410 |
+ scp->data_limit = have + 1;
|
|
4411 |
+ next = realloc(line, scp->data_limit);
|
|
4412 |
+ if (next == NULL) {
|
|
4413 |
+ free(line);
|
|
4414 |
+ scp->data_length = 0;
|
|
4415 |
+ scp->data_limit = 0;
|
|
4416 |
+ }
|
|
4417 |
+ scp->data_buffer = next;
|
|
4418 |
+ }
|
|
4419 |
+ scp->data_length = have;
|
|
4400 | 4420 |
|
4401 |
- scp->data_length = (size_t) (lp - line);
|
|
4421 |
+ TRACE(("Salted TEXT:%u:%s\n", (unsigned) have,
|
|
4422 |
+ visibleChars(scp->data_buffer, (unsigned) have)));
|
|
4402 | 4423 |
}
|
4403 | 4424 |
|
4404 | 4425 |
#if OPT_PASTE64
|
... | ... | @@ -4877,7 +4898,7 @@ _OwnSelection(XtermWidget xw, |
4877 | 4898 |
scp = &(screen->selected_cells[CutBufferToCode(cutbuffer)]);
|
4878 | 4899 |
if (scp->data_length > limit) {
|
4879 | 4900 |
TRACE(("selection too big (%lu bytes), not storing in CUT_BUFFER%d\n",
|
4880 |
- scp->data_length, cutbuffer));
|
|
4901 |
+ (unsigned long) scp->data_length, cutbuffer));
|
|
4881 | 4902 |
xtermWarning("selection too big (%lu bytes), not storing in CUT_BUFFER%d\n",
|
4882 | 4903 |
(unsigned long) scp->data_length, cutbuffer);
|
4883 | 4904 |
} else {
|
... | ... | @@ -4933,8 +4954,8 @@ _OwnSelection(XtermWidget xw, |
4933 | 4954 |
SelectionDone);
|
4934 | 4955 |
}
|
4935 | 4956 |
}
|
4936 |
- TRACE(("... _OwnSelection used length %ld value %s\n",
|
|
4937 |
- scp->data_length,
|
|
4957 |
+ TRACE(("... _OwnSelection used length %lu value %s\n",
|
|
4958 |
+ (unsigned long) scp->data_length,
|
|
4938 | 4959 |
visibleChars(scp->data_buffer,
|
4939 | 4960 |
(unsigned) scp->data_length)));
|
4940 | 4961 |
}
|
1 |
-/* $XTermId: charproc.c,v 1.1822 2021/02/02 00:11:06 tom Exp $ */
|
|
1 |
+/* $XTermId: charproc.c,v 1.1825 2021/02/10 00:49:52 tom Exp $ */
|
|
2 | 2 |
|
3 | 3 |
/*
|
4 | 4 |
* Copyright 1999-2020,2021 by Thomas E. Dickey
|
... | ... | @@ -2662,7 +2662,9 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) |
2662 | 2662 |
|
2663 | 2663 |
case CASE_ENQ:
|
2664 | 2664 |
TRACE(("CASE_ENQ - answerback\n"));
|
2665 |
- if (sp->check_recur == 0) {
|
|
2665 |
+ if (((xw->keyboard.flags & MODE_SRM) == 0)
|
|
2666 |
+ ? (sp->check_recur == 0)
|
|
2667 |
+ : (sp->check_recur <= 1)) {
|
|
2666 | 2668 |
for (count = 0; screen->answer_back[count] != 0; count++)
|
2667 | 2669 |
unparseputc(xw, screen->answer_back[count]);
|
2668 | 2670 |
unparse_end(xw);
|
... | ... | @@ -3514,7 +3516,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) |
3514 | 3516 |
});
|
3515 | 3517 |
break;
|
3516 | 3518 |
default:
|
3517 |
- skip += NPARAM;
|
|
3519 |
+ /* later: skip += NPARAM; */
|
|
3518 | 3520 |
break;
|
3519 | 3521 |
}
|
3520 | 3522 |
}
|
... | ... | @@ -7858,7 +7860,7 @@ unparseseq(XtermWidget xw, ANSI *ap) |
7858 | 7860 |
unparseputc(xw, ap->a_param[i]);
|
7859 | 7861 |
break;
|
7860 | 7862 |
default:
|
7861 |
- unparseputn(xw, (unsigned) ap->a_param[i]);
|
|
7863 |
+ unparseputn(xw, (unsigned) (UParm) ap->a_param[i]);
|
|
7862 | 7864 |
break;
|
7863 | 7865 |
}
|
7864 | 7866 |
}
|
1 |
-/* $XTermId: main.c,v 1.870 2021/02/02 00:20:59 tom Exp $ */
|
|
1 |
+/* $XTermId: main.c,v 1.872 2021/02/10 00:33:22 tom Exp $ */
|
|
2 | 2 |
|
3 | 3 |
/*
|
4 | 4 |
* Copyright 2002-2020,2021 by Thomas E. Dickey
|
... | ... | @@ -110,6 +110,12 @@ |
110 | 110 |
#include <X11/XawPlus/Form.h>
|
111 | 111 |
#endif
|
112 | 112 |
|
113 |
+#else
|
|
114 |
+ |
|
115 |
+#if defined(HAVE_LIB_XAW3DXFT)
|
|
116 |
+#include <X11/Xaw3dxft/Xaw3dXft.h>
|
|
117 |
+#endif
|
|
118 |
+ |
|
113 | 119 |
#endif /* OPT_TOOLBAR */
|
114 | 120 |
|
115 | 121 |
#include <pwd.h>
|
... | ... | @@ -3493,7 +3499,7 @@ findValidShell(const char *haystack, const char *needle) |
3493 | 3499 |
|
3494 | 3500 |
TRACE(("findValidShell:\n%s\n", NonNull(haystack)));
|
3495 | 3501 |
|
3496 |
- for (s = t = haystack; (s != 0) && (*s != '\0'); s = t) {
|
|
3502 |
+ for (s = haystack; (s != 0) && (*s != '\0'); s = t) {
|
|
3497 | 3503 |
++count;
|
3498 | 3504 |
if ((t = strchr(s, '\n')) == 0) {
|
3499 | 3505 |
t = s + strlen(s);
|
1 |
-/* $XTermId: misc.c,v 1.966 2021/01/22 00:49:09 tom Exp $ */
|
|
1 |
+/* $XTermId: misc.c,v 1.968 2021/02/10 00:50:59 tom Exp $ */
|
|
2 | 2 |
|
3 | 3 |
/*
|
4 | 4 |
* Copyright 1999-2020,2021 by Thomas E. Dickey
|
... | ... | @@ -223,12 +223,13 @@ unselectwindow(XtermWidget xw, int flag) |
223 | 223 |
xtermDisplayCursor(xw);
|
224 | 224 |
}
|
225 | 225 |
|
226 |
+ screen->select &= ~flag;
|
|
227 |
+ |
|
226 | 228 |
if (!screen->always_highlight) {
|
227 | 229 |
#if OPT_TEK4014
|
228 | 230 |
if (TEK4014_ACTIVE(xw)) {
|
229 | 231 |
if (!Ttoggled)
|
230 | 232 |
TCursorToggle(tekWidget, TOGGLE);
|
231 |
- screen->select &= ~flag;
|
|
232 | 233 |
if (!Ttoggled)
|
233 | 234 |
TCursorToggle(tekWidget, TOGGLE);
|
234 | 235 |
} else
|
... | ... | @@ -240,7 +241,6 @@ unselectwindow(XtermWidget xw, int flag) |
240 | 241 |
XUnsetICFocus(input->xic);
|
241 | 242 |
#endif
|
242 | 243 |
|
243 |
- screen->select &= ~flag;
|
|
244 | 244 |
if (screen->cursor_state && CursorMoved(screen))
|
245 | 245 |
HideCursor(xw);
|
246 | 246 |
if (screen->cursor_state)
|
... | ... | @@ -4530,7 +4530,7 @@ restore_DECCIR(XtermWidget xw, const char *cp) |
4530 | 4530 |
screen->cur_col = (value - 1);
|
4531 | 4531 |
|
4532 | 4532 |
/* page */
|
4533 |
- if ((value = parse_int_param(&cp)) != 1)
|
|
4533 |
+ if (parse_int_param(&cp) != 1)
|
|
4534 | 4534 |
return;
|
4535 | 4535 |
|
4536 | 4536 |
/* rendition */
|
... | ... | @@ -4565,7 +4565,7 @@ restore_DECCIR(XtermWidget xw, const char *cp) |
4565 | 4565 |
screen->curgr = (Char) value;
|
4566 | 4566 |
|
4567 | 4567 |
/* character-set size */
|
4568 |
- if ((value = parse_chr_param(&cp)) != 0x4f) /* works for xterm */
|
|
4568 |
+ if (parse_chr_param(&cp) != 0x4f) /* works for xterm */
|
|
4569 | 4569 |
return;
|
4570 | 4570 |
|
4571 | 4571 |
/* SCS designators */
|
1 |
+xterm-dev (366) unstable; urgency=low
|
|
2 |
+ |
|
3 |
+ * maintenance updates
|
|
4 |
+ |
|
5 |
+ -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 08 Feb 2021 15:30:49 -0500
|
|
6 |
+ |
|
1 | 7 |
xterm-dev (365) unstable; urgency=low
|
2 | 8 |
|
3 | 9 |
* maintenance updates
|
1 |
-# $XTermId: Makefile,v 1.86 2021/02/03 20:56:34 tom Exp $
|
|
1 |
+# $XTermId: Makefile,v 1.87 2021/02/08 20:30:49 tom Exp $
|
|
2 | 2 |
# $FreeBSD: head/x11/xterm/Makefile 492827 2019-02-13 06:43:36Z ehaupt $
|
3 | 3 |
|
4 | 4 |
# This is adapted from the FreeBSD port, installing as "xterm-dev" with
|
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 |
# and "make makesum".
|
8 | 8 |
|
9 | 9 |
PORTNAME= xterm
|
10 |
-PORTVERSION= 365
|
|
10 |
+PORTVERSION= 366
|
|
11 | 11 |
CATEGORIES= x11
|
12 | 12 |
MASTER_SITES= ftp://ftp.invisible-island.net/xterm/:src1 \
|
13 | 13 |
https://invisible-mirror.net/archives/xterm/:src1
|
1 | 1 |
# $NetBSD: Makefile,v 1.117 2018/03/12 11:18:00 wiz Exp $
|
2 | 2 |
|
3 |
-DISTNAME= xterm-365
|
|
3 |
+DISTNAME= xterm-366
|
|
4 | 4 |
PKGREVISION= 1
|
5 | 5 |
CATEGORIES= x11
|
6 | 6 |
MASTER_SITES= ftp://ftp.invisible-island.net/xterm/
|
1 |
-# $XTermId: xterm.spec,v 1.140 2021/02/03 20:56:34 tom Exp $
|
|
1 |
+# $XTermId: xterm.spec,v 1.141 2021/02/08 20:30:49 tom Exp $
|
|
2 | 2 |
Summary: X terminal emulator (development version)
|
3 | 3 |
%global my_middle xterm
|
4 | 4 |
%global my_suffix -dev
|
5 | 5 |
%global fullname %{my_middle}%{my_suffix}
|
6 | 6 |
%global my_class XTermDev
|
7 | 7 |
Name: %{fullname}
|
8 |
-Version: 365
|
|
8 |
+Version: 366
|
|
9 | 9 |
Release: 1
|
10 | 10 |
License: X11
|
11 | 11 |
Group: User Interface/X
|
1 |
-/* $XTermId: version.h,v 1.508 2021/02/03 20:56:34 tom Exp $ */
|
|
1 |
+/* $XTermId: version.h,v 1.510 2021/02/10 22:28:30 tom Exp $ */
|
|
2 | 2 |
|
3 | 3 |
/*
|
4 | 4 |
* Copyright 1998-2020,2021 by Thomas E. Dickey
|
... | ... | @@ -38,8 +38,8 @@ |
38 | 38 |
* version of X to which this version of xterm has been built. The resulting
|
39 | 39 |
* number in parentheses is my patch number (Thomas E. Dickey).
|
40 | 40 |
*/
|
41 |
-#define XTERM_PATCH 365
|
|
42 |
-#define XTERM_DATE 2021-02-03
|
|
41 |
+#define XTERM_PATCH 366
|
|
42 |
+#define XTERM_DATE 2021-02-10
|
|
43 | 43 |
|
44 | 44 |
#ifndef __vendorversion__
|
45 | 45 |
#define __vendorversion__ "XTerm"
|
... | ... | @@ -35,7 +35,7 @@ |
35 | 35 |
<keyword>terminal</keyword>
|
36 | 36 |
</keywords>
|
37 | 37 |
<releases>
|
38 |
- <release version="365" date="2021-02-03"/>
|
|
38 |
+ <release version="366" date="2021-02-10"/>
|
|
39 | 39 |
</releases>
|
40 | 40 |
<url type="homepage">https://invisible-island.net/xterm/</url>
|
41 | 41 |
<update_contact>dickey@invisible-island.net</update_contact>
|
... | ... | @@ -30,7 +30,7 @@ |
30 | 30 |
* sale, use or other dealings in this Software without prior written *
|
31 | 31 |
* authorization. *
|
32 | 32 |
*****************************************************************************
|
33 |
- $XTermId: xterm.log.html,v 1.2305 2021/02/04 01:18:15 tom Exp $
|
|
33 |
+ $XTermId: xterm.log.html,v 1.2313 2021/02/10 22:27:30 tom Exp $
|
|
34 | 34 |
-->
|
35 | 35 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
36 | 36 |
<html>
|
... | ... | @@ -70,6 +70,8 @@ |
70 | 70 |
CHANGELOG</a>).</p>
|
71 | 71 |
|
72 | 72 |
<ul>
|
73 |
+ <li><a href="">Patch #366 - 2021/02/10</a></li>
|
|
74 |
+ |
|
73 | 75 |
<li><a href="">Patch #365 - 2021/02/03</a></li>
|
74 | 76 |
|
75 | 77 |
<li><a href="">Patch #364 - 2021/02/02</a></li>
|
... | ... | @@ -1008,6 +1010,35 @@ |
1008 | 1010 |
<li><a href="">Patch #1 - 1996/1/6</a></li>
|
1009 | 1011 |
</ul>
|
1010 | 1012 |
|
1013 |
+ <h1><a name="xterm_366" id="xterm_366">Patch #366 -
|
|
1014 |
+ 2021/02/10</a></h1>
|
|
1015 |
+ |
|
1016 |
+ <ul>
|
|
1017 |
+ <li>correct a compiler-warning fix in <a href="">
|
|
1018 |
+ "#xterm_352">patch #352</a> which allowed sign-extension of
|
|
1019 |
+ coordinate values (report by "CismonX").</li>
|
|
1020 |
+ |
|
1021 |
+ <li>correct upper-limit for selection buffer, accounting for
|
|
1022 |
+ combining characters (report/testcase by Tavis Ormandy).</li>
|
|
1023 |
+ |
|
1024 |
+ <li>with <code>alwaysHighlight</code> true, xterm does not
|
|
1025 |
+ properly track focus. The <em>screen->select</em>
|
|
1026 |
+ <code>FOCUS</code> flag remains always on, which prevents
|
|
1027 |
+ <code>bellIsUrgent</code> from working, as the urgent
|
|
1028 |
+ <code>WM_HINT</code> flag is only set in
|
|
1029 |
+ <code>setXUrgency()</code> when the window is not focused. Fix
|
|
1030 |
+ this by updating <em>screen->select</em> in
|
|
1031 |
+ <code>unselectwindow()</code> regardless of the value of
|
|
1032 |
+ <code>always_highlight</code> (patch by Jiri Bohac).</li>
|
|
1033 |
+ |
|
1034 |
+ <li>improve fix for interaction between SRM and ENQ (report by
|
|
1035 |
+ Grant Taylor).</li>
|
|
1036 |
+ |
|
1037 |
+ <li>build-fix for <code>--with-Xaw3dxft</code>, needed when
|
|
1038 |
+ <code>--with-toolbar</code> is omitted (report by Jimmy Olgeni,
|
|
1039 |
+ Emanuel Haupt).</li>
|
|
1040 |
+ </ul>
|
|
1041 |
+ |
|
1011 | 1042 |
<h1><a name="xterm_365" id="xterm_365">Patch #365 -
|
1012 | 1043 |
2021/02/03</a></h1>
|
1013 | 1044 |
|