]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 6.3 - patch 20221224
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 25 Dec 2022 01:37:04 +0000 (01:37 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 25 Dec 2022 01:37:04 +0000 (01:37 +0000)
+ add mutex lock/unlock in a few places reported by thread-sanitizer
+ add/use bracketed+paste to help identify terminals supporting this
  xterm feature (prompted by discussion with Bram Moolenaar) -TD

15 files changed:
NEWS
VERSION
dist.mk
misc/terminfo.src
ncurses/base/lib_getch.c
ncurses/tty/lib_tstp.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec
test/ditto.c
test/worm.c

diff --git a/NEWS b/NEWS
index 12e6fc88b6d7b730e3ae986514c704c2ee04b367..1da535edae86894ecdd8b2921c0daaf96f5129f5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3889 2022/12/18 00:16:10 tom Exp $
+-- $Id: NEWS,v 1.3891 2022/12/25 00:20:45 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,11 @@ See the AUTHORS file for the corresponding full names.
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+20221224
+       + add mutex lock/unlock in a few places reported by thread-sanitizer
+       + add/use bracketed+paste to help identify terminals supporting this
+         xterm feature (prompted by discussion with Bram Moolenaar) -TD
+
 20221217
        + install Ada95 sample programs in libexecdir, adding a wrapper
          script to invoke those.
diff --git a/VERSION b/VERSION
index 49afb6ba6dabed26b6ce410a716bd86bc0a40fb8..b09d8301e1fb71c7157c67b68775b79790d2b098 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.3     20221217
+5:0:10 6.3     20221224
diff --git a/dist.mk b/dist.mk
index fd5e4b3f4d2a7192d2e11a84d21c5f2e07daa132..f52aac42c6cc56fda6d9809e95008fcf93832e04 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1517 2022/12/17 12:29:16 tom Exp $
+# $Id: dist.mk,v 1.1518 2022/12/24 12:35:34 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -38,7 +38,7 @@ SHELL = /bin/sh
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 6
 NCURSES_MINOR = 3
-NCURSES_PATCH = 20221217
+NCURSES_PATCH = 20221224
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 8a4f9d5cb9d11743f052d5cd497ebec072869056..90e1c79b3ffb2efd00941f3bf8efdfb97eaeed45 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.1032 $
-#      $Date: 2022/08/27 18:44:46 $
+#      $Revision: 1.1039 $
+#      $Date: 2022/12/24 18:18:58 $
 #
 # The original header is preserved below for reference.  It is noted that there
 # is a "newer" version which differs in some cosmetic details (but actually
@@ -3818,6 +3818,7 @@ iTerm2.app|iterm2|terminal emulator for Mac OS X,
        kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP3=\E\E[A, kUP4=\E[1;10A,
        kUP5=\E[1;5A, kUP6=\E[1;6A, use=ecma+index,
        use=xterm+alt+title, use=ecma+italics, use=iterm,
+       use=bracketed+paste,
 
 # xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
 #
@@ -4292,7 +4293,7 @@ putty|PuTTY terminal emulator,
        use=ansi+tabs, use=ansi+rep, use=ecma+index,
        use=xterm+alt1049, use=xterm+sm+1006, use=putty+fnkeys,
        use=vt102+enq, use=xterm+sl, use=vt100+fnkeys,
-       use=putty+keypad, use=vt220+cvis,
+       use=putty+keypad, use=vt220+cvis, use=bracketed+paste,
 putty+keypad|PuTTY numeric keypad,
        kp1=\EOq, kp2=\EOr, kp3=\EOs, kp4=\EOt, kp5=\EOu, kp6=\EOv,
        kp7=\EOw, kp8=\EOx, kp9=\EOy, kpADD=\EOl, kpDIV=\EOQ,
@@ -4419,7 +4420,7 @@ mintty+common|shared capabilities for mintty,
        opaq=\E[28m, smul2=\E[21m, use=ansi+rep,
        use=ecma+strikeout, use=ecma+index, use=vt420+lrmm,
        use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
-       use=ecma+italics, use=xterm-basic,
+       use=ecma+italics, use=xterm-basic, use=bracketed+paste,
 # 2019-06-09: These capabilities are commented-out for compatibility with
 # existing releases 5.9-6.1, and may be considered for inclusion after the
 # release of ncurses 6.2:
@@ -4764,7 +4765,7 @@ vscode|xterm.js|Visual Studio Code terminal using xterm.js,
        npc,
        kcbt=\E[Z, rmkx=\E[?1l, smkx=\E[?1h, use=xterm+256setaf,
        use=ecma+index, use=xterm+sm+1006, use=xterm+pcfkeys,
-       use=ecma+italics, use=xterm-basic,
+       use=ecma+italics, use=xterm-basic, use=bracketed+paste,
 vscode-direct|Visual Studio Code with direct-colors,
        use=xterm+indirect, use=vscode,
 
@@ -4992,7 +4993,7 @@ xterm-p370|xterm patch #370,
        npc,
        kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
        use=ansi+rep, use=ecma+strikeout, use=xterm+pcfkeys,
-       use=xterm+nofkeys,
+       use=xterm+nofkeys, use=bracketed+paste,
 
 xterm-p371|xterm patch #371,
        use=dec+sl, use=xterm-p370,
@@ -5759,6 +5760,16 @@ xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
 xterm1|xterm terminal emulator ignoring the alternate screen buffer,
        rmcup@, smcup@, use=xterm,
 
+# https://invisible-island.net/xterm/xterm-paste64.html
+#
+# Bracketed paste was introduced by xterm patch #203 in May 2005, as part of a
+# larger feature for manipulating the clipboard selection.  Few terminals aside
+# from xterm fully implement the clipboard feature, but several copy this
+# detail.  The names for the extended capabilities here were introduced by vim
+# in January 2017.
+bracketed+paste|xterm bracketed paste,
+       BD=\E[?2004l, BE=\E[?2004h, PD=\E[201~, PE=\E[200~,
+
 #### XTERM Mouse
 # The xterm mouse protocol is used by other terminal emulators.
 # In this section, two extended capabilities are used to illustrate the mouse
@@ -6232,6 +6243,7 @@ vte-2014|VTE 0.35.1,
        cbt=\E[Z, el1=\E[1K, flash=\E[?5h$<100/>\E[?5l,
        ich=\E[%p1%d@, kent=\EOM, use=ecma+index,
        use=xterm+sm+1006, use=xterm+pcfkeys, use=vte-2012,
+       use=bracketed+paste,
 
 # As of January 2018, this was the  most recent release,
 # e.g., with gnome-terminal 3.26.2
@@ -6295,6 +6307,7 @@ hterm|Chromium hterm,
        use=ecma+index, use=ansi+rep, use=ecma+strikeout,
        use=vt420+lrmm, use=xterm+sm+1006, use=xterm+tmux,
        use=ecma+italics, use=xterm+pcfkeys, use=xterm-basic,
+       use=bracketed+paste,
 hterm-256color|Chromium hterm with xterm 256-colors,
        use=xterm+256color2, use=hterm,
 
@@ -6411,7 +6424,7 @@ kvt|KDE terminal,
 #
 # Re-enable "bel", since it is latent in the source-code even though KDE config
 # often hides the feature (2020/5/30)
-konsole-base|KDE console window (base),
+konsole-base|KDE console window (common),
        bce, km@, npc, XT,
        ncv@,
        blink=\E[5m, dim=\E[2m, ech=\E[%p1%dX,
@@ -6426,7 +6439,7 @@ konsole-base|KDE console window (base),
        sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
        use=ecma+index, use=xterm+sm+1006, use=ecma+strikeout,
        use=ecma+italics, use=ecma+color, use=xterm-r6,
-       use=vt220+cvis,
+       use=vt220+cvis, use=bracketed+paste,
 
 # The keytab feature was introduced in 0.9.12 (February 2000) with "linux" and
 # "vt100" key-table files along with a compiled-in default key-table.
@@ -6585,7 +6598,7 @@ mlterm3|multi lingual terminal emulator 3.x,
        use=ecma+strikeout, use=xterm+app, use=xterm+pcf2,
        use=xterm+pcc2, use=xterm+pce2, use=xterm+meta,
        use=xterm+alt+title, use=xterm+sm+1006,
-       use=vt100+pfkeys, use=mlterm2,
+       use=vt100+pfkeys, use=bracketed+paste, use=mlterm2,
 
 # This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
 #
@@ -7404,7 +7417,7 @@ st-0.6|simpleterm 0.6,
        vpa=\E[%i%p1%dd, Se=\E[2 q, Ss=\E[%p1%d q, use=ansi+enq,
        use=vt220+pcedit, use=ecma+index, use=xterm+alt1049,
        use=vt220+cvis, use=xterm+sl, use=ecma+italics,
-       use=ecma+strikeout,
+       use=ecma+strikeout, use=bracketed+paste,
 #
 # st-0.1.1
 #
@@ -7556,7 +7569,7 @@ terminator|Terminator no line wrap,
        smul=\E[4m, tbc=\E[3g, tsl=\E]2;, vpa=\E[%i%p1%dd,
        use=ansi+enq, use=vt220+pcedit, use=ecma+italics,
        use=ecma+index, use=xterm+256setaf, use=xterm+sl-twm,
-       use=xterm+alt1049, use=vt220+cvis,
+       use=xterm+alt1049, use=vt220+cvis, use=bracketed+paste,
 
 #### TERMINOLOGY
 # https://www.enlightenment.org/about-terminology
@@ -7647,7 +7660,8 @@ terminology-1.0.0|EFL-based terminal emulator (1.0.0),
            %?%p1%p3%|%t;7%;%?%p7%t;8%;m$<2>,
        sgr0=\E(B\E[m, smacs=\E(0, use=ecma+italics,
        use=vt220+cvis, use=xterm+x11mouse, use=xterm+pce2,
-       use=xterm+pcf2, use=xterm+pcc2, use=terminology-0.6.1,
+       use=xterm+pcf2, use=xterm+pcc2, use=bracketed+paste,
+       use=terminology-0.6.1,
 
 # 2020/12/26:
 # Tested terminology 1.8.1 using tack and vttest.
@@ -7742,7 +7756,7 @@ alacritty+common|base fragment for alacritty,
        use=xterm-basic, use=xterm+app, use=ansi+rep,
        use=xterm+tmux, use=ecma+strikeout, use=xterm+sl-twm,
        use=ecma+italics, use=xterm+pce2, use=xterm+pcc2,
-       use=xterm+pcf2,
+       use=xterm+pcf2, use=bracketed+paste,
 
 #### Kitty
 # https://github.com/kovidgoyal/kitty
@@ -7898,6 +7912,7 @@ kitty+common|KovId's TTY common properties,
        use=xterm+pcfkeys, use=xterm+sl-twm,
        use=ecma+strikeout, use=ecma+italics,
        use=xterm+alt1049, use=att610+cvis, use=xterm+tmux,
+       use=bracketed+paste,
 
 kitty+setal|set underline colors (nonstandard),
        setal=\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1
@@ -7958,7 +7973,7 @@ foot+base|foot base fragment,
        use=ansi+tabs, use=ecma+index, use=ecma+italics,
        use=ecma+strikeout, use=xterm+alt+title,
        use=xterm+pcfkeys, use=xterm+sm+1006, use=xterm+tmux2,
-       use=xterm+sl-alt,
+       use=xterm+sl-alt, use=bracketed+paste,
 
 ######## WEB CLIENTS
 
@@ -8014,6 +8029,7 @@ domterm|DomTerm web client,
            %t;7%;m,
        sitm@, smkx=\E[?1h, use=xterm+256setaf, use=ecma+index,
        use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm-basic,
+       use=bracketed+paste,
 
 ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
 #
@@ -8162,7 +8178,7 @@ dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
 # since 1994 (i.e., screen 3.0.5), stating that it was an obscure code used by
 # the (Siemens Nixdorf) 97801 terminal.  It was not shown in the termcap or
 # terminfo entries (which list about 60% of the control sequences).
-screen|VT 100/ANSI X3.64 virtual terminal (base),
+screen-base|VT 100/ANSI X3.64 virtual terminal (base),
        OTbs, OTpt, am, km, mir, msgr, xenl, G0,
        colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
        acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
@@ -8189,13 +8205,20 @@ screen|VT 100/ANSI X3.64 virtual terminal (base),
        smso=\E[3m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
        E0=\E(B, S0=\E(%p1%c, use=vt220+pcedit,
        use=xterm+alt1049, use=ecma+color, use=vt100+enq,
+
+screen|VT 100/ANSI X3.64 virtual terminal,
+       use=screen4,
+
+no+brackets|cancel bracketed paste,
+       BD@, BE@, PD@, PE@,
+
 # The bce and status-line entries are from screen 3.9.13 (and require some
 # changes to .screenrc).
 screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
        bce,
-       ech@, use=screen4,
+       ech@, use=screen,
 screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
-       dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen4,
+       dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
 
 # ======================================================================
 # Entries for GNU Screen with 16 colors.
@@ -8206,7 +8229,7 @@ screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
 # do all support 16 color palette.
 
 screen-16color|GNU Screen with 16 colors,
-       use=ibm+16color, use=screen4,
+       use=ibm+16color, use=screen,
 
 screen-16color-s|GNU Screen with 16 colors and status line,
        use=ibm+16color, use=screen-s,
@@ -8221,7 +8244,7 @@ screen-16color-bce-s|GNU Screen with 16 colors using BCE and status line,
 # Entries for GNU Screen 4.02 with --enable-colors256.
 
 screen-256color|GNU Screen with 256 colors,
-       use=xterm+256setaf, use=screen4,
+       use=xterm+256setaf, use=screen,
 
 screen-256color-s|GNU Screen with 256 colors and status line,
        use=xterm+256setaf, use=screen-s,
@@ -8283,19 +8306,26 @@ screen+italics|screen cannot support italics,
 #      match.  Hence, no "screen.xterm" entry is provided, since that would
 #      create heartburn for people running remote xterm's.
 # (f)   screen does not support rep.
+# (g)  the xterm-new compatibility does not include bracketed paste.
 #
 #      xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
 #      since the default translations override the built-in keycode
 #      translation.  They are suppressed here to show what is tested by tack.
 screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
-       bce@, bw,
-       invis@, kIC@, kNXT@, kPRV@, meml@, memu@, rep@,
+       bce@, bw, npc,
+       invis@, kIC@, kNXT@, kPRV@, kcbt=\E[Z, kent=\EOM, meml@, memu@,
+       nel=\EE, rep@,
        sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
            %t;7%;%?%p4%t;5%;%?%p5%t;2%;m,
        E3@, use=screen+italics, use=screen+fkeys,
-       use=xterm+x11mouse, use=xterm-p370,
+       use=xterm+x11mouse, use=ecma+index, use=ansi+rep,
+       use=ecma+strikeout, use=xterm+pcfkeys,
+       use=xterm+nofkeys,
+
+# Don't use this, because not everyone has "screen.xterm-new":
 #:screen.xterm|screen for modern xterm,
 #:     use=screen.xterm-new,
+
 # xterm-r6 does not really support khome/kend unless it is propped up by
 # the translations resource.
 screen.xterm-r6|screen customized for X11R6 xterm,
@@ -8307,36 +8337,38 @@ screen.teraterm|disable ncv in teraterm,
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
             \316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
             \264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-       use=screen+fkeys, use=xterm+x11mouse, use=screen4,
+       use=screen+fkeys, use=xterm+x11mouse, use=screen,
 # Other terminals
 screen.rxvt|screen in rxvt,
        bw, XT,
        cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
        kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
        use=rxvt+pcfkeys, use=xterm+x11mouse, use=vt220+keypad,
-       use=screen4,
+       use=screen,
 screen.Eterm|screen in Eterm,
        use=xterm+x11mouse, use=screen+fkeys, use=Eterm,
 screen.mrxvt|screen in mrxvt,
        use=xterm+x11mouse, use=screen+fkeys, use=mrxvt,
 screen.vte|screen in any VTE-based terminal,
        use=xterm+x11mouse, use=screen+italics,
-       use=screen+fkeys, use=vte,
+       use=screen+fkeys, use=no+brackets, use=vte,
 screen.gnome|screen in GNOME Terminal,
        use=xterm+x11mouse, use=screen+italics,
-       use=screen+fkeys, use=gnome,
+       use=screen+fkeys, use=no+brackets, use=gnome,
 screen.konsole|screen in KDE console window,
        use=xterm+x11mouse, use=screen+italics,
-       use=screen+fkeys, use=konsole,
+       use=screen+fkeys, use=no+brackets, use=konsole,
 # fix the backspace key
 screen.linux|screen.linux-s|screen in Linux console,
        bw,
        kbs=^?, kcbt@, use=linux+sfkeys, use=xterm+x11mouse,
-       use=screen+fkeys, use=screen4,
+       use=screen+fkeys, use=screen,
 screen.mlterm|screen in mlterm,
-       use=xterm+x11mouse, use=screen+fkeys, use=mlterm,
+       use=xterm+x11mouse, use=screen+fkeys, use=no+brackets,
+       use=mlterm,
 screen.putty|screen in putty,
-       use=xterm+x11mouse, use=screen+fkeys, use=putty,
+       use=xterm+x11mouse, use=screen+fkeys, use=no+brackets,
+       use=putty,
 
 # The default "screen" entry is reasonably portable, but not optimal for the
 # most widely-used terminal emulators.  The "bce" capability is supported in
@@ -8374,7 +8406,7 @@ screen-bce.linux|screen optimized for Linux console,
        ech@, use=screen.linux,
 
 screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
-       cols#132, use=screen4,
+       cols#132, use=screen,
 
 screen2|VT 100/ANSI X3.64 virtual terminal (old 2.x),
        cols#80, it#8, lines#24,
@@ -8410,9 +8442,9 @@ screen3|VT 100/ANSI X3.64 virtual terminal (old 3.x),
 # was last updated in 2009 to include 256-color support.  The most recent
 # release is 4.6.2 (October 2017).
 screen4|VT 100/ANSI X3.64 virtual terminal (4.x),
-       use=ecma+index, use=screen,
+       use=ecma+index, use=screen-base,
 
-# As of March 2019, screen 5.0 has not been released.
+# As of December 2022, screen 5.0 has not been released.
 #
 # However,
 #
@@ -8428,7 +8460,8 @@ screen5|VT 100/ANSI X3.64 virtual terminal (someday),
        rmso=\E[27m,
        sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
            %p5%t;2%;m%?%p9%t\016%e\017%;,
-       smso=\E[7m, use=ecma+italics, use=screen4,
+       smso=\E[7m, use=ecma+italics, use=ecma+index,
+       use=screen-base,
 
 #### Tmux
 
@@ -8447,7 +8480,7 @@ tmux|tmux terminal multiplexer,
        smso=\E[7m, E3=\E[3J, Smulx=\E[4:%p1%dm,
        use=ecma+italics, use=ecma+strikeout, use=xterm+edit,
        use=xterm+pcfkeys, use=xterm+sl, use=xterm+tmux,
-       use=screen,
+       use=screen, use=bracketed+paste,
 
 tmux-256color|tmux with 256 colors,
        use=xterm+256setaf, use=tmux,
@@ -8497,7 +8530,7 @@ mosh|mobile shell,
        sgr0=\E(B\E[m, use=ansi+enq, use=xterm+meta,
        use=ecma+italics, use=ecma+index, use=xterm+acs,
        use=xterm+sm+1006, use=xterm+pcfkeys,
-       use=xterm-xfree86,
+       use=xterm-xfree86, use=bracketed+paste,
 
 mosh-256color|mosh using 256-colors,
        use=xterm+256color, use=mosh,
@@ -21668,7 +21701,7 @@ screen.minitel1|Screen specific for minitel1,
             yzz||}}~~,
        bel=\007\E\^ \E\\, bold@, csr@, flash=\Eg\E\^ \E\\, kmous@,
        rmul@, smul@, u8=\E[?1;2c, use=decid+cpr,
-       use=xterm+x11mouse, use=screen4,
+       use=xterm+x11mouse, use=screen,
 
 screen.minitel1b|Screen specific for minitel1b,
        kclr=\E[2J, kdl1=\E[M, kf13=^Y{1, kf14=^Y{2, kf15=^Y{3,
@@ -21804,7 +21837,7 @@ screen.linux-m1|Linux m1 specific for screen,
           \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
           \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
           \n\n\n\n\n\n\n\n\n\n,
-       use=decid+cpr, use=xterm+x11mouse, use=screen4,
+       use=decid+cpr, use=xterm+x11mouse, use=screen,
 
 screen.linux-m1b|Linux m1b specific for screen,
        colors@, pairs@,
@@ -25442,6 +25475,19 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #
 #### XTERM Extensions:
 #
+# For a discussion of "xterm", "xterm-256color" as values for TERM, see
+#      https://invisible-island.net/ncurses/ncurses.faq.html#xterm_generic
+#      https://invisible-island.net/ncurses/ncurses.faq.html#xterm_256color
+#
+# For xterm control sequences, see
+#      https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+#
+# For function-keys with modifiers, see
+#      https://invisible-island.net/ncurses/ncurses.faq.html#modified_keys
+#
+# For a discussion of "bracketed paste", see
+#      https://invisible-island.net/xterm/xterm-paste64.html
+#
 # Most of the xterm extensions are for function-keys.  Since xterm patch #94 (in
 # 1999), xterm has supported shift/control/alt/meta modifiers which produce
 # additional function-key strings.  Some other developers copied the feature,
@@ -25458,6 +25504,13 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 # kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
 # kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
 #
+# Bracketed paste is described with these capabilities in vim:
+#
+# BE enables bracketed paste
+# BD disables bracketed paste
+# PE is sent before the pasted text
+# PD is sent after the pasted text
+#
 # Here are the other xterm-related extensions which are used in this file:
 #
 # Cr is a string capability which resets the cursor color
@@ -27656,4 +27709,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      + modify nsterm to use xterm+alt1049 (report by Paul Handly) -TD
 #      + modify putty to use xterm+alt1049 -TD
 #
+# 2022-12-24
+#      + add/use bracketed+paste to help identify terminals supporting this
+#        xterm feature (prompted by discussion with Bram Moolenaar) -TD
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index 43460394a490d21ff4c8332b0474e8f4222cceda..831ded9d2dd1976dc575194101763de572238ed9 100644 (file)
@@ -44,7 +44,7 @@
 #define NEED_KEY_EVENT
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_getch.c,v 1.144 2022/08/13 14:36:43 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.145 2022/12/24 22:38:38 tom Exp $")
 
 #include <fifo_defs.h>
 
@@ -380,7 +380,17 @@ recur_wrefresh(WINDOW *win)
 {
 #ifdef USE_PTHREADS
     SCREEN *sp = _nc_screen_of(win);
-    if (_nc_use_pthreads && sp != CURRENT_SCREEN) {
+    bool same_sp;
+
+    if (_nc_use_pthreads) {
+       _nc_lock_global(curses);
+       same_sp = (sp == CURRENT_SCREEN);
+       _nc_unlock_global(curses);
+    } else {
+       same_sp = (sp == CURRENT_SCREEN);
+    }
+
+    if (_nc_use_pthreads && !same_sp) {
        SCREEN *save_SP;
 
        /* temporarily switch to the window's screen to check/refresh */
index f228f72be84dcb08075cd4bd43d2f9b03b41010b..dd925c7efd12b16045644b4e324bedb97798496b 100644 (file)
@@ -43,7 +43,7 @@
 
 #include <SigAction.h>
 
-MODULE_ID("$Id: lib_tstp.c,v 1.53 2022/10/15 13:09:05 Mikhail.Korolev Exp $")
+MODULE_ID("$Id: lib_tstp.c,v 1.54 2022/12/24 22:22:10 tom Exp $")
 
 #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
 #define USE_SIGTSTP 1
@@ -287,6 +287,7 @@ handle_SIGINT(int sig)
 NCURSES_EXPORT(void)
 _nc_set_read_thread(bool enable)
 {
+    _nc_lock_global(curses);
     if (enable) {
 #  if USE_WEAK_SYMBOLS
        if ((pthread_self) && (pthread_kill) && (pthread_equal))
@@ -295,6 +296,7 @@ _nc_set_read_thread(bool enable)
     } else {
        _nc_globals.read_thread = 0;
     }
+    _nc_unlock_global(curses);
 }
 # endif
 
index 4794ab7bcd35864e32eb73a521bee36c976aea9c..29c2c718ba20863e71820ea02d0e095d0453cea8 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20221217) unstable; urgency=low
+ncurses6 (6.3+20221224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 17 Dec 2022 07:29:16 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 24 Dec 2022 07:35:34 -0500
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
index 4794ab7bcd35864e32eb73a521bee36c976aea9c..29c2c718ba20863e71820ea02d0e095d0453cea8 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20221217) unstable; urgency=low
+ncurses6 (6.3+20221224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 17 Dec 2022 07:29:16 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 24 Dec 2022 07:35:34 -0500
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
index 8bfdc1b762c52faafb1d25ca4408ebf6d478a397..29e49c9ed4c0246df8aae7d0389af6bd3a771205 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20221217) unstable; urgency=low
+ncurses6 (6.3+20221224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 17 Dec 2022 07:29:16 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 24 Dec 2022 07:35:34 -0500
 
 ncurses6 (5.9+20120608) unstable; urgency=low
 
index b898945c9f264eac1ff67f2c5b309852d83c0af5..8f91e91f4037aea2802d27afba8512406b3b485b 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.556 2022/12/17 12:29:16 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.557 2022/12/24 12:35:34 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "3"\r
 !define VERSION_YYYY  "2022"\r
-!define VERSION_MMDD  "1217"\r
+!define VERSION_MMDD  "1224"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 2ec3b2fac3af2988524eeecf03074dc05bea199e..5ffb94670a24ae0d153d7f9ee28ff84873aece99 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.3
-Release: 20221217
+Release: 20221224
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 09f6c99261389bb330cc3ccbedd68dcd3106ae3b..ede97eb3bee4aed472075b4ce9352914775072cf 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.3
-Release: 20221217
+Release: 20221224
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 996441c0f4e8312078f751ab449a41ba37185fd4..52cf868efe317baa96d11ae5551325dcc3caddbe 100644 (file)
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.3
-Release: 20221217
+Release: 20221224
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index f432ea71024ba8820ad4f65b2e840c2aa227cae9..390eb3c0fa003390394708779da12181ae584308 100644 (file)
@@ -30,7 +30,7 @@
 /*
  * Author: Thomas E. Dickey (1998-on)
  *
- * $Id: ditto.c,v 1.56 2022/12/10 22:10:49 tom Exp $
+ * $Id: ditto.c,v 1.58 2022/12/24 23:53:08 tom Exp $
  *
  * The program illustrates how to set up multiple screens from a single
  * program.
@@ -92,6 +92,15 @@ typedef struct {
 #endif
 } DITTO;
 
+#ifdef USE_PTHREADS
+#define LockIt()                pthread_mutex_lock(&pending_mutex)
+#define UnlockIt()              pthread_mutex_unlock(&pending_mutex)
+pthread_mutex_t pending_mutex;
+#else
+#define LockIt()               /* nothing */
+#define UnlockIt()             /* nothing */
+#endif
+
 /*
  * Structure used to pass multiple parameters via the use_screen()
  * single-parameter interface.
@@ -411,8 +420,6 @@ main(int argc, char *argv[])
            /* NOTREACHED */
        }
     }
-    if (optind < argc)
-       usage(FALSE);
 
     if ((data = typeCalloc(DITTO, (size_t) argc)) == 0)
        failed("calloc data");
@@ -424,6 +431,7 @@ main(int argc, char *argv[])
     }
 
 #ifdef USE_PTHREADS
+    pthread_mutex_init(&pending_mutex, NULL);
     /*
      * For multi-threaded operation, set up a reader for each of the screens.
      * That uses blocking I/O rather than polling for input, so no calls to
@@ -461,6 +469,7 @@ main(int argc, char *argv[])
      * Cleanup and exit
      */
     for (j = argc - 1; j >= 0; j--) {
+       LockIt();
        USING_SCREEN(data[j].screen, close_screen, 0);
        fprintf(data[j].output, "**Closed\r\n");
 
@@ -471,6 +480,7 @@ main(int argc, char *argv[])
        fflush(data[j].output);
        fclose(data[j].output);
        delscreen(data[j].screen);
+       UnlockIt();
     }
     ExitProgram(EXIT_SUCCESS);
 }
index aca96c6f3127ee120d1a84bcfbdacfa86a32a028..7c4842e4004f3bc772080e9dd9f2607402691e60 100644 (file)
@@ -53,7 +53,7 @@
   traces will be dumped.  The program stops and waits for one character of
   input at the beginning and end of the interval.
 
-  $Id: worm.c,v 1.88 2022/12/04 00:40:11 tom Exp $
+  $Id: worm.c,v 1.89 2022/12/24 20:46:49 tom Exp $
 */
 
 #include <test.priv.h>
@@ -368,7 +368,11 @@ start_worm(void *arg)
     unsigned long compare = 0;
     Trace(("start_worm"));
     while (!quit_worm((int) (((struct worm *) arg) - worm))) {
-       while (compare < sequence) {
+       for (;;) {
+           bool done = FALSE;
+           Locked(done = (compare >= sequence));
+           if (done)
+               break;
            ++compare;
            USING_WINDOW2(stdscr, draw_worm, arg);
        }