ncurses 6.1 - patch 20180224
authorThomas E. Dickey <dickey@invisible-island.net>
Sat, 24 Feb 2018 23:23:52 +0000 (23:23 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sat, 24 Feb 2018 23:23:52 +0000 (23:23 +0000)
+ modify _nc_resolve_uses2() to detect incompatible types when merging
  a "use=" clause of extended capabilities.  The problem was seen in a
  defective terminfo integrated from simpleterm sources in 20171111,
  compounded by repair in 20180121.
+ correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
+ fix remaining flash capabilities with trailing mandatory delays -TD
+ correct cut/paste in NEWS (report by Sven Joachim).
+ improve fix for Debian #882620 by reusing limit2 variable (report by
  Julien Cristau, Sven Joachim).

12 files changed:
NEWS
VERSION
dist.mk
misc/terminfo.src
ncurses/tinfo/comp_parse.c
ncurses/tinfo/read_termcap.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec

diff --git a/NEWS b/NEWS
index ab0604c8cfdae496b3acbbed3a6eed122b64de75..9801462d0be886d5fdb68b5d315d2ac37a150cf2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3085 2018/02/17 21:27:10 tom Exp $
+-- $Id: NEWS,v 1.3089 2018/02/24 22:39:32 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,12 +45,21 @@ 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.
 
+20180224
+       + modify _nc_resolve_uses2() to detect incompatible types when merging
+         a "use=" clause of extended capabilities.  The problem was seen in a
+         defective terminfo integrated from simpleterm sources in 20171111,
+         compounded by repair in 20180121.
+       + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
+       + fix remaining flash capabilities with trailing mandatory delays -TD
+       + correct cut/paste in NEWS (report by Sven Joachim).
+
 20180217
        + remove incorrect free() from 20170617 changes (report by David Macek).
        + correct type for "U8" in user_caps.5; it is a number not boolean.
        + add a null-pointer check in safe_sprintf.c (report by Steven Noonan).
-       + improve fix for Debian #882620 by reusing limit2 variable (report
-         Julien Cristau, Sven Cristau).
+       + improve fix for Debian #882620 by reusing limit2 variable (report by
+         Julien Cristau, Sven Joachim).
 
 20180210
        + modify misc/Makefile.in to install/uninstall explicit list in case
diff --git a/VERSION b/VERSION
index f4d4fbcc3c15876d2d67bf803ba0319a5e6e3be7..432d3a25d1ceba36451e01ecc32fe9e6c951074e 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.1     20180217
+5:0:10 6.1     20180224
diff --git a/dist.mk b/dist.mk
index 0b00dac831334bdbab26037636c579cff32fd258..3d224765dd73506aa352860be3b1351cc0bdc085 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1211 2018/02/11 20:16:59 tom Exp $
+# $Id: dist.mk,v 1.1212 2018/02/18 15:53:22 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -37,7 +37,7 @@ SHELL = /bin/sh
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 6
 NCURSES_MINOR = 1
-NCURSES_PATCH = 20180217
+NCURSES_PATCH = 20180224
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 84f4810834f342327ba5677834785c8082645393..b4df127287920d1531876d537fe649104eaee67f 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.675 $
-#      $Date: 2018/01/27 15:14:08 $
+#      $Revision: 1.682 $
+#      $Date: 2018/02/24 14:23:54 $
 #
 # 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
@@ -368,7 +368,7 @@ ansi+sgr|ANSI graphic renditions,
        sgr0=\E[0m,
 ansi+sgrso|ANSI standout only,
        rmso=\E[m, smso=\E[7m,
-ansi+sgrul|ansi underline only,
+ansi+sgrul|ANSI underline only,
        rmul=\E[m, smul=\E[4m,
 ansi+sgrbold|ANSI graphic renditions; assuming terminal has bold; not dim,
        bold=\E[1m,
@@ -387,7 +387,7 @@ ansi+csr|ANSI scroll-region plus cursor save & restore,
 # characters sent to the printer do not echo on the screen. DEC terminals
 # can also be put into autoprinter mode, where each line is sent to the
 # printer as you move off that line, e.g., by a carriage return.
-ansi+pp|ansi printer port,
+ansi+pp|ANSI printer port,
        mc5i,
        mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
 dec+pp|DEC autoprinter mode,
@@ -544,7 +544,7 @@ ansi-mtabs|any ansi terminal with pessimistic assumptions,
 # USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
 #
 # (Added vt100 <rc>,<sc> to quiet a tic warning --esr)
-ansi77|ansi 3.64 standard 1977 version,
+ansi77|ANSI 3.64 standard 1977 version,
        OTbs, am, mir,
        cols#80, it#8, lines#24,
        bel=^G, clear=\E[;H\E[2J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
@@ -3578,7 +3578,7 @@ vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
        cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
        dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
-       ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+       ed=\E[J, el=\E[K, flash=\E[?5h$<200/>\E[?5l, fsl=\E[$},
        home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
        il1=\E[L, ind=\ED,
        is2=\E<\E\sF\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r
@@ -3628,7 +3628,7 @@ vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
        dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
-       el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+       el=\E[K$<4/>, flash=\E[?5h$<200/>\E[?5l, fsl=\E[$},
        home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
        il=\E[%p1%dL, il1=\E[L, ind=\ED,
        is2=\E<\E\sF\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r
@@ -5400,16 +5400,16 @@ termite|VTE-based terminal,
        ht=^I, hts=\EH, ind=\n, indn=\E[%p1%dS, invis=\E[8m,
        is2=\E[!p\E[?3;4l\E[4l\E>, kb2=\EOE, kbs=^?, kcbt=\E[Z,
        kent=\EOM, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM,
-       rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l,
-       rmcup=\E[?1049l, rmkx=\E[?1l\E>, rmso=\E[27m,
-       rmul=\E[24m, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
+       rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
+       rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+       rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
        sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
            %t;7%;%?%p7%t;8%;m,
-       sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h,
-       smcup=\E[?1049h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-       tbc=\E[3g, vpa=\E[%i%p1%dd, use=ansi+idc, use=ansi+idl,
-       use=ansi+enq, use=xterm+256color, use=ecma+color,
-       use=xterm+pcfkeys, use=xterm+sl-twm,
+       sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+       vpa=\E[%i%p1%dd, use=ansi+idc, use=ansi+idl,
+       use=ansi+enq, use=ecma+italics, use=xterm+256color,
+       use=ecma+color, use=xterm+pcfkeys, use=xterm+sl-twm,
 
 #### Other GNOME
 # Multi-Gnome-Terminal 1.6.2
@@ -5829,7 +5829,37 @@ rxvt+pcfkeys|fragment for PC-style fkeys,
        kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa,
 
 # rxvt was originally "xvt", first announced in April 1993:
-#      http://www.informatica.co.cr/linux-desktops/research/1993/0416.html
+#      http://www.krsaborio.net/linux-desktops/research/1993/0416.html
+#------------------------------------------------------------------------------
+# Article: 567 of comp.os.linux.announce
+# Path: pavo.csi.cam.ac.uk!warwick!uknet!pipex!uunet!zaphod.mps.ohio-state.edu!
+# caen!batcomputer!theory.TC.Cornell.EDU!mdw
+# From: nation@rocket.sanders.com (Robert Nation)
+# Newsgroups: comp.os.linux.announce
+# Subject: xvt upload
+# Date: 16 Apr 1993 18:13:07 GMT
+# Organization: Cornell Theory Center
+# Lines: 13
+# Approved: linux-announce@tc.cornell.edu (Matt Welsh)
+# Message-ID: <1qmsvj$pvj@fitz.TC.Cornell.EDU>
+# NNTP-Posting-Host: theory.tc.cornell.edu
+# Keywords: xvt, xterm, Xwindows
+# Originator: mdw@theory.TC.Cornell.EDU
+# 
+# Rxvt has been uploaded to /pub/Linux/Incoming/rxvt.tar.z and
+# rxvt.README on sunsite.unc.edu.
+# 
+# Xvt is an xterm replacement which uses a little less memory, and is 
+# suitable for use on machines with small memories. Tek4010 support
+# is removed.
+# 
+# Modifications were made by Rob Nation (nation@rocket.sanders.lockheed.com) 
+# to make it a little more compact, and to add and remove certain features.
+# 
+# 
+# -- 
+# Send submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
+#------------------------------------------------------------------------------
 #
 # Though its change-log does not mention this, John Davis has stated that he
 # was the author of the changes to use the bce ("new color model") which was
@@ -5840,7 +5870,7 @@ rxvt+pcfkeys|fragment for PC-style fkeys,
 # rxvt had usable color support with 2.16 (April 2, 1996), with some help by my
 # work on vttest, as well as bug reports to Mark Olesen.  For instance, the fix
 # mentioned here
-#      http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
+#      https://web.archive.org/web/20141016124430/http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
 # was from one of my bug-reports -TD
 #
 # While the color model both for xterm and rxvt was based on Linux console,
@@ -6248,6 +6278,10 @@ st|stterm| simpleterm,
 #      italics may show up with yellow color
 #      has control cursor-keys, alt cursor-keys, still no combinations
 #      has control pageup/down
+# tmux extensions, see TERMINFO EXTENSIONS in tmux(1)
+#      Se and Ss are implemented in the source-code, but the terminfo
+#      provided with the source is incorrect, since Se/Ss are mis-coded
+#      as booleans rather than strings.
 st-0.7|simpleterm 0.7,
        ccc,
        dim=\E[2m,
@@ -6260,11 +6294,12 @@ st-0.7|simpleterm 0.7,
             %=%t3%e%p1%d%;m,
        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%;%?%p7%t;8%;m,
-       Ss=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B, kDN5=\E[1;5B,
-       kLFT3=\E[1;3D, kLFT5=\E[1;5D, kNXT3=\E[6;3~,
-       kNXT5=\E[6;5~, kPRV3=\E[5;3~, kPRV5=\E[5;5~,
-       kRIT3=\E[1;3C, kRIT5=\E[1;5C, kUP3=\E[1;3A, kUP5=\E[1;5A,
-       use=ecma+strikeout, use=st-0.6,
+       Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
+       kDN3=\E[1;3B, kDN5=\E[1;5B, kLFT3=\E[1;3D, kLFT5=\E[1;5D,
+       kNXT3=\E[6;3~, kNXT5=\E[6;5~, kPRV3=\E[5;3~,
+       kPRV5=\E[5;5~, kRIT3=\E[1;3C, kRIT5=\E[1;5C,
+       kUP3=\E[1;3A, kUP5=\E[1;5A, use=ecma+strikeout,
+       use=st-0.6,
 
 # st-0.4.1
 #
@@ -6402,7 +6437,8 @@ st-256color|stterm-256color|simpleterm with 256 colors,
        initc@, oc@, use=xterm+256color, use=st,
 
 #### TERMINATOR
-# https://code.google.com/p/jessies/
+# https://github.com/software-jessies-org/jessies/wiki/Terminator
+#
 # Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit
 # Debian/current -TD (2011/8/20)
 #
@@ -6473,7 +6509,7 @@ terminator|Terminator no line wrap,
        use=xterm+sl-twm,
 
 #### TERMINOLOGY
-# http://enlightenment.org
+# https://www.enlightenment.org/about-terminology
 #
 # Tested terminology-0.3.0, 0.6.1, using tack and vttest.  This is not a vt100
 # emulator, nor is it compatible with xterm, but it uses a few features from
@@ -7646,7 +7682,7 @@ mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
 # Use this for cygwin32 (tested with beta 19.1)
 # underline is colored bright magenta
 # shifted kf1-kf12 are kf11-kf22
-cygwinB19|ansi emulation for cygwin32,
+cygwinB19|ANSI emulation for cygwin32,
        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
        kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
        kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
@@ -7707,7 +7743,7 @@ cygwinB19|ansi emulation for cygwin32,
 # 2005/11/12 -TD
 #      Remove cbt since it does not work in current cygwin
 #      Add 'mir' and 'in' flags based on tack
-cygwin|ansi emulation for Cygwin,
+cygwin|ANSI emulation for Cygwin,
        am, hs, mir, msgr, xon,
        colors#8, it#8, pairs#64,
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
@@ -7755,7 +7791,7 @@ cygwinDBG|Debug Version for Cygwin,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
        dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-       flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
+       flash=\E[?5h$<200/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
        ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
        il1=\E[L, ind=\n, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$,
        kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
@@ -7894,7 +7930,7 @@ cygwinDBG|Debug Version for Cygwin,
 #      Alt-X                   \E[104~
 #      Alt-Y                   \E[105~
 #      Alt-Z                   \E[106~
-djgpp|ansi emulation for DJGPP alpha,
+djgpp|ANSI emulation for DJGPP alpha,
        am, bce, msgr, xhp, xon, xt,
        colors#8, it#8, pairs#64,
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
@@ -14217,7 +14253,7 @@ cit101e-rv|Citoh CIT-101e (sets reverse video),
        cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-       dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
+       dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
        home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
        ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dS,
        is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(
@@ -19754,7 +19790,7 @@ minix-3.0|minix console (v3.0),
        use=ecma+color, use=minix-1.7,
 
 # See
-#      http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
+#      https://web.archive.org/web/20030914201935/http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
 # This is the entry provided with minix 1.7.4, with bogus :ri: removed.
 minix-1.7|minix console (v1.7),
        am, xenl,
@@ -25697,4 +25733,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      + add mlterm-direct -TD
 #      + add descriptions for ANSI building-blocks -TD
 #
+# 2018-02-24
+#      + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
+#      + fix remaining flash capabilities with trailing mandatory delays -TD
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index 7284b02d51bf79bd9038d06cf5ac05a566b62505..6aa0e0396d382f5dd41b718112d523ab18971239 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -47,7 +47,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: comp_parse.c,v 1.100 2017/09/20 00:37:08 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.101 2018/02/24 22:33:40 tom Exp $")
 
 static void sanity_check2(TERMTYPE2 *, bool);
 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2;
@@ -265,6 +265,114 @@ _nc_read_entry_source(FILE *fp, char *buf,
     _nc_suppress_warnings = oldsuppress;
 }
 
+#if NCURSES_XNAMES
+static unsigned
+find_capname(TERMTYPE2 *p, const char *name)
+{
+    unsigned num_names = NUM_EXT_NAMES(p);
+    unsigned n;
+    for (n = 0; n < num_names; ++n) {
+       if (!strcmp(p->ext_Names[n], name))
+           break;
+    }
+    return n;
+}
+
+static int
+extended_captype(TERMTYPE2 *p, unsigned which)
+{
+    int result = UNDEF;
+    unsigned limit = 0;
+    limit += p->ext_Booleans;
+    if (limit != 0 && which < limit) {
+       result = BOOLEAN;
+    } else {
+       limit += p->ext_Numbers;
+       if (limit != 0 && which < limit) {
+           result = NUMBER;
+       } else {
+           limit += p->ext_Strings;
+           if (limit != 0 && which < limit) {
+               result = STRING;
+           } else if (which >= limit) {
+               result = CANCEL;
+           }
+       }
+    }
+    return result;
+}
+
+static const char *
+name_of_captype(int which)
+{
+    const char *result = "?";
+    switch (which) {
+    case BOOLEAN:
+       result = "boolean";
+       break;
+    case NUMBER:
+       result = "number";
+       break;
+    case STRING:
+       result = "string";
+       break;
+    }
+    return result;
+}
+
+/*
+ * Disallow changing the type of an extended capability when doing a "use"
+ * if one or the other is a string.
+ */
+static int
+invalid_merge(TERMTYPE2 *to, TERMTYPE2 *from)
+{
+    int rc = FALSE;
+    char *to_name = _nc_first_name(to->term_names);
+    char *from_name = strdup(_nc_first_name(from->term_names));
+    unsigned num_names = NUM_EXT_NAMES(from);
+    unsigned n;
+
+    for (n = 0; n < num_names; ++n) {
+       const char *capname = from->ext_Names[n];
+       int tt = extended_captype(to, find_capname(to, capname));
+       int tf = extended_captype(from, n);
+
+       if (tt <= STRING
+           && tf <= STRING
+           && (tt == STRING) != (tf == STRING)) {
+           if (from_name != 0 && strcmp(to_name, from_name)) {
+               DEBUG(2,
+                     ("merge of %s to %s changes type of %s from %s to %s",
+                      from_name,
+                      to_name,
+                      from->ext_Names[n],
+                      name_of_captype(tf),
+                      name_of_captype(tt)));
+           } else {
+               DEBUG(2, ("merge of %s changes type of %s from %s to %s",
+                         to_name,
+                         from->ext_Names[n],
+                         name_of_captype(tf),
+                         name_of_captype(tt)));
+           }
+           _nc_warning("merge changes type of %s from %s to %s",
+                       from->ext_Names[n],
+                       name_of_captype(tf),
+                       name_of_captype(tt));
+           rc = TRUE;
+       }
+    }
+    free(from_name);
+    return rc;
+}
+#define validate_merge(p, q) \
+       if (invalid_merge(&((p)->tterm), &((q)->tterm))) \
+               return FALSE
+#else
+#define validate_merge(p, q)   /* nothing */
+#endif
+
 NCURSES_EXPORT(int)
 _nc_resolve_uses2(bool fullresolve, bool literal)
 /* try to resolve all use capabilities */
@@ -412,13 +520,17 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
                     * Now merge in each use entry in the proper
                     * (reverse) order.
                     */
-                   for (; qp->nuses; qp->nuses--)
+                   for (; qp->nuses; qp->nuses--) {
+                       validate_merge(&merged,
+                                      qp->uses[qp->nuses - 1].link);
                        _nc_merge_entry(&merged,
                                        qp->uses[qp->nuses - 1].link);
+                   }
 
                    /*
                     * Now merge in the original entry.
                     */
+                   validate_merge(&merged, qp);
                    _nc_merge_entry(&merged, qp);
 
                    /*
index 29656e2b9364e75806533427de35146d7612cee1..ea4a58c0d3876565149e5334a3a5b0113874f57d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -56,7 +56,7 @@
 #include <sys/types.h>
 #include <tic.h>
 
-MODULE_ID("$Id: read_termcap.c,v 1.93 2017/04/22 16:11:03 tom Exp $")
+MODULE_ID("$Id: read_termcap.c,v 1.94 2018/02/24 22:36:15 tom Exp $")
 
 #if !PURE_TERMINFO
 
@@ -1141,7 +1141,8 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp)
        return (TGETENT_ERR);
 
     /* resolve all use references */
-    _nc_resolve_uses2(TRUE, FALSE);
+    if (_nc_resolve_uses2(TRUE, FALSE) != TRUE)
+       return (TGETENT_ERR);
 
     /* find a terminal matching tn, if we can */
 #if USE_GETCAP_CACHE
index 365a42945fe9eae11e5a68e2b03c9e4daf903c1f..b7c44070d4be1b2413b8d019777aa2035496b820 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180217) unstable; urgency=low
+ncurses6 (6.1+20180224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 11 Feb 2018 15:16:59 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 18 Feb 2018 10:53:22 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 365a42945fe9eae11e5a68e2b03c9e4daf903c1f..b7c44070d4be1b2413b8d019777aa2035496b820 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180217) unstable; urgency=low
+ncurses6 (6.1+20180224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 11 Feb 2018 15:16:59 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 18 Feb 2018 10:53:22 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 494e11ab8451f39a4eedb07304950552adc26eac..c23db3330d4bf7a42ad9735927b1e3b3cf0c9b0e 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180217) unstable; urgency=low
+ncurses6 (6.1+20180224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 11 Feb 2018 15:16:59 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 18 Feb 2018 10:53:22 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index 3fd4ae51f7574664f48d83d85153ccfa3a117032..0c8a757004a0707f6c4329a3cefe4baf5f5f0312 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.258 2018/02/11 20:16:59 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.259 2018/02/18 15:53:22 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 "1"\r
 !define VERSION_YYYY  "2018"\r
-!define VERSION_MMDD  "0217"\r
+!define VERSION_MMDD  "0224"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 64861fa0ae914f0dcfe49987d4bfeefbc1adca63..491a688a17d979be351eb2c8849bd620a04e25cd 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.1
-Release: 20180217
+Release: 20180224
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 16b4d4d8feb0fef23e26e7526db02b6a9e63b420..5689a3fbe3f14ddf13effb26c56918e65bc30ec4 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.1
-Release: 20180217
+Release: 20180224
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz