]> 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.                                                            --
 -------------------------------------------------------------------------------
 -- 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
 -------------------------------------------------------------------------------
 
 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.
 
 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.
 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.                                                             #
 ##############################################################################
 # 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
 # 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
 # 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)
 
 # 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
 #
 # 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
 #
 # 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,
        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")
 #
 
 # 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=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,
 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,
        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:
 # 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,
        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,
 
 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,
        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,
 
 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,
 
 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
 #### 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,
        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
 
 # 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=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,
 
 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)
 #
 # 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,
        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,
        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.
 
 # 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=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
 #
 
 # 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,
        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
 #
 #
 # 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,
        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
 
 #### 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,
            %?%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.
 
 # 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-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
 
 #### 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=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
 
 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=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
 
 
 ######## 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,
            %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
 #
 
 ######## 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).
 # 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
        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,
        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,
 # 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,
 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.
 
 # ======================================================================
 # 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,
 # 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,
 
 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,
 # 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,
 
 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.
 #      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,
 #
 #      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,
        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,
 #: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,
 # 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,
        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,
 # 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,
 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,
 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,
 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,
 # 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,
 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,
 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
 
 # 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,
        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,
 
 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),
 # 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,
 #
 #
 # 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%;,
        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
 
 
 #### 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,
        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,
 
 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,
        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,
 
 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,
             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,
 
 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,
           \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@,
 
 screen.linux-m1b|Linux m1b specific for screen,
        colors@, pairs@,
@@ -25442,6 +25475,19 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #
 #### XTERM Extensions:
 #
 #
 #### 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,
 # 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
 #
 # 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
 # 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
 #
 #      + 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!
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index 43460394a490d21ff4c8332b0474e8f4222cceda..831ded9d2dd1976dc575194101763de572238ed9 100644 (file)
@@ -44,7 +44,7 @@
 #define NEED_KEY_EVENT
 #include <curses.priv.h>
 
 #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>
 
 
 #include <fifo_defs.h>
 
@@ -380,7 +380,17 @@ recur_wrefresh(WINDOW *win)
 {
 #ifdef USE_PTHREADS
     SCREEN *sp = _nc_screen_of(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 */
        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>
 
 
 #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
 
 #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)
 {
 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))
     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;
     }
     } else {
        _nc_globals.read_thread = 0;
     }
+    _nc_unlock_global(curses);
 }
 # endif
 
 }
 # 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
 
 
   * 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
 
 
 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
 
 
   * 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
 
 
 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
 
 
   * 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
 
 
 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
 \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_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
 !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
 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
 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
 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
 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
 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
 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)
  *
 /*
  * 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.
  *
  * The program illustrates how to set up multiple screens from a single
  * program.
@@ -92,6 +92,15 @@ typedef struct {
 #endif
 } DITTO;
 
 #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.
 /*
  * Structure used to pass multiple parameters via the use_screen()
  * single-parameter interface.
@@ -411,8 +420,6 @@ main(int argc, char *argv[])
            /* NOTREACHED */
        }
     }
            /* NOTREACHED */
        }
     }
-    if (optind < argc)
-       usage(FALSE);
 
     if ((data = typeCalloc(DITTO, (size_t) argc)) == 0)
        failed("calloc data");
 
     if ((data = typeCalloc(DITTO, (size_t) argc)) == 0)
        failed("calloc data");
@@ -424,6 +431,7 @@ main(int argc, char *argv[])
     }
 
 #ifdef USE_PTHREADS
     }
 
 #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
     /*
      * 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--) {
      * 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");
 
        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);
        fflush(data[j].output);
        fclose(data[j].output);
        delscreen(data[j].screen);
+       UnlockIt();
     }
     ExitProgram(EXIT_SUCCESS);
 }
     }
     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.
 
   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>
 */
 
 #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))) {
     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);
        }
            ++compare;
            USING_WINDOW2(stdscr, draw_worm, arg);
        }