Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xterm for openSUSE:Factory checked in at 2023-11-14 21:41:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xterm (Old) and /work/SRC/openSUSE:Factory/.xterm.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xterm" Tue Nov 14 21:41:40 2023 rev:143 rq:1125581 version:388 Changes: -------- --- /work/SRC/openSUSE:Factory/xterm/xterm.changes 2023-10-17 20:22:44.726549992 +0200 +++ /work/SRC/openSUSE:Factory/.xterm.new.17445/xterm.changes 2023-11-14 21:41:45.297782330 +0100 @@ -1,0 +2,11 @@ +Sun Nov 12 09:47:15 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 388: + * improve disallowPasteControls by adding a category for the + special characters known to stty (prompted by discussion + with David Leadbeater). + * amend support of DECAUPSS, undoing change to initialization of + G2/G3 so that pasting of GR characters work properly + * update config.guess, config.sub + +------------------------------------------------------------------- Old: ---- xterm-387.tgz xterm-387.tgz.asc New: ---- xterm-388.tgz xterm-388.tgz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xterm.spec ++++++ --- /var/tmp/diff_new_pack.f0N4p0/_old 2023-11-14 21:41:46.297819348 +0100 +++ /var/tmp/diff_new_pack.f0N4p0/_new 2023-11-14 21:41:46.297819348 +0100 @@ -18,7 +18,7 @@ %define splitbin 0%{?suse_version} >= 1300 Name: xterm -Version: 387 +Version: 388 Release: 0 Summary: The basic X terminal program License: MIT ++++++ xterm-387.tgz -> xterm-388.tgz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/MANIFEST new/xterm-388/MANIFEST --- old/xterm-387/MANIFEST 2023-10-11 02:02:59.000000000 +0200 +++ new/xterm-388/MANIFEST 2023-10-20 22:43:09.000000000 +0200 @@ -1,4 +1,4 @@ -MANIFEST for xterm, version xterm-387 +MANIFEST for xterm, version xterm-388 -------------------------------------------------------------------------------- MANIFEST this file 256colres.h resource-definitions for 256-color mode diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/NEWS new/xterm-388/NEWS --- old/xterm-387/NEWS 2023-10-16 01:55:47.000000000 +0200 +++ new/xterm-388/NEWS 2023-10-23 00:27:20.000000000 +0200 @@ -1,10 +1,13 @@ The NEWS file was generated from xterm.log.html, which serves as the changelog for xterm. -------------------------------------------------------------------------------- - Patch #387 - 2023/10/15 + Patch #388 - 2023/10/22 - * add DECRQUPSS and DECAUPSS. - * add DECRQDE (report by Jake Hamby). - * correct indexing expression in title-stack, from patch #385 changes - (report by Brian Lindholm). + * improve disallowPasteControls by adding a category for the special + characters known to stty (prompted by discussion with David + Leadbeater). + * amend support of DECAUPSS, undoing change to initialization of + G2/G3 so that pasting of GR characters works properly + (report/analysis by Petri Kaukasoina). + * update config.guess, config.sub diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/button.c new/xterm-388/button.c --- old/xterm-387/button.c 2023-06-13 23:44:29.000000000 +0200 +++ new/xterm-388/button.c 2023-10-22 20:28:34.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: button.c,v 1.655 2023/06/13 21:44:29 tom Exp $ */ +/* $XTermId: button.c,v 1.657 2023/10/22 18:28:34 tom Exp $ */ /* * Copyright 1999-2022,2023 by Thomas E. Dickey @@ -77,6 +77,7 @@ #include <menu.h> #include <charclass.h> #include <xstrings.h> +#include <xterm_io.h> #if OPT_SELECT_REGEX #if defined(HAVE_PCRE2POSIX_H) @@ -2547,11 +2548,82 @@ dst = strlen(value); } else { size_t src = 0; + Boolean *disallowed = screen->disallow_paste_ops; + TERMIO_STRUCT data; + char current_chars[epLAST]; + + if (disallowed[epSTTY] && ttyGetAttr(screen->respond, &data) == 0) { + int n; + int disabled = xtermDisabledChar(); + + TRACE(("disallow(STTY):")); + memcpy(current_chars, disallowed, sizeof(current_chars)); + + for (n = 0; n < NCCS; ++n) { + PasteControls nc = (data.c_cc[n] < 32 + ? data.c_cc[n] + : (data.c_cc[n] == 127 + ? epDEL + : epLAST)); + if (nc == epNUL || nc == epLAST) + continue; + if (CharOf(data.c_cc[n]) == CharOf(disabled)) + continue; + if ((n == VMIN || n == VTIME) && !(data.c_lflag & ICANON)) + continue; + switch (n) { + /* POSIX */ + case VEOF: + case VEOL: + case VERASE: + case VINTR: + case VKILL: + case VQUIT: + case VSTART: + case VSTOP: + case VSUSP: + /* system-dependent */ +#ifdef VDISCARD + case VDISCARD: +#endif +#ifdef VDSUSP + case VDSUSP: +#endif +#ifdef VEOL2 + case VEOL2: +#endif +#ifdef VLNEXT + case VLNEXT: +#endif +#ifdef VREPRINT + case VREPRINT: +#endif +#ifdef VSTATUS + case VSTATUS: +#endif +#ifdef VSWTC + case VSWTC: /* System V SWTCH */ +#endif +#ifdef VWERASE + case VWERASE: +#endif + break; + default: + continue; + } + if (nc != epLAST) { + TRACE((" \\%03o", data.c_cc[n])); + current_chars[nc] = 1; + } + } + TRACE(("\n")); + disallowed = current_chars; + } while ((value[dst] = value[src]) != '\0') { int ch = CharOf(value[src++]); #define ReplacePaste(n) \ - if (screen->disallow_paste_ops[n]) \ + if (disallowed[n]) \ value[dst] = ' ' if (ch < 32) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/charproc.c new/xterm-388/charproc.c --- old/xterm-387/charproc.c 2023-10-14 16:27:43.000000000 +0200 +++ new/xterm-388/charproc.c 2023-10-22 12:26:53.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: charproc.c,v 1.1979 2023/10/14 14:27:43 tom Exp $ */ +/* $XTermId: charproc.c,v 1.1981 2023/10/22 10:26:53 tom Exp $ */ /* * Copyright 1999-2022,2023 by Thomas E. Dickey @@ -1257,10 +1257,15 @@ TRACE(("resetCharsets\n")); + /* + * The assignments for G2/G3 to ASCII differ from the documented DEC + * terminal, because xterm also checks GR to decide whether or not to + * handle non-Unicode character sets, e.g., NRCS. + */ initCharset(screen, 0, nrc_ASCII); initCharset(screen, 1, nrc_ASCII); - initCharset(screen, 2, dft_upss); - initCharset(screen, 3, dft_upss); + initCharset(screen, 2, nrc_ASCII); + initCharset(screen, 3, nrc_ASCII); initCharset(screen, 4, dft_upss); screen->curgl = 0; /* G0 => GL. */ @@ -9856,6 +9861,7 @@ ,DATA2(NL, LF) ,DATA(C0) ,DATA(DEL) + ,DATA(STTY) ,DATA_END }; #undef DATA diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/config.guess new/xterm-388/config.guess --- old/xterm-387/config.guess 2023-07-20 18:40:00.000000000 +0200 +++ new/xterm-388/config.guess 2023-08-22 10:00:00.000000000 +0200 @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2023-07-20' +timestamp='2023-08-22' # 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 @@ -155,6 +155,9 @@ set_cc_for_build cat <<-EOF > "$dummy.c" + #if defined(__ANDROID__) + LIBC=android + #else #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc @@ -169,6 +172,7 @@ LIBC=musl #endif #endif + #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" @@ -904,7 +908,7 @@ fi ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` + UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/config.sub new/xterm-388/config.sub --- old/xterm-387/config.sub 2023-07-31 12:00:55.000000000 +0200 +++ new/xterm-388/config.sub 2023-09-16 00:56:33.000000000 +0200 @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2023-07-31' +timestamp='2023-09-15' # 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 @@ -1181,7 +1181,7 @@ case $cpu in 1750a | 580 \ | a29k \ - | aarch64 | aarch64_be \ + | aarch64 | aarch64_be | aarch64c | arm64ec \ | abacus \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ @@ -1200,6 +1200,7 @@ | d10v | d30v | dlx | dsp16xx \ | e2k | elxsi | epiphany \ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | javascript \ | h8300 | h8500 \ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ @@ -1284,11 +1285,12 @@ # Decode manufacturer-specific aliases for certain operating systems. -if test x$basic_os != x +if test x"$basic_os" != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. +obj= case $basic_os in gnu/linux*) kernel=linux @@ -1488,10 +1490,16 @@ os=eabi ;; *) - os=elf + os= + obj=elf ;; esac ;; + aout* | coff* | elf* | pe*) + # These are machine code file formats, not OSes + obj=$os + os= + ;; *) # No normalization, but not necessarily accepted, that comes below. ;; @@ -1510,12 +1518,15 @@ # system, and we'll never get to this point. kernel= +obj= case $cpu-$vendor in score-*) - os=elf + os= + obj=elf ;; spu-*) - os=elf + os= + obj=elf ;; *-acorn) os=riscix1.2 @@ -1525,28 +1536,35 @@ os=gnu ;; arm*-semi) - os=aout + os= + obj=aout ;; c4x-* | tic4x-*) - os=coff + os= + obj=coff ;; c8051-*) - os=elf + os= + obj=elf ;; clipper-intergraph) os=clix ;; hexagon-*) - os=elf + os= + obj=elf ;; tic54x-*) - os=coff + os= + obj=coff ;; tic55x-*) - os=coff + os= + obj=coff ;; tic6x-*) - os=coff + os= + obj=coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1568,19 +1586,24 @@ os=sunos3 ;; m68*-cisco) - os=aout + os= + obj=aout ;; mep-*) - os=elf + os= + obj=elf ;; mips*-cisco) - os=elf + os= + obj=elf ;; mips*-*) - os=elf + os= + obj=elf ;; or32-*) - os=coff + os= + obj=coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=sysv3 @@ -1589,7 +1612,8 @@ os=sunos4.1.1 ;; pru-*) - os=elf + os= + obj=elf ;; *-be) os=beos @@ -1670,10 +1694,12 @@ os=uxpv ;; *-rom68k) - os=coff + os= + obj=coff ;; *-*bug) - os=coff + os= + obj=coff ;; *-apple) os=macos @@ -1691,7 +1717,8 @@ fi -# Now, validate our (potentially fixed-up) OS. +# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). + case $os in # Sometimes we do "kernel-libc", so those need to count as OSes. musl* | newlib* | relibc* | uclibc*) @@ -1702,6 +1729,9 @@ # VxWorks passes extra cpu info in the 4th filed. simlinux | simwindows | spe) ;; + # See `case $cpu-$os` validation below + ghcjs) + ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. @@ -1719,11 +1749,11 @@ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | bosx* | nextstep* | cxux* | oabi* \ + | ptx* | ecoff* | winnt* | domain* | vsta* \ | udi* | lites* | ieee* | go32* | aux* | hcos* \ | chorusrdb* | cegcc* | glidix* | serenity* \ - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | cygwin* | msys* | moss* | proelf* | rtems* \ | midipix* | mingw32* | mingw64* | mint* \ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ | interix* | uwin* | mks* | rhapsody* | darwin* \ @@ -1747,60 +1777,95 @@ kernel* | msvc* ) # Restricted further below ;; + '') + if test x"$obj" = x + then + echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 + fi + ;; *) echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 exit 1 ;; esac +case $obj in + aout* | coff* | elf* | pe*) + ;; + '') + # empty is fine + ;; + *) + echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 + exit 1 + ;; +esac + +# Here we handle the constraint that a (synthetic) cpu and os are +# valid only in combination with each other and nowhere else. +case $cpu-$os in + # The "javascript-unknown-ghcjs" triple is used by GHC; we + # accept it here in order to tolerate that, but reject any + # variations. + javascript-ghcjs) + ;; + javascript-* | *-ghcjs) + echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 + exit 1 + ;; +esac + # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. -case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ - | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) +case $kernel-$os-$obj in + linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \ + | linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- ) ;; - uclinux-uclibc* ) + uclinux-uclibc*- ) ;; - managarm-mlibc* | managarm-kernel* ) + managarm-mlibc*- | managarm-kernel*- ) ;; - windows*-gnu* | windows*-msvc*) + windows*-gnu*- | windows*-msvc*-) ;; - -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) + -dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 exit 1 ;; - -kernel* ) + -kernel*- ) echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 exit 1 ;; - *-kernel* ) + *-kernel*- ) echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 exit 1 ;; - *-msvc* ) + *-msvc*- ) echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 exit 1 ;; - kfreebsd*-gnu* | kopensolaris*-gnu*) + kfreebsd*-gnu*- | kopensolaris*-gnu*-) ;; - vxworks-simlinux | vxworks-simwindows | vxworks-spe) + vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ;; - nto-qnx*) + nto-qnx*-) ;; - os2-emx) + os2-emx-) ;; - *-eabi* | *-gnueabi*) + *-eabi*- | *-gnueabi*-) ;; - none-coff* | none-elf*) + none--*) # None (no kernel, i.e. freestanding / bare metal), - # can be paired with an output format "OS" + # can be paired with an machine code file format ;; - -*) + -*-) # Blank kernel with real OS is always fine. ;; - *-*) + --*) + # Blank kernel and OS with real machine code file format is always fine. + ;; + *-*-*) echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 exit 1 ;; @@ -1884,7 +1949,7 @@ ;; esac -echo "$cpu-$vendor-${kernel:+$kernel-}$os" +echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" exit # Local variables: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/main.c new/xterm-388/main.c --- old/xterm-387/main.c 2023-09-22 09:46:08.000000000 +0200 +++ new/xterm-388/main.c 2023-10-22 19:28:06.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: main.c,v 1.907 2023/09/22 07:46:08 tom Exp $ */ +/* $XTermId: main.c,v 1.909 2023/10/22 17:28:06 tom Exp $ */ /* * Copyright 2002-2022,2023 by Thomas E. Dickey @@ -596,18 +596,6 @@ #define CWERASE CONTROL('W') #endif -#ifdef USE_ANY_SYSV_TERMIO -#define TERMIO_STRUCT struct termio -#define ttySetAttr(fd, datap) ioctl(fd, TCSETA, datap) -#define ttyGetAttr(fd, datap) ioctl(fd, TCGETA, datap) -#define ttyFlush(fd) ioctl(fd, TCFLSH, 1) -#elif defined(USE_POSIX_TERMIOS) -#define TERMIO_STRUCT struct termios -#define ttySetAttr(fd, datap) tcsetattr(fd, TCSANOW, datap) -#define ttyGetAttr(fd, datap) tcgetattr(fd, datap) -#define ttyFlush(fd) tcflush(fd, TCOFLUSH) -#endif /* USE_ANY_SYSV_TERMIO */ - #ifndef VMS #ifdef TERMIO_STRUCT /* The following structures are initialized in main() in order @@ -1421,14 +1409,37 @@ { NULL, NULL }}; /* *INDENT-ON* */ -static const char *const message[] = +static const char *const help_message[] = { "Fonts should be fixed width and, if both normal and bold are specified, should", "have the same size. If only a normal font is specified, it will be used for", "both normal and bold text (by doing overstriking). The -e option, if given,", "must appear at the end of the command line, otherwise the user's default shell", "will be started. Options that start with a plus sign (+) restore the default.", - NULL}; + NULL +}; + +int +xtermDisabledChar(void) +{ + int value = -1; +#if defined(_POSIX_VDISABLE) && defined(HAVE_UNISTD_H) + value = _POSIX_VDISABLE; +#endif +#if defined(_PC_VDISABLE) + if (value == -1) { + value = (int) fpathconf(0, _PC_VDISABLE); + if (value == -1) { + if (errno == 0) + value = 0377; + } + } +#elif defined(VDISABLE) + if (value == -1) + value = VDISABLE; +#endif + return value; +} /* * Decode a key-definition. This combines the termcap and ttyModes, for @@ -1449,23 +1460,7 @@ break; case '-': if (!termcap) { - errno = 0; -#if defined(_POSIX_VDISABLE) && defined(HAVE_UNISTD_H) - value = _POSIX_VDISABLE; -#endif -#if defined(_PC_VDISABLE) - if (value == -1) { - value = (int) fpathconf(0, _PC_VDISABLE); - if (value == -1) { - if (errno != 0) - break; /* skip this (error) */ - value = 0377; - } - } -#elif defined(VDISABLE) - if (value == -1) - value = VDISABLE; -#endif + value = xtermDisabledChar(); break; } /* FALLTHRU */ @@ -1750,7 +1745,7 @@ } putchar('\n'); - for (cpp = message; *cpp; cpp++) + for (cpp = help_message; *cpp; cpp++) puts(*cpp); putchar('\n'); fflush(stdout); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/main.h new/xterm-388/main.h --- old/xterm-387/main.h 2023-10-08 23:18:54.000000000 +0200 +++ new/xterm-388/main.h 2023-10-22 12:34:12.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: main.h,v 1.84 2023/10/08 21:18:54 tom Exp $ */ +/* $XTermId: main.h,v 1.85 2023/10/22 10:34:12 tom Exp $ */ /* * Copyright 2000-2022,2023 by Thomas E. Dickey @@ -132,7 +132,7 @@ #endif #ifndef DEF_DISALLOWED_PASTE_CONTROLS -#define DEF_DISALLOWED_PASTE_CONTROLS "BS,DEL,ENQ,EOT,ESC,NUL" +#define DEF_DISALLOWED_PASTE_CONTROLS "BS,DEL,ENQ,EOT,ESC,NUL,STTY" #endif #ifndef DEF_DISALLOWED_TCAP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/package/debian/changelog new/xterm-388/package/debian/changelog --- old/xterm-387/package/debian/changelog 2023-10-11 02:02:59.000000000 +0200 +++ new/xterm-388/package/debian/changelog 2023-10-20 22:43:09.000000000 +0200 @@ -1,3 +1,9 @@ +xterm-dev (388) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <dic...@invisible-island.net> Fri, 20 Oct 2023 16:43:09 -0400 + xterm-dev (387) unstable; urgency=low * maintenance updates diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/package/freebsd/Makefile new/xterm-388/package/freebsd/Makefile --- old/xterm-387/package/freebsd/Makefile 2023-10-11 02:02:59.000000000 +0200 +++ new/xterm-388/package/freebsd/Makefile 2023-10-20 22:43:09.000000000 +0200 @@ -1,4 +1,4 @@ -# $XTermId: Makefile,v 1.108 2023/10/11 00:02:59 tom Exp $ +# $XTermId: Makefile,v 1.109 2023/10/20 20:43:09 tom Exp $ # $FreeBSD: head/x11/xterm/Makefile 492827 2019-02-13 06:43:36Z ehaupt $ # This is adapted from the FreeBSD port, installing as "xterm-dev" with @@ -7,7 +7,7 @@ # and "make makesum". PORTNAME= xterm -PORTVERSION= 387 +PORTVERSION= 388 CATEGORIES= x11 MASTER_SITES= ftp://ftp.invisible-island.net/xterm/:src1 \ https://invisible-mirror.net/archives/xterm/:src1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/package/pkgsrc/Makefile new/xterm-388/package/pkgsrc/Makefile --- old/xterm-387/package/pkgsrc/Makefile 2023-10-11 02:02:59.000000000 +0200 +++ new/xterm-388/package/pkgsrc/Makefile 2023-10-20 22:43:09.000000000 +0200 @@ -1,6 +1,6 @@ # $NetBSD: Makefile,v 1.117 2018/03/12 11:18:00 wiz Exp $ -DISTNAME= xterm-387 +DISTNAME= xterm-388 PKGREVISION= 1 CATEGORIES= x11 MASTER_SITES= ftp://ftp.invisible-island.net/xterm/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/package/xterm.spec new/xterm-388/package/xterm.spec --- old/xterm-387/package/xterm.spec 2023-10-11 02:02:59.000000000 +0200 +++ new/xterm-388/package/xterm.spec 2023-10-20 22:43:09.000000000 +0200 @@ -1,11 +1,11 @@ -# $XTermId: xterm.spec,v 1.166 2023/10/11 00:02:59 tom Exp $ +# $XTermId: xterm.spec,v 1.167 2023/10/20 20:43: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: 387 +Version: 388 Release: 1 License: X11 Group: User Interface/X diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/ptyx.h new/xterm-388/ptyx.h --- old/xterm-387/ptyx.h 2023-10-14 02:07:30.000000000 +0200 +++ new/xterm-388/ptyx.h 2023-10-22 12:26:34.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: ptyx.h,v 1.1102 2023/10/14 00:07:30 tom Exp $ */ +/* $XTermId: ptyx.h,v 1.1103 2023/10/22 10:26:34 tom Exp $ */ /* * Copyright 1999-2022,2023 by Thomas E. Dickey @@ -1313,6 +1313,7 @@ /* aliases */ , DATA(C0) , DATA(DEL) + , DATA(STTY) #undef DATA , epLAST } PasteControls; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/version.h new/xterm-388/version.h --- old/xterm-387/version.h 2023-10-16 01:54:54.000000000 +0200 +++ new/xterm-388/version.h 2023-10-23 00:26:29.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: version.h,v 1.553 2023/10/15 23:54:54 tom Exp $ */ +/* $XTermId: version.h,v 1.555 2023/10/22 22:26:29 tom Exp $ */ /* * Copyright 1998-2022,2023 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 387 -#define XTERM_DATE 2023-10-15 +#define XTERM_PATCH 388 +#define XTERM_DATE 2023-10-22 #ifndef __vendorversion__ #define __vendorversion__ "XTerm" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/xterm.appdata.xml new/xterm-388/xterm.appdata.xml --- old/xterm-387/xterm.appdata.xml 2023-10-16 01:56:16.000000000 +0200 +++ new/xterm-388/xterm.appdata.xml 2023-10-23 00:26:38.000000000 +0200 @@ -35,7 +35,7 @@ <keyword>terminal</keyword> </keywords> <releases> - <release version="387" date="2023-10-15"/> + <release version="388" date="2023-10-22"/> </releases> <url type="homepage">https://invisible-island.net/xterm/</url> <update_contact>dic...@invisible-island.net</update_contact> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/xterm.h new/xterm-388/xterm.h --- old/xterm-387/xterm.h 2023-10-08 23:02:00.000000000 +0200 +++ new/xterm-388/xterm.h 2023-10-22 19:26:44.000000000 +0200 @@ -1,4 +1,4 @@ -/* $XTermId: xterm.h,v 1.937 2023/10/08 21:02:00 tom Exp $ */ +/* $XTermId: xterm.h,v 1.938 2023/10/22 17:26:44 tom Exp $ */ /* * Copyright 1999-2022,2023 by Thomas E. Dickey @@ -1246,6 +1246,7 @@ #define ENVP_ARG /**/ extern int main (int /* argc */, char ** /* argv */ ENVP_ARG); +extern int xtermDisabledChar(void); extern int GetBytesAvailable (Display * /* dpy */); extern int kill_process_group (int /* pid */, int /* sig */); extern int nonblocking_wait (void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/xterm.log.html new/xterm-388/xterm.log.html --- old/xterm-387/xterm.log.html 2023-10-16 01:55:47.000000000 +0200 +++ new/xterm-388/xterm.log.html 2023-10-23 00:27:20.000000000 +0200 @@ -30,7 +30,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * ***************************************************************************** - $XTermId: xterm.log.html,v 1.2561 2023/10/15 23:55:47 tom Exp $ + $XTermId: xterm.log.html,v 1.2566 2023/10/22 22:27:20 tom Exp $ --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> @@ -70,6 +70,8 @@ CHANGELOG</a>).</p> <ul> + <li><a href="#xterm_388">Patch #388 - 2023/10/22</a></li> + <li><a href="#xterm_387">Patch #387 - 2023/10/15</a></li> <li><a href="#xterm_386">Patch #386 - 2023/10/09</a></li> @@ -1052,6 +1054,21 @@ <li><a href="#xterm_01">Patch #1 - 1996/1/6</a></li> </ul> + <h1><a name="xterm_388" id="xterm_388">Patch #388 - + 2023/10/22</a></h1> + + <ul> + <li>improve <tt>disallowPasteControls</tt> by adding a category + for the special characters known to <tt>stty</tt> (prompted by + discussion with David Leadbeater).</li> + + <li>amend support of <tt>DECAUPSS</tt>, undoing change to + initialization of G2/G3 so that pasting of GR characters works + properly (report/analysis by Petri Kaukasoina).</li> + + <li>update config.guess, config.sub</li> + </ul> + <h1><a name="xterm_387" id="xterm_387">Patch #387 - 2023/10/15</a></h1> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/xterm.man new/xterm-388/xterm.man --- old/xterm-387/xterm.man 2023-10-09 01:28:21.000000000 +0200 +++ new/xterm-388/xterm.man 2023-10-23 00:19:25.000000000 +0200 @@ -1,5 +1,5 @@ '\" t -.\" $XTermId: xterm.man,v 1.896 2023/10/08 23:28:21 tom Exp $ +.\" $XTermId: xterm.man,v 1.897 2023/10/22 22:19:25 tom Exp $ .\" .\" Copyright 1996-2022,2023 by Thomas E. Dickey .\" @@ -572,7 +572,7 @@ .TP 8 .B \-cu This option indicates that \fI\*n\fP should work around a bug in the -.IR more (1) +.BR more (1) program that causes it to incorrectly display lines that are exactly the width of the window and are followed by a line beginning with a tab @@ -584,7 +584,7 @@ .TP 8 .B +cu This option indicates that \fI\*n\fP should not work around the -.IR more (1) +.BR more (1) bug mentioned above. .TP 8 .B "\-dc" @@ -759,7 +759,7 @@ .TP 8 .B \-ie Turn on the \fBptyInitialErase\fP resource, i.e., -use the pseudo-terminal's sense of the \fIstty\fP erase value. +use the pseudo-terminal's sense of the \fBstty\fP(1) erase value. .TP 8 .B +ie Turn off the \fBptyInitialErase\fP resource, i.e., @@ -1239,8 +1239,8 @@ .TP 8 .BI \-tm " string" This option specifies a series of terminal setting keywords followed by the -characters that should be bound to those functions, similar to the \fIstty\fP -program. +characters that should be bound to those functions, +similar to the \fBstty\fP(1) program. The keywords and their values are described in detail in the \fBttyModes\fP resource. .TP 8 @@ -1939,7 +1939,7 @@ .B ptyHandshake\fP (class\fB PtyHandshake\fP) If \*(``true\*('', \fI\*n\fP will perform handshaking during initialization to ensure that the parent and child processes update the \fI__utmp_name__\fP -and \fIstty\fP state. +and \fBstty\fP(1) state. .IP See also \fBwaitForMap\fP which waits for the pseudo-terminal's notion of the screen size, @@ -2150,7 +2150,7 @@ an X resource escapes the next character. .IP This is very useful for overriding -the default terminal settings without having to run \fIstty\fP every time +the default terminal settings without having to run \fBstty\fP(1) every time an \fI\*n\fP is started. Note, however, that the \fIstty\fP program on a given host may use different keywords; \fI\*n\fR's table is built in. @@ -3251,7 +3251,7 @@ \fI\*N\fP ignores capitalization. The default value is .NS -BS,DEL,ENQ,EOT,ESC,NUL +BS,DEL,ENQ,EOT,ESC,NUL,STTY .NE .IP The names are listed below: @@ -3270,6 +3270,9 @@ .TP 5 NL ASCII line-feed, i.e., \*(``newline\*('' is the same as LF. +.TP 5 +STTY +special characters which are set with \fBstty\fP(1). .RE .TP 8 .B "disallowedTcapOps\fP (class\fB DisallowedTcapOps\fP)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xterm-387/xterm_io.h new/xterm-388/xterm_io.h --- old/xterm-387/xterm_io.h 2020-01-18 19:48:19.000000000 +0100 +++ new/xterm-388/xterm_io.h 2023-10-22 16:54:29.000000000 +0200 @@ -1,7 +1,7 @@ -/* $XTermId: xterm_io.h,v 1.67 2020/01/18 18:48:19 tom Exp $ */ +/* $XTermId: xterm_io.h,v 1.68 2023/10/22 14:54:29 tom Exp $ */ /* - * Copyright 2000-2018,2020 by Thomas E. Dickey + * Copyright 2000-2020,2023 by Thomas E. Dickey * * All Rights Reserved * @@ -284,4 +284,19 @@ typedef unsigned short ttySize_t; +#ifdef USE_ANY_SYSV_TERMIO +#define TERMIO_STRUCT struct termio +#define ttySetAttr(fd, datap) ioctl(fd, TCSETA, datap) +#define ttyGetAttr(fd, datap) ioctl(fd, TCGETA, datap) +#define ttyFlush(fd) ioctl(fd, TCFLSH, 1) +#elif defined(USE_POSIX_TERMIOS) +#define TERMIO_STRUCT struct termios +#define ttySetAttr(fd, datap) tcsetattr(fd, TCSANOW, datap) +#define ttyGetAttr(fd, datap) tcgetattr(fd, datap) +#define ttyFlush(fd) tcflush(fd, TCOFLUSH) +#else +#error Neither termio or termios is enabled +#endif /* USE_ANY_SYSV_TERMIO */ + + #endif /* included_xterm_io_h */