On Mon, Aug 11, 2025 at 03:41:05AM -0400, Thomas Dickey wrote: > On Mon, Aug 11, 2025 at 02:56:55AM +0200, Vincent Lefevre wrote: > .... > given all of the above, I'll probably improve the documentation and close > this one. both are good examples of "soapboxing", elevating the severity > of garden-variety bugs. I reviewed the examples given (and your comments), and don't see any issues with #399 and later. The comments indicate some confusion on your part about how select/paste work, so I'll expand the manpage to try to address that. The specific fix made for #399 was in xterm-398d, in case you find someone willing to make a backport, since it does address a regression since the previous stable version of Debian. -- Thomas E. Dickey <dickey@invisible-island.net> https://invisible-island.net
# https://invisible-island.net/archives/xterm/patches/temp/xterm-398d.patch.gz
# patch by Thomas E. Dickey <dickey@invisible-island.net>
# created Tue Aug 12 08:20:23 UTC 2025
# ------------------------------------------------------------------------------
# Tekproc.c | 6 +++---
# charproc.c | 23 ++++++++++++++---------
# vttests/palettes.pl | 14 +++++++++-----
# xterm.log.html | 5 ++++-
# 4 files changed, 30 insertions(+), 18 deletions(-)
# ------------------------------------------------------------------------------
Index: Tekproc.c
--- xterm-398c/Tekproc.c 2024-12-01 20:21:19.000000000 +0000
+++ xterm-398d/Tekproc.c 2025-05-18 20:50:21.000000000 +0000
@@ -1,7 +1,7 @@
-/* $XTermId: Tekproc.c,v 1.254 2024/12/01 20:21:19 tom Exp $ */
+/* $XTermId: Tekproc.c,v 1.255 2025/05/18 20:50:21 tom Exp $ */
/*
- * Copyright 2001-2022,2024 by Thomas E. Dickey
+ * Copyright 2001-2024,2025 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -1628,7 +1628,7 @@
tw->core.width, tw->core.height,
BorderWidth(tw),
(int) tw->core.depth,
- InputOutput, CopyFromParent,
+ InputOutput, (void *) CopyFromParent,
((*valuemaskp) | CWBackPixel | CWWinGravity),
values);
Index: charproc.c
--- xterm-398c/charproc.c 2025-04-20 22:08:07.000000000 +0000
+++ xterm-398d/charproc.c 2025-05-18 20:50:21.000000000 +0000
@@ -1,4 +1,4 @@
-/* $XTermId: charproc.c,v 1.2071 2025/04/20 22:08:07 tom Exp $ */
+/* $XTermId: charproc.c,v 1.2073 2025/05/18 20:50:21 tom Exp $ */
/*
* Copyright 1999-2024,2025 by Thomas E. Dickey
@@ -3323,14 +3323,19 @@
* ignore it when it was translated from UTF-8, unless the parse-state
* tells us that a C1 would be legal.
*/
+ if (screen->wide_chars
+ && (c >= 128 && c < 160)) {
#if OPT_C1_PRINT
- if (!screen->c1_printable)
+ if (screen->c1_printable) {
+ sp->nextstate = CASE_PRINT;
+ TRACE(("allowC1Printable %04X %s ->%s\n",
+ c, which_table(sp->parsestate),
+ visibleVTparse(sp->nextstate)));
+ } else
#endif
- if (screen->wide_chars
- && (c >= 128 && c < 160)) {
- if (sp->parsestate != ansi_table)
- sp->nextstate = CASE_IGNORE;
- }
+ if (sp->parsestate != ansi_table)
+ sp->nextstate = CASE_IGNORE;
+ }
/*
* If this character is a different width than the last one, put the
@@ -12714,7 +12719,7 @@
xw->core.x, xw->core.y,
xw->core.width, xw->core.height, BorderWidth(xw),
(int) xw->core.depth,
- InputOutput, CopyFromParent,
+ InputOutput, (void *) CopyFromParent,
*valuemask | CWBitGravity, values);
#if USE_DOUBLE_BUFFER
if (allocateDbe(xw, &(screen->fullVwin))) {
@@ -12797,7 +12802,7 @@
screen->iconVwin.fullheight,
xw->misc.icon_border_width,
(int) xw->core.depth,
- InputOutput, CopyFromParent,
+ InputOutput, (void *) CopyFromParent,
*valuemask | CWBitGravity | CWBorderPixel,
values);
#if USE_DOUBLE_BUFFER
Index: vttests/palettes.pl
--- xterm-398c/vttests/palettes.pl 2020-07-01 20:13:58.000000000 +0000
+++ xterm-398d/vttests/palettes.pl 2023-08-28 19:56:54.000000000 +0000
@@ -1,9 +1,9 @@
#!/usr/bin/env perl
-# $XTermId: palettes.pl,v 1.26 2020/07/01 20:13:58 tom Exp $
+# $XTermId: palettes.pl,v 1.27 2023/08/28 19:56:54 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
-# Copyright 2020 by Thomas E. Dickey
+# Copyright 2020,2023 by Thomas E. Dickey
#
# All Rights Reserved
#
@@ -49,7 +49,7 @@
$| = 1;
our (
- $opt_a, $opt_b, $opt_d, $opt_g, $opt_i,
+ $opt_a, $opt_b, $opt_d, $opt_g, $opt_i, $opt_p,
$opt_s, $opt_T, $opt_v, $opt_x, $opt_8
);
@@ -1003,7 +1003,10 @@
my @themes = @{ $_[0] };
for my $n ( 0 .. $#themes ) {
&show_colors( $themes[$n] );
- sleep $opt_s if ( ( $n != $#themes ) and &isatty );
+ printf STDERR "\033[11i" if ( &isatty and $opt_p );
+ if ( ( $n != $#themes ) and &isatty ) {
+ sleep $opt_s;
+ }
}
}
@@ -1018,6 +1021,7 @@
-d FILE dump palette to file after setting colors
-g ask terminal for its default background color
-i assume terminal colors are reversed, i.e., white-on-black
+ -p print screen to SVG after each update
-s SECS sleep this long between changes
-T TERM override "xterm-256color" for TPUT
-x TPUT use TPUT program rather than hardcoded escapes
@@ -1034,7 +1038,7 @@
}
$Getopt::Std::STANDARD_HELP_VERSION = 1;
-&getopts('abd:gis:T:x:v8') || &main::HELP_MESSAGE;
+&getopts('abd:gips:T:x:v8') || &main::HELP_MESSAGE;
&main::HELP_MESSAGE if ( $opt_a and ( $#ARGV >= 0 ) );
Index: xterm.log.html
--- xterm-398c/xterm.log.html 2025-05-17 00:58:05.000000000 +0000
+++ xterm-398d/xterm.log.html 2025-05-18 20:24:00.000000000 +0000
@@ -30,7 +30,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
*****************************************************************************
- $XTermId: xterm.log.html,v 1.2693 2025/05/17 00:58:05 tom Exp $
+ $XTermId: xterm.log.html,v 1.2694 2025/05/18 20:24:00 tom Exp $
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
@@ -1079,6 +1079,9 @@
<h1><a name="xterm_dev" id="xterm_dev">Development</a></h1>
<ul>
+ <li>further improve integration between UTF-8 and
+ <tt>allowC1Printable</tt> (report by Matthieu Herrb).</li>
+
<li>modify one of the missing-character checks to prefer Xft's
check over the check for missing line-drawing characters
(Debian #1084794).</li>
Attachment:
signature.asc
Description: PGP signature