1# ncurses 6.1 - patch 20191015 - Thomas E. Dickey 2# 3# ------------------------------------------------------------------------------ 4# 5# Ncurses 6.1 is at 6# ftp.gnu.org:/pub/gnu 7# 8# Patches for ncurses 6.1 can be found at 9# ftp://ftp.invisible-island.net/ncurses/6.1 10# http://invisible-mirror.net/archives/ncurses/6.1 11# 12# ------------------------------------------------------------------------------ 13# ftp://ftp.invisible-island.net/ncurses/6.1/ncurses-6.1-20191015.patch.gz 14# patch by Thomas E. Dickey <dickey@invisible-island.net> 15# created Wed Oct 16 00:42:21 UTC 2019 16# ------------------------------------------------------------------------------ 17# NEWS | 10 +++++++++- 18# VERSION | 2 +- 19# dist.mk | 4 ++-- 20# ncurses/tinfo/captoinfo.c | 34 ++++++++++++++++++++-------------- 21# package/debian-mingw/changelog | 4 ++-- 22# package/debian-mingw64/changelog | 4 ++-- 23# package/debian/changelog | 4 ++-- 24# package/mingw-ncurses.nsi | 4 ++-- 25# package/mingw-ncurses.spec | 2 +- 26# package/ncurses.spec | 2 +- 27# package/ncursest.spec | 2 +- 28# progs/tic.c | 5 +++-- 29# 12 files changed, 46 insertions(+), 31 deletions(-) 30# ------------------------------------------------------------------------------ 31Index: NEWS 32Prereq: 1.3389 33--- ncurses-6.1-20191012+/NEWS 2019-10-12 21:17:50.000000000 +0000 34+++ ncurses-6.1-20191015/NEWS 2019-10-16 00:04:31.000000000 +0000 35@@ -25,7 +25,7 @@ 36 -- sale, use or other dealings in this Software without prior written -- 37 -- authorization. -- 38 ------------------------------------------------------------------------------- 39--- $Id: NEWS,v 1.3389 2019/10/12 21:17:50 tom Exp $ 40+-- $Id: NEWS,v 1.3393 2019/10/16 00:04:31 tom Exp $ 41 ------------------------------------------------------------------------------- 42 43 This is a log of changes that ncurses has gone through since Zeyd started 44@@ -45,6 +45,14 @@ 45 Changes through 1.9.9e did not credit all contributions; 46 it is not possible to add this information. 47 48+20191015 49+ + improve buffer-checks in captoinfo.c, for some cases when the 50+ input string is shorter than expected. 51+ > fix two errata in tic (report/testcases by Hongxu Chen): 52+ + check for missing character after backslash in write_it 53+ + check for missing characters after "%>" when converting from termcap 54+ syntax (cf: 980530). 55+ 56 20191012 57 + amend recent changes to ncurses*-config and pc-files to filter out 58 Debian linker-flags (report by Sven Joachim, cf: 20150516). 59Index: VERSION 60--- ncurses-6.1-20191012+/VERSION 2019-10-12 15:30:55.000000000 +0000 61+++ ncurses-6.1-20191015/VERSION 2019-10-15 21:46:57.000000000 +0000 62@@ -1 +1 @@ 63-5:0:10 6.1 20191012 64+5:0:10 6.1 20191015 65Index: dist.mk 66Prereq: 1.1309 67--- ncurses-6.1-20191012+/dist.mk 2019-10-12 15:30:55.000000000 +0000 68+++ ncurses-6.1-20191015/dist.mk 2019-10-15 21:46:57.000000000 +0000 69@@ -25,7 +25,7 @@ 70 # use or other dealings in this Software without prior written # 71 # authorization. # 72 ############################################################################## 73-# $Id: dist.mk,v 1.1309 2019/10/12 15:30:55 tom Exp $ 74+# $Id: dist.mk,v 1.1310 2019/10/15 21:46:57 tom Exp $ 75 # Makefile for creating ncurses distributions. 76 # 77 # This only needs to be used directly as a makefile by developers, but 78@@ -37,7 +37,7 @@ 79 # These define the major/minor/patch versions of ncurses. 80 NCURSES_MAJOR = 6 81 NCURSES_MINOR = 1 82-NCURSES_PATCH = 20191012 83+NCURSES_PATCH = 20191015 84 85 # We don't append the patch to the version, since this only applies to releases 86 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) 87Index: ncurses/tinfo/captoinfo.c 88Prereq: 1.96 89--- ncurses-6.1-20191012+/ncurses/tinfo/captoinfo.c 2018-05-12 16:46:55.000000000 +0000 90+++ ncurses-6.1-20191015/ncurses/tinfo/captoinfo.c 2019-10-15 23:13:35.000000000 +0000 91@@ -1,5 +1,5 @@ 92 /**************************************************************************** 93- * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * 94+ * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc. * 95 * * 96 * Permission is hereby granted, free of charge, to any person obtaining a * 97 * copy of this software and associated documentation files (the * 98@@ -97,7 +97,7 @@ 99 #include <ctype.h> 100 #include <tic.h> 101 102-MODULE_ID("$Id: captoinfo.c,v 1.96 2018/05/12 16:46:55 tom Exp $") 103+MODULE_ID("$Id: captoinfo.c,v 1.97 2019/10/15 23:13:35 tom Exp $") 104 105 #if 0 106 #define DEBUG_THIS(p) DEBUG(9, p) 107@@ -210,7 +210,7 @@ 108 break; 109 default: 110 c = UChar(*sp); 111- len = 2; 112+ len = (c != '\0') ? 2 : 1; 113 break; 114 } 115 break; 116@@ -224,13 +224,13 @@ 117 break; 118 default: 119 c = UChar(*sp); 120- len = 1; 121+ len = (c != '\0') ? 1 : 0; 122 } 123 if (isgraph(c) && c != ',' && c != '\'' && c != '\\' && c != ':') { 124 dp = save_string(dp, "%\'"); 125 dp = save_char(dp, c); 126 dp = save_char(dp, '\''); 127- } else { 128+ } else if (c != '\0') { 129 dp = save_string(dp, "%{"); 130 if (c > 99) 131 dp = save_char(dp, c / 100 + '0'); 132@@ -313,7 +313,7 @@ 133 if (s == 0) 134 s = ""; 135 if (parameterized >= 0 && isdigit(UChar(*s))) 136- for (capstart = s;; s++) 137+ for (capstart = s; *s != '\0'; s++) 138 if (!(isdigit(UChar(*s)) || *s == '*' || *s == '.')) 139 break; 140 141@@ -360,13 +360,18 @@ 142 dp = save_string(dp, "%{2}%*%-"); 143 break; 144 case '>': 145- getparm(param, 2); 146 /* %?%{x}%>%t%{y}%+%; */ 147- dp = save_string(dp, "%?"); 148- s += cvtchar(s); 149- dp = save_string(dp, "%>%t"); 150- s += cvtchar(s); 151- dp = save_string(dp, "%+%;"); 152+ if (s[0] && s[1]) { 153+ getparm(param, 2); 154+ dp = save_string(dp, "%?"); 155+ s += cvtchar(s); 156+ dp = save_string(dp, "%>%t"); 157+ s += cvtchar(s); 158+ dp = save_string(dp, "%+%;"); 159+ } else { 160+ _nc_warning("expected two characters after %%>"); 161+ dp = save_string(dp, "%>"); 162+ } 163 break; 164 case 'a': 165 if ((*s == '=' || *s == '+' || *s == '-' 166@@ -492,7 +497,8 @@ 167 } 168 break; 169 default: 170- dp = save_char(dp, *s++); 171+ if (*s != '\0') 172+ dp = save_char(dp, *s++); 173 break; 174 } 175 } 176@@ -503,7 +509,7 @@ 177 */ 178 if (capstart) { 179 dp = save_string(dp, "$<"); 180- for (s = capstart;; s++) 181+ for (s = capstart; *s != '\0'; s++) 182 if (isdigit(UChar(*s)) || *s == '*' || *s == '.') 183 dp = save_char(dp, *s); 184 else 185Index: package/debian-mingw/changelog 186--- ncurses-6.1-20191012+/package/debian-mingw/changelog 2019-10-12 15:30:55.000000000 +0000 187+++ ncurses-6.1-20191015/package/debian-mingw/changelog 2019-10-15 21:46:57.000000000 +0000 188@@ -1,8 +1,8 @@ 189-ncurses6 (6.1+20191012) unstable; urgency=low 190+ncurses6 (6.1+20191015) unstable; urgency=low 191 192 * latest weekly patch 193 194- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 11 Oct 2019 19:37:45 -0400 195+ -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 15 Oct 2019 17:46:57 -0400 196 197 ncurses6 (5.9-20131005) unstable; urgency=low 198 199Index: package/debian-mingw64/changelog 200--- ncurses-6.1-20191012+/package/debian-mingw64/changelog 2019-10-12 15:30:55.000000000 +0000 201+++ ncurses-6.1-20191015/package/debian-mingw64/changelog 2019-10-15 21:46:57.000000000 +0000 202@@ -1,8 +1,8 @@ 203-ncurses6 (6.1+20191012) unstable; urgency=low 204+ncurses6 (6.1+20191015) unstable; urgency=low 205 206 * latest weekly patch 207 208- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 11 Oct 2019 19:37:45 -0400 209+ -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 15 Oct 2019 17:46:57 -0400 210 211 ncurses6 (5.9-20131005) unstable; urgency=low 212 213Index: package/debian/changelog 214--- ncurses-6.1-20191012+/package/debian/changelog 2019-10-12 15:30:55.000000000 +0000 215+++ ncurses-6.1-20191015/package/debian/changelog 2019-10-15 21:46:57.000000000 +0000 216@@ -1,8 +1,8 @@ 217-ncurses6 (6.1+20191012) unstable; urgency=low 218+ncurses6 (6.1+20191015) unstable; urgency=low 219 220 * latest weekly patch 221 222- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 11 Oct 2019 19:37:45 -0400 223+ -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 15 Oct 2019 17:46:57 -0400 224 225 ncurses6 (5.9-20120608) unstable; urgency=low 226 227Index: package/mingw-ncurses.nsi 228Prereq: 1.355 229--- ncurses-6.1-20191012+/package/mingw-ncurses.nsi 2019-10-12 15:30:55.000000000 +0000 230+++ ncurses-6.1-20191015/package/mingw-ncurses.nsi 2019-10-15 21:46:57.000000000 +0000 231@@ -1,4 +1,4 @@ 232-; $Id: mingw-ncurses.nsi,v 1.355 2019/10/12 15:30:55 tom Exp $ 233+; $Id: mingw-ncurses.nsi,v 1.356 2019/10/15 21:46:57 tom Exp $ 234 235 ; TODO add examples 236 ; TODO bump ABI to 6 237@@ -10,7 +10,7 @@ 238 !define VERSION_MAJOR "6" 239 !define VERSION_MINOR "1" 240 !define VERSION_YYYY "2019" 241-!define VERSION_MMDD "1012" 242+!define VERSION_MMDD "1015" 243 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} 244 245 !define MY_ABI "5" 246Index: package/mingw-ncurses.spec 247--- ncurses-6.1-20191012+/package/mingw-ncurses.spec 2019-10-12 15:30:55.000000000 +0000 248+++ ncurses-6.1-20191015/package/mingw-ncurses.spec 2019-10-15 21:46:57.000000000 +0000 249@@ -3,7 +3,7 @@ 250 Summary: shared libraries for terminal handling 251 Name: mingw32-ncurses6 252 Version: 6.1 253-Release: 20191012 254+Release: 20191015 255 License: X11 256 Group: Development/Libraries 257 Source: ncurses-%{version}-%{release}.tgz 258Index: package/ncurses.spec 259--- ncurses-6.1-20191012+/package/ncurses.spec 2019-10-12 15:30:55.000000000 +0000 260+++ ncurses-6.1-20191015/package/ncurses.spec 2019-10-15 21:46:57.000000000 +0000 261@@ -1,7 +1,7 @@ 262 Summary: shared libraries for terminal handling 263 Name: ncurses6 264 Version: 6.1 265-Release: 20191012 266+Release: 20191015 267 License: X11 268 Group: Development/Libraries 269 Source: ncurses-%{version}-%{release}.tgz 270Index: package/ncursest.spec 271--- ncurses-6.1-20191012+/package/ncursest.spec 2019-10-12 15:30:55.000000000 +0000 272+++ ncurses-6.1-20191015/package/ncursest.spec 2019-10-15 21:46:57.000000000 +0000 273@@ -1,7 +1,7 @@ 274 Summary: Curses library with POSIX thread support. 275 Name: ncursest6 276 Version: 6.1 277-Release: 20191012 278+Release: 20191015 279 License: X11 280 Group: Development/Libraries 281 Source: ncurses-%{version}-%{release}.tgz 282Index: progs/tic.c 283Prereq: 1.278 284--- ncurses-6.1-20191012+/progs/tic.c 2019-07-27 22:44:21.000000000 +0000 285+++ ncurses-6.1-20191015/progs/tic.c 2019-10-15 22:18:29.000000000 +0000 286@@ -48,7 +48,7 @@ 287 #include <parametrized.h> 288 #include <transform.h> 289 290-MODULE_ID("$Id: tic.c,v 1.278 2019/07/27 22:44:21 tom Exp $") 291+MODULE_ID("$Id: tic.c,v 1.279 2019/10/15 22:18:29 tom Exp $") 292 293 #define STDIN_NAME "<stdin>" 294 295@@ -218,7 +218,8 @@ 296 while ((ch = *t++) != 0) { 297 *d++ = (char) ch; 298 if (ch == '\\') { 299- *d++ = *t++; 300+ if ((*d++ = *t++) == '\0') 301+ break; 302 } else if ((ch == '%') 303 && (*t == L_BRACE)) { 304 char *v = 0; 305