Hello community, here is the log from the commit of package ncurses for openSUSE:Factory checked in at 2015-12-13 09:34:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ncurses (Old) and /work/SRC/openSUSE:Factory/.ncurses.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ncurses" Changes: -------- --- /work/SRC/openSUSE:Factory/ncurses/ncurses.changes 2015-11-22 10:57:40.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ncurses.new/ncurses.changes 2015-12-13 09:34:23.000000000 +0100 @@ -1,0 +2,21 @@ +Mon Nov 30 09:14:08 UTC 2015 - wer...@suse.de + +- Add ncurses patch 20151128 + + add missing assignment in lib_getch.c to make notimeout() work + (Debian #805618). + + add 't' toggle for notimeout() function in test/ncurses.c a/A screens + + add viewdata terminal description (Alexandre Montaron). + + fix a case in tic/infocmp for formatting capabilities where a + backslash at the end of a string was mishandled. + + fix some typos in curs_inopts.3x (Benno Schulenberg). + +------------------------------------------------------------------- +Mon Nov 23 13:03:09 UTC 2015 - wer...@suse.de + +- Add ncurses patch 20151121 + + fix some inconsistencies in the pccon* entries -TD + + add bold to pccon+sgr+acs and pccon-base (Tati Chevron). + + add keys f12-f124 to pccon+keys (Tati Chevron). + + add test/test_sgr.c program to exercise all combinations of sgr. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ncurses-6.0-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/ncurses-6.0-20151121.patch new/patches/ncurses-6.0-20151121.patch --- old/patches/ncurses-6.0-20151121.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches/ncurses-6.0-20151121.patch 2015-11-23 14:02:33.000000000 +0100 @@ -0,0 +1,720 @@ +# ncurses 6.0 - patch 20151121 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.0 is at +# ftp.gnu.org:/pub/gnu +# +# Patches for ncurses 6.0 can be found at +# ftp://invisible-island.net/ncurses/6.0 +# http://invisible-mirror.net/archives/ncurses/6.0 +# +# ------------------------------------------------------------------------------ +# ftp://invisible-island.net/ncurses/6.0/ncurses-6.0-20151121.patch.gz +# patch by Thomas E. Dickey <dic...@invisible-island.net> +# created Sun Nov 22 02:17:21 UTC 2015 +# ------------------------------------------------------------------------------ +# MANIFEST | 1 +# NEWS | 8 +# VERSION | 2 +# dist.mk | 4 +# man/curs_bkgd.3x | 3 +# misc/terminfo.src | 56 +++-- +# ncurses-6.0-20151121/test/test_sgr.c | 363 +++++++++++++++++++++++++++++++++ +# package/debian-mingw/changelog | 4 +# package/debian-mingw64/changelog | 4 +# package/debian/changelog | 4 +# package/mingw-ncurses.nsi | 4 +# package/mingw-ncurses.spec | 2 +# package/ncurses.spec | 2 +# test/modules | 3 +# test/programs | 3 +# 15 files changed, 428 insertions(+), 35 deletions(-) +# ------------------------------------------------------------------------------ +Index: MANIFEST +--- ncurses-6.0-20151107+/MANIFEST 2015-06-27 19:49:54.000000000 +0000 ++++ ncurses-6.0-20151121/MANIFEST 2015-11-22 01:12:19.000000000 +0000 +@@ -1162,6 +1162,7 @@ + ./test/test_inwstr.c + ./test/test_opaque.c + ./test/test_setupterm.c ++./test/test_sgr.c + ./test/test_vid_puts.c + ./test/test_vidputs.c + ./test/testaddch.c +Index: NEWS +Prereq: 1.2526 +--- ncurses-6.0-20151107+/NEWS 2015-11-08 01:57:15.000000000 +0000 ++++ ncurses-6.0-20151121/NEWS 2015-11-21 23:33:30.000000000 +0000 +@@ -25,7 +25,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.2526 2015/11/08 01:57:15 tom Exp $ ++-- $Id: NEWS,v 1.2530 2015/11/21 23:33:30 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -45,6 +45,12 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20151121 ++ + fix some inconsistencies in the pccon* entries -TD ++ + add bold to pccon+sgr+acs and pccon-base (Tati Chevron). ++ + add keys f12-f124 to pccon+keys (Tati Chevron). ++ + add test/test_sgr.c program to exercise all combinations of sgr. ++ + 20151107 + + modify tset's assignment to TERM in its output to reflect the name by + which the terminal description is found, rather than the primary +Index: VERSION +--- ncurses-6.0-20151107+/VERSION 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/VERSION 2015-11-21 15:55:51.000000000 +0000 +@@ -1 +1 @@ +-5:0:9 6.0 20151107 ++5:0:9 6.0 20151121 +Index: dist.mk +Prereq: 1.1078 +--- ncurses-6.0-20151107+/dist.mk 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/dist.mk 2015-11-21 15:55:51.000000000 +0000 +@@ -25,7 +25,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1078 2015/11/06 00:44:10 tom Exp $ ++# $Id: dist.mk,v 1.1080 2015/11/21 15:55:51 tom Exp $ + # Makefile for creating ncurses distributions. + # + # This only needs to be used directly as a makefile by developers, but +@@ -37,7 +37,7 @@ + # These define the major/minor/patch versions of ncurses. + NCURSES_MAJOR = 6 + NCURSES_MINOR = 0 +-NCURSES_PATCH = 20151107 ++NCURSES_PATCH = 20151121 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: man/curs_bkgd.3x +Prereq: 1.23 +--- ncurses-6.0-20151107+/man/curs_bkgd.3x 2015-07-21 00:11:05.000000000 +0000 ++++ ncurses-6.0-20151121/man/curs_bkgd.3x 2015-11-21 01:53:42.000000000 +0000 +@@ -26,7 +26,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_bkgd.3x,v 1.23 2015/07/21 00:11:05 tom Exp $ ++.\" $Id: curs_bkgd.3x,v 1.24 2015/11/21 01:53:42 tom Exp $ + .de bP + .IP \(bu 4 + .. +@@ -76,7 +76,6 @@ + .bP + Wherever the former background character + appears, it is changed to the new background character. +-.RE + .SS getbkgd + .PP + The \fBgetbkgd\fR function returns the given window's current background +Index: misc/terminfo.src +--- ncurses-6.0-20151107+/misc/terminfo.src 2015-10-24 17:56:55.000000000 +0000 ++++ ncurses-6.0-20151121/misc/terminfo.src 2015-11-22 01:01:00.000000000 +0000 +@@ -6,8 +6,8 @@ + # Report bugs and new terminal descriptions to + # bug-ncur...@gnu.org + # +-# $Revision: 1.554 $ +-# $Date: 2015/10/24 16:00:04 $ ++# $Revision: 1.558 $ ++# $Date: 2015/11/22 01:01:00 $ + # + # 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 +@@ -1277,7 +1277,7 @@ + # + kLFT5/kRIT5 work, but not up/down with control-modifier + # + kLFT/kRIT work, but not up/down with shift-modifier + # + there are a few predefined bindings with Alt, but no clear pattern. +-# + uses alt-key as UTF-8 "meta" something like xterm altSendsEscape ++# + uses alt-key as UTF-8 "meta" something like xterm altSendsEscape + # Using ncurses test-program with xterm-new: + # + no italics + # Using xterm's scripts: +@@ -2211,37 +2211,52 @@ + # Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD + # Changed kbs to DEL and removed keys that duplicate stty settings -TD + # ++# Notes from testing with vttest: ++# fails wrapping test ++# no 8-bit controls ++# identifies as vt200 with selective erase, but does not implement DECSCA ++# no vt52 mode ++# also lacks these: ++# ESC # 8 DEC Screen Alignment Test (DECALN). ++# CSI ? 5 h Reverse Video (DECSCNM). ++# + pccon+keys|OpenBSD PC keyboard keys, + kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, + kdch1=\E[3~, kend=\E[8~, kent=^M, kf1=\E[11~, kf10=\E[21~, +- kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~, ++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, ++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, ++ kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf21=\E[35~, ++ kf22=\E[36~, kf23=\E[37~, kf24=\E[38~, kf3=\E[13~, + kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, + kf9=\E[20~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, + krfr=^R, + pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console, + acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o, +- sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, ++ sgr=\E[0%?%p1%p3%|%t;7%;%?%p6%t;1%;%?%p2%t;4%;m, ++ sgr0=\E[m, + pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console, + acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + enacs=\E)0$<5>, rmacs=\E(B$<5>, +- sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>, ++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>, + sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>, ++# underline renders as color + pccon+colors|ANSI colors for OpenBSD PC console, + bce, +- colors#8, pairs#64, +- op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ colors#8, ncv#2, pairs#64, ++ op=\E[47;30m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + pccon+base|base capabilities for OpenBSD PC console, + am, km, mc5i, msgr, npc, nxon, xenl, xon, + cols#80, it#8, lines#24, +- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, +- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, +- dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, +- el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ++ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, ++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ++ dch=\E[%p1%dP, dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, ++ el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, + il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l, +- rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m, +- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, ++ rmso=\E[27m, rmul=\E[24m, rs2=\Ec$<50>, smam=\E[?7h, ++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, ++ u7=\E[6n, + pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics, +- use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys, ++ use=pccon+sgr+acs0, use=pccon+base, use=pccon+keys, + pccon0|OpenBSD PC console with simple ASCII pseudographics, + use=pccon0-m, use=pccon+colors, + pccon-m|OpenBSD PC console without colors, +@@ -9750,7 +9765,7 @@ + # (800)-800-WYSE (option 5 gets you a human). There's a Web page at the + # obvious address, <http://www.wyse.com>. They keep terminfo entries at + # https://web.archive.org/web/19970712022641/http://www.wyse.co.uk/support/appnotes/idxappnt.htm +-# ++# + # + # Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995. + # They now own the Qume and Amdek brands, too. So these are the people to +@@ -23767,7 +23782,14 @@ + # + updated minitel entries to fix kel problem with emacs, and add + # minitel1b-nb (Alexandre Montaron). + # + reviewed/updated nsterm entry Terminal.app in OSX -TD +-# + replace some dead URLs in comments with equivalents from the ++# + replace some dead URLs in commands with equivalents from the + # Internet Archive -TD + # ++# 2015-11-14 ++# + add bold to pccon+sgr+acs and pccon-base (Tati Chevron). ++# + add keys f12-f124 to pccon+keys (Tati Chevron). ++# ++# 2015-11-21 ++# + fix some inconsistencies in the pccon* entries -TD ++# + ######## SHANTIH! SHANTIH! SHANTIH! +Index: package/debian-mingw/changelog +--- ncurses-6.0-20151107+/package/debian-mingw/changelog 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/package/debian-mingw/changelog 2015-11-21 15:55:51.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.0+20151107) unstable; urgency=low ++ncurses6 (6.0+20151121) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Thu, 05 Nov 2015 19:44:10 -0500 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian-mingw64/changelog +--- ncurses-6.0-20151107+/package/debian-mingw64/changelog 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/package/debian-mingw64/changelog 2015-11-21 15:55:51.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.0+20151107) unstable; urgency=low ++ncurses6 (6.0+20151121) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Thu, 05 Nov 2015 19:44:10 -0500 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian/changelog +--- ncurses-6.0-20151107+/package/debian/changelog 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/package/debian/changelog 2015-11-21 15:55:51.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.0+20151107) unstable; urgency=low ++ncurses6 (6.0+20151121) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Thu, 05 Nov 2015 19:44:10 -0500 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500 + + ncurses6 (5.9-20120608) unstable; urgency=low + +Index: package/mingw-ncurses.nsi +Prereq: 1.131 +--- ncurses-6.0-20151107+/package/mingw-ncurses.nsi 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/package/mingw-ncurses.nsi 2015-11-21 15:55:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.131 2015/11/06 00:44:10 tom Exp $ ++; $Id: mingw-ncurses.nsi,v 1.133 2015/11/21 15:55:51 tom Exp $ + + ; TODO add examples + ; TODO bump ABI to 6 +@@ -10,7 +10,7 @@ + !define VERSION_MAJOR "6" + !define VERSION_MINOR "0" + !define VERSION_YYYY "2015" +-!define VERSION_MMDD "1107" ++!define VERSION_MMDD "1121" + !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} + + !define MY_ABI "5" +Index: package/mingw-ncurses.spec +--- ncurses-6.0-20151107+/package/mingw-ncurses.spec 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/package/mingw-ncurses.spec 2015-11-21 15:55:51.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.0 +-Release: 20151107 ++Release: 20151121 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncurses.spec +--- ncurses-6.0-20151107+/package/ncurses.spec 2015-11-06 00:44:10.000000000 +0000 ++++ ncurses-6.0-20151121/package/ncurses.spec 2015-11-21 15:55:51.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.0 +-Release: 20151107 ++Release: 20151121 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: test/modules +Prereq: 1.52 +--- ncurses-6.0-20151107+/test/modules 2015-06-27 10:40:27.000000000 +0000 ++++ ncurses-6.0-20151121/test/modules 2015-11-21 16:05:48.000000000 +0000 +@@ -1,4 +1,4 @@ +-# $Id: modules,v 1.52 2015/06/27 10:40:27 tom Exp $ ++# $Id: modules,v 1.53 2015/11/21 16:05:48 tom Exp $ + ############################################################################## + # Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. # + # # +@@ -90,6 +90,7 @@ + test_inwstr progs $(srcdir) $(HEADER_DEPS) + test_opaque progs $(srcdir) $(HEADER_DEPS) + test_setupterm progs $(srcdir) $(HEADER_DEPS) ++test_sgr progs $(srcdir) $(HEADER_DEPS) + test_vid_puts progs $(srcdir) $(HEADER_DEPS) + test_vidputs progs $(srcdir) $(HEADER_DEPS) + testaddch progs $(srcdir) $(HEADER_DEPS) +Index: test/programs +Prereq: 1.26 +--- ncurses-6.0-20151107+/test/programs 2015-06-27 10:40:53.000000000 +0000 ++++ ncurses-6.0-20151121/test/programs 2015-11-21 16:06:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-# $Id: programs,v 1.26 2015/06/27 10:40:53 tom Exp $ ++# $Id: programs,v 1.27 2015/11/21 16:06:12 tom Exp $ + ############################################################################## + # Copyright (c) 2006-2014,2015 Free Software Foundation, Inc. # + # # +@@ -87,6 +87,7 @@ + test_inwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_inwstr + test_opaque $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_opaque + test_setupterm $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_setupterm ++test_sgr $(LDFLAGS_TINFO) $(LOCAL_LIBS) test_sgr + test_vid_puts $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vid_puts + test_vidputs $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vidputs + testaddch $(LDFLAGS_CURSES) $(LOCAL_LIBS) testaddch +Index: test/test_sgr.c +--- /dev/null 2015-11-21 12:05:05.835999855 +0000 ++++ ncurses-6.0-20151121/test/test_sgr.c 2015-11-21 22:43:50.000000000 +0000 +@@ -0,0 +1,363 @@ ++/**************************************************************************** ++ * Copyright (c) 2015 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 * ++ * "Software"), to deal in the Software without restriction, including * ++ * without limitation the rights to use, copy, modify, merge, publish, * ++ * distribute, distribute with modifications, sublicense, and/or sell * ++ * copies of the Software, and to permit persons to whom the Software is * ++ * furnished to do so, subject to the following conditions: * ++ * * ++ * The above copyright notice and this permission notice shall be included * ++ * in all copies or substantial portions of the Software. * ++ * * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * ++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * ++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * ++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * ++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ++ * * ++ * Except as contained in this notice, the name(s) of the above copyright * ++ * holders shall not be used in advertising or otherwise to promote the * ++ * sale, use or other dealings in this Software without prior written * ++ * authorization. * ++ ****************************************************************************/ ++ ++/* ++ * Author: Thomas E. Dickey ++ * ++ * $Id: test_sgr.c,v 1.4 2015/11/21 22:43:50 tom Exp $ ++ * ++ * A simple demo of the sgr/sgr0 terminal capabilities. ++ */ ++#define USE_TINFO ++#include <test.priv.h> ++ ++static void failed(const char *) GCC_NORETURN; ++ ++static void ++failed(const char *msg) ++{ ++ fprintf(stderr, "%s\n", msg); ++ ExitProgram(EXIT_FAILURE); ++} ++ ++#if HAVE_TIGETSTR ++ ++static bool q_opt = FALSE; ++ ++static char *d_opt; ++static char *e_opt; ++static char **db_list; ++static int db_item; ++ ++static long total_values; ++ ++static char * ++make_dbitem(char *p, char *q) ++{ ++ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q)); ++ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q); ++ return result; ++} ++ ++static void ++make_dblist(void) ++{ ++ if (d_opt && e_opt) { ++ int pass; ++ ++ for (pass = 0; pass < 2; ++pass) { ++ char *p, *q; ++ size_t count = 0; ++ ++ for (p = q = d_opt; *p != '\0'; ++p) { ++ if (*p == ':') { ++ if (p != q + 1) { ++ if (pass) { ++ db_list[count] = make_dbitem(p, q); ++ } ++ count++; ++ } ++ q = p + 1; ++ } ++ } ++ if (p != q + 1) { ++ if (pass) { ++ db_list[count] = make_dbitem(p, q); ++ } ++ count++; ++ } ++ if (!pass) { ++ db_list = typeCalloc(char *, count + 1); ++ } ++ } ++ } ++} ++ ++static char * ++next_dbitem(void) ++{ ++ char *result = 0; ++ ++ if (db_list) { ++ if ((result = db_list[db_item]) == 0) { ++ db_item = 0; ++ result = db_list[0]; ++ } else { ++ db_item++; ++ } ++ } ++ printf("** %s\n", result); ++ return result; ++} ++ ++#ifdef NO_LEAKS ++static void ++free_dblist(void) ++{ ++ if (db_list) { ++ int n; ++ for (n = 0; db_list[n]; ++n) ++ free(db_list[n]); ++ free(db_list); ++ db_list = 0; ++ } ++} ++#endif ++ ++#define MAXPAR 9 ++#define MAXSGR (1 << MAXPAR) ++#define BITS2P(n) (count & (1 << (n - 1))) ++#define MASK_SMSO (1 << 0) ++#define MASK_BOLD (1 << 5) ++#define MASK_REV (1 << 2) ++ ++static void ++dumpit(unsigned bits, unsigned ignore, const char *sgr, const char *sgr0) ++{ ++ static const char sample[] = "abcdefghijklm"; ++ static char params[] = "SURBDBIPA"; ++ unsigned n; ++ ++ printf("%4d ", bits); ++ bits &= ~ignore; ++ for (n = 0; n < MAXPAR; ++n) { ++ putchar((bits & (1 << n)) ? params[n] : '-'); ++ } ++ putchar(' '); ++ putp(sgr); ++ putp(sample); ++ putp(sgr0); ++ putchar('\n'); ++} ++ ++static bool ++one_bit(unsigned a, unsigned b) ++{ ++ unsigned c = (a ^ b); ++ bool result = FALSE; ++ if (c) { ++ while (!(c & 1)) { ++ c >>= 1; ++ } ++ result = (c == 1); ++ } ++ return result; ++} ++ ++static void ++brute_force(const char *name) ++{ ++ unsigned count; ++ char *my_sgr; ++ char *my_sgr0; ++ char *my_bold; ++ char *my_revs; ++ char *my_smso; ++ ++ if (db_list) { ++ putenv(next_dbitem()); ++ } ++ if (!q_opt) ++ printf("Terminal type \"%s\"\n", name); ++ setupterm((NCURSES_CONST char *) name, 1, (int *) 0); ++ if (!q_opt) { ++ if (strcmp(name, ttytype)) ++ printf("... actual \"%s\"\n", ttytype); ++ } ++ ++ my_sgr = tigetstr("sgr"); ++ my_sgr0 = tigetstr("sgr0"); ++ my_bold = tigetstr("bold"); ++ my_revs = tigetstr("rev"); ++ my_smso = tigetstr("smso"); ++ ++ if (!VALID_STRING(my_sgr)) { ++ fprintf(stderr, "no \"sgr\" capability found\n"); ++ } else if (!VALID_STRING(my_sgr0)) { ++ fprintf(stderr, "no \"sgr0\" capability found\n"); ++ } else { ++ char *values[MAXSGR]; ++ unsigned j; ++ unsigned ignore = 0; ++ unsigned reason = 0; ++ unsigned repeat = 0; ++ for (count = 0; count < MAXSGR; ++count) { ++ values[count] = tparm(my_sgr, ++ BITS2P(1), ++ BITS2P(2), ++ BITS2P(3), ++ BITS2P(4), ++ BITS2P(5), ++ BITS2P(6), ++ BITS2P(7), ++ BITS2P(8), ++ BITS2P(9)); ++ if (values[count] != 0) { ++ values[count] = strdup(values[count]); ++ } ++ } ++ for (count = 0; count < MAXSGR; ++count) { ++ if (values[count] != 0) { ++ for (j = count + 1; j < MAXSGR; ++j) { ++ if (values[j] == 0) ++ continue; ++ if (strcmp(values[count], values[j])) ++ continue; ++ if (one_bit(count, j)) { ++ free(values[j]); ++ values[j] = 0; ++ } ++ } ++ } ++ } ++ for (j = 0; j < MAXPAR; ++j) { ++ unsigned mask = (1 << j); ++ for (count = 0; count < MAXSGR; ++count) { ++ if ((count & mask) != 0) ++ continue; ++ if (values[count] != 0 && values[count + mask] != 0) { ++ mask = 0; ++ break; ++ } ++ } ++ ignore |= mask; ++ } ++ /* smso is tested first, but often duplicates bold or reverse. */ ++ if (VALID_STRING(my_smso)) { ++ if (VALID_STRING(my_bold) && !strcmp(my_bold, my_smso)) { ++ repeat |= MASK_SMSO; ++ reason = MASK_BOLD; ++ } ++ if (VALID_STRING(my_revs) && !strcmp(my_revs, my_smso)) { ++ repeat |= MASK_SMSO; ++ reason = MASK_REV; ++ } ++ } ++ for (count = 0; count < MAXSGR; ++count) { ++ if (values[count] != 0) { ++ bool found = FALSE; ++ if ((repeat & MASK_SMSO) != 0 ++ && (count & MASK_SMSO) != 0) { ++ found = TRUE; ++ } else { ++ for (j = 0; j < count; ++j) { ++ if (values[j] != 0 && !strcmp(values[j], values[count])) { ++ if ((repeat & MASK_SMSO) != 0 ++ && (j & MASK_SMSO) != 0 ++ && (count & reason) != 0) { ++ continue; ++ } ++ found = TRUE; ++ break; ++ } ++ } ++ } ++ if (!found) { ++ dumpit(count, ignore, values[count], my_sgr0); ++ ++total_values; ++ } ++ } ++ } ++ } ++ del_curterm(cur_term); ++} ++ ++static void ++usage(void) ++{ ++ static const char *msg[] = ++ { ++ "Usage: test_sgr [options] [terminal]", ++ "", ++ "Print all distinct combinations of sgr capability.", ++ "", ++ "Options:", ++ " -d LIST colon-separated list of databases to use", ++ " -e NAME environment variable to set with -d option", ++ " -q quiet (prints only counts)", ++ }; ++ unsigned n; ++ for (n = 0; n < SIZEOF(msg); ++n) { ++ fprintf(stderr, "%s\n", msg[n]); ++ } ++ ExitProgram(EXIT_FAILURE); ++} ++ ++int ++main(int argc, char *argv[]) ++{ ++ int n; ++ char *name; ++ ++ while ((n = getopt(argc, argv, "d:e:q")) != -1) { ++ switch (n) { ++ case 'd': ++ d_opt = optarg; ++ break; ++ case 'e': ++ e_opt = optarg; ++ break; ++ case 'q': ++ q_opt = TRUE; ++ break; ++ default: ++ usage(); ++ break; ++ } ++ } ++ ++ make_dblist(); ++ ++ if (optind < argc) { ++ for (n = optind; n < argc; ++n) { ++ brute_force(argv[n]); ++ } ++ } else if ((name = getenv("TERM")) != 0) { ++ brute_force(name); ++ } else { ++ static char dumb[] = "dumb"; ++ brute_force(dumb); ++ } ++ ++ printf("%ld distinct values\n", total_values); ++ ++#ifdef NO_LEAKS ++ free_dblist(); ++#endif ++ ++ ExitProgram(EXIT_SUCCESS); ++} ++ ++#else /* !HAVE_TIGETSTR */ ++int ++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) ++{ ++ failed("This program requires the terminfo functions such as tigetstr"); ++ ExitProgram(EXIT_FAILURE); ++} ++#endif /* HAVE_TIGETSTR */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/ncurses-6.0-20151128.patch new/patches/ncurses-6.0-20151128.patch --- old/patches/ncurses-6.0-20151128.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches/ncurses-6.0-20151128.patch 2015-11-30 10:11:38.000000000 +0100 @@ -0,0 +1,612 @@ +# ncurses 6.0 - patch 20151128 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.0 is at +# ftp.gnu.org:/pub/gnu +# +# Patches for ncurses 6.0 can be found at +# ftp://invisible-island.net/ncurses/6.0 +# http://invisible-mirror.net/archives/ncurses/6.0 +# +# ------------------------------------------------------------------------------ +# ftp://invisible-island.net/ncurses/6.0/ncurses-6.0-20151128.patch.gz +# patch by Thomas E. Dickey <dic...@invisible-island.net> +# created Sun Nov 29 01:57:16 UTC 2015 +# ------------------------------------------------------------------------------ +# NEWS | 11 ++++++++- +# VERSION | 2 - +# dist.mk | 4 +-- +# form/form.h | 5 ++-- +# form/form.priv.h | 7 +++-- +# form/frm_driver.c | 12 ++++++---- +# man/curs_inopts.3x | 12 +++++----- +# man/form_field_opts.3x | 9 +++++-- +# misc/terminfo.src | 26 ++++++++++++++++++++- +# ncurses/base/lib_getch.c | 4 ++- +# package/debian-mingw/changelog | 4 +-- +# package/debian-mingw64/changelog | 4 +-- +# package/debian/changelog | 4 +-- +# package/mingw-ncurses.nsi | 4 +-- +# package/mingw-ncurses.spec | 2 - +# package/ncurses.spec | 2 - +# progs/dump_entry.c | 6 ++++- +# test/ncurses.c | 44 +++++++++++++++++++++++++------------ +# 18 files changed, 112 insertions(+), 50 deletions(-) +# ------------------------------------------------------------------------------ +Index: NEWS +Prereq: 1.2530 +--- ncurses-6.0-20151121+/NEWS 2015-11-21 23:33:30.000000000 +0000 ++++ ncurses-6.0-20151128/NEWS 2015-11-29 01:31:02.000000000 +0000 +@@ -25,7 +25,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.2530 2015/11/21 23:33:30 tom Exp $ ++-- $Id: NEWS,v 1.2536 2015/11/29 01:31:02 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -45,6 +45,15 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20151128 ++ + add missing assignment in lib_getch.c to make notimeout() work ++ (Debian #805618). ++ + add 't' toggle for notimeout() function in test/ncurses.c a/A screens ++ + add viewdata terminal description (Alexandre Montaron). ++ + fix a case in tic/infocmp for formatting capabilities where a ++ backslash at the end of a string was mishandled. ++ + fix some typos in curs_inopts.3x (Benno Schulenberg). ++ + 20151121 + + fix some inconsistencies in the pccon* entries -TD + + add bold to pccon+sgr+acs and pccon-base (Tati Chevron). +Index: VERSION +--- ncurses-6.0-20151121+/VERSION 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/VERSION 2015-11-28 16:31:05.000000000 +0000 +@@ -1 +1 @@ +-5:0:9 6.0 20151121 ++5:0:9 6.0 20151128 +Index: dist.mk +Prereq: 1.1080 +--- ncurses-6.0-20151121+/dist.mk 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/dist.mk 2015-11-28 16:31:05.000000000 +0000 +@@ -25,7 +25,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1080 2015/11/21 15:55:51 tom Exp $ ++# $Id: dist.mk,v 1.1081 2015/11/28 16:31:05 tom Exp $ + # Makefile for creating ncurses distributions. + # + # This only needs to be used directly as a makefile by developers, but +@@ -37,7 +37,7 @@ + # These define the major/minor/patch versions of ncurses. + NCURSES_MAJOR = 6 + NCURSES_MINOR = 0 +-NCURSES_PATCH = 20151121 ++NCURSES_PATCH = 20151128 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: form/form.h +Prereq: 0.24 +--- ncurses-6.0-20151121+/form/form.h 2014-07-26 20:52:28.000000000 +0000 ++++ ncurses-6.0-20151128/form/form.h 2015-11-28 20:13:39.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2014,2015 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 * +@@ -30,7 +30,7 @@ + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +-/* $Id: form.h,v 0.24 2014/07/26 20:52:28 tom Exp $ */ ++/* $Id: form.h,v 0.25 2015/11/28 20:13:39 Leon.Winter Exp $ */ + + #ifndef FORM_H + #define FORM_H +@@ -205,6 +205,7 @@ + #define O_PASSOK (0x0100U) + #define O_STATIC (0x0200U) + #define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */ ++#define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */ + + /* form options */ + #define O_NL_OVERLOAD (0x0001U) +Index: form/form.priv.h +Prereq: 0.38 +--- ncurses-6.0-20151121+/form/form.priv.h 2014-11-01 13:56:14.000000000 +0000 ++++ ncurses-6.0-20151128/form/form.priv.h 2015-11-28 20:13:39.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2014,2015 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 * +@@ -30,7 +30,7 @@ + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +-/* $Id: form.priv.h,v 0.38 2014/11/01 13:56:14 tom Exp $ */ ++/* $Id: form.priv.h,v 0.39 2015/11/28 20:13:39 Leon.Winter Exp $ */ + + #ifndef FORM_PRIV_H + #define FORM_PRIV_H 1 +@@ -162,7 +162,8 @@ + + #define ALL_FIELD_OPTS (Field_Options)( \ + STD_FIELD_OPTS |\ +- O_DYNAMIC_JUSTIFY) ++ O_DYNAMIC_JUSTIFY |\ ++ O_NO_LEFT_STRIP) + + #define C_BLANK ' ' + #define is_blank(c) ((c)==C_BLANK) +Index: form/frm_driver.c +Prereq: 1.115 +--- ncurses-6.0-20151121+/form/frm_driver.c 2014-09-25 21:55:24.000000000 +0000 ++++ ncurses-6.0-20151128/form/frm_driver.c 2015-11-28 20:39:09.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * ++ * Copyright (c) 1998-2014,2015 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 * +@@ -32,7 +32,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: frm_driver.c,v 1.115 2014/09/25 21:55:24 tom Exp $") ++MODULE_ID("$Id: frm_driver.c,v 1.117 2015/11/28 20:39:09 tom Exp $") + + /*---------------------------------------------------------------------------- + This is the core module of the form library. It contains the majority +@@ -979,7 +979,9 @@ + int len; + int col = 0; + +- bp = Get_Start_Of_Data(field->buf, Buffer_Length(field)); ++ bp = (Field_Has_Option(field, O_NO_LEFT_STRIP) ++ ? field->buf ++ : Get_Start_Of_Data(field->buf, Buffer_Length(field))); + len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp); + + if (len > 0) +@@ -1023,7 +1025,9 @@ + FIELD_CELL *bp; + int len; + +- bp = Get_Start_Of_Data(field->buf, Buffer_Length(field)); ++ bp = (Field_Has_Option(field, O_NO_LEFT_STRIP) ++ ? field->buf ++ : Get_Start_Of_Data(field->buf, Buffer_Length(field))); + len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp); + + if (len > 0) +Index: man/curs_inopts.3x +Prereq: 1.19 +--- ncurses-6.0-20151121+/man/curs_inopts.3x 2015-04-11 10:21:38.000000000 +0000 ++++ ncurses-6.0-20151128/man/curs_inopts.3x 2015-11-28 19:03:12.000000000 +0000 +@@ -26,7 +26,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_inopts.3x,v 1.19 2015/04/11 10:21:38 tom Exp $ ++.\" $Id: curs_inopts.3x,v 1.20 2015/11/28 19:03:12 Benno.Schulenberg Exp $ + .TH curs_inopts 3X "" + .ie \n(.g .ds `` \(lq + .el .ds `` `` +@@ -93,7 +93,7 @@ + .br + .SH DESCRIPTION + The \fBncurses\fP library provides several functions which let an application +-change way input from the terminal is handled. ++change the way input from the terminal is handled. + Some are global, applying to all windows. + Others apply only to a specific window. + Window-specific settings are not automatically applied to new or derived +@@ -141,19 +141,19 @@ + available to the program. + However, after blocking for \fItenths\fR tenths of + seconds, ERR is returned if nothing has been typed. +-The value of \fBtenths\fR ++The value of \fItenths\fR + must be a number between 1 and 255. + Use \fBnocbreak\fR to leave half-delay + mode. + .\" + .SS intrflush + .PP +-If the \fBintrflush\fR option is enabled, (\fIbf\fR is \fBTRUE\fR), when an +-interrupt key is pressed on the keyboard (interrupt, break, quit) all output in ++If the \fBintrflush\fR option is enabled (\fIbf\fR is \fBTRUE\fR), and an ++interrupt key is pressed on the keyboard (interrupt, break, quit), all output in + the tty driver queue will be flushed, giving the effect of faster response to + the interrupt, but causing \fBcurses\fR to have the wrong idea of what is on + the screen. +-Disabling (\fIbf\fR is \fBFALSE\fR), the option prevents the ++Disabling the option (\fIbf\fR is \fBFALSE\fR) prevents the + flush. + The default for the option is inherited from the tty driver settings. + The window argument is ignored. +Index: man/form_field_opts.3x +Prereq: 1.17 +--- ncurses-6.0-20151121+/man/form_field_opts.3x 2014-07-26 21:21:57.000000000 +0000 ++++ ncurses-6.0-20151128/man/form_field_opts.3x 2015-11-28 20:40:13.000000000 +0000 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. * ++.\" Copyright (c) 1998-2014,2015 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 * +@@ -27,7 +27,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: form_field_opts.3x,v 1.17 2014/07/26 21:21:57 tom Exp $ ++.\" $Id: form_field_opts.3x,v 1.19 2015/11/28 20:40:13 tom Exp $ + .TH form_field_opts 3X "" + .SH NAME + \fBform_field_opts\fR \- set and get field options +@@ -91,10 +91,13 @@ + Words that do not fit on a line are wrapped to the next line. Words are + blank-separated. + .PP +-One extension option is defined (extensions are off by default): ++These extension options are defined (extensions are off by default): + .TP 5 + O_DYNAMIC_JUSTIFY + Permit dynamic fields to be justified, like static fields. ++.TP 5 ++O_NO_LEFT_STRIP ++Preserve leading whitespace in the field buffer, which is normally discarded. + .SH RETURN VALUE + Except for \fBfield_opts\fR, each routine returns one of the following: + .TP 5 +Index: misc/terminfo.src +--- ncurses-6.0-20151121+/misc/terminfo.src 2015-11-22 01:01:00.000000000 +0000 ++++ ncurses-6.0-20151128/misc/terminfo.src 2015-11-28 21:35:00.000000000 +0000 +@@ -6,8 +6,8 @@ + # Report bugs and new terminal descriptions to + # bug-ncur...@gnu.org + # +-# $Revision: 1.558 $ +-# $Date: 2015/11/22 01:01:00 $ ++# $Revision: 1.559 $ ++# $Date: 2015/11/28 21:35:00 $ + # + # 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 +@@ -18753,6 +18753,25 @@ + sgr0=\EI\E\\\EB, smacs=^N, .invis=\E@, .rs2=^L\EB, + .u8=\001Cu|\004, use=minitel1b, + ++# From: Alexandre Montaron, 19 Nov 2015 ++# ++# He comments: ++# viewdata lacks a true cup capabilitie, ++# so I achieved it with home and cud1/cuf1 sequences only ! ++viewdata|prestel/viewdata terminals, ++ am, bw, eslok, hz, ++ cols#40, lines#24, ++ bel=^G, civis=^T, clear=^L, cnorm=^Q, cr=^M, cub1=^H, cud1=^J, ++ cuf1=^I, ++ cup=\036%?%p1%{07}%>%t\n\n\n\n\n\n\n\n%;%?%p1%{15}%>%t\n\n\n\n\n\n\n\n%;%?%p1%{4}%&%t\n\n\n\n%;%?%p1%{2}%&%t\n\n%;%?%p1%{1}%&%t\n%;%?%p2%{07}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{15}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{23}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{31}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{4}%&%t\011\011\011\011%;%?%p2%{2}%&%t\011\011%;%?%p2%{1}%&%t\011%;, ++ cuu1=^K, home=^^, nel=^M^J, .el=^X, .ind=^J, ++ .rep=%p1%c\022%p2%'?'%+%c, .ri=^K, ++# Also: ++# viewdata-rv works with some applications (e.g. emacs, xemacs) but fails with vim. ++viewdata-rv|prestel/viewdata terminals with reverse capabilitie (as green), ++ xmc#1, ++ rmso=\EG, smso=\EB, use=viewdata, ++ + ######## OBSOLETE VDT TYPES + # + # These terminals are *long* dead -- these entries are retained for +@@ -23792,4 +23811,7 @@ + # 2015-11-21 + # + fix some inconsistencies in the pccon* entries -TD + # ++# 2015-11-28 ++# add viewdata (Alexandre Montaron). ++# + ######## SHANTIH! SHANTIH! SHANTIH! +Index: ncurses/base/lib_getch.c +Prereq: 1.132 +--- ncurses-6.0-20151121+/ncurses/base/lib_getch.c 2015-05-09 17:10:41.000000000 +0000 ++++ ncurses-6.0-20151128/ncurses/base/lib_getch.c 2015-11-29 01:28:52.000000000 +0000 +@@ -42,7 +42,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_getch.c,v 1.132 2015/05/09 17:10:41 tom Exp $") ++MODULE_ID("$Id: lib_getch.c,v 1.133 2015/11/29 01:28:52 tom Exp $") + + #include <fifo_defs.h> + +@@ -497,6 +497,8 @@ + TR(TRACE_IEVENT, ("timed delay in wgetch()")); + if (sp->_cbreak > 1) + delay = (sp->_cbreak - 1) * 100; ++ else if (win->_notimeout) ++ delay = 0; + else + delay = win->_delay; + +Index: package/debian-mingw/changelog +--- ncurses-6.0-20151121+/package/debian-mingw/changelog 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/package/debian-mingw/changelog 2015-11-28 16:31:05.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.0+20151121) unstable; urgency=low ++ncurses6 (6.0+20151128) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 28 Nov 2015 11:31:05 -0500 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian-mingw64/changelog +--- ncurses-6.0-20151121+/package/debian-mingw64/changelog 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/package/debian-mingw64/changelog 2015-11-28 16:31:05.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.0+20151121) unstable; urgency=low ++ncurses6 (6.0+20151128) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 28 Nov 2015 11:31:05 -0500 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian/changelog +--- ncurses-6.0-20151121+/package/debian/changelog 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/package/debian/changelog 2015-11-28 16:31:05.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.0+20151121) unstable; urgency=low ++ncurses6 (6.0+20151128) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 28 Nov 2015 11:31:05 -0500 + + ncurses6 (5.9-20120608) unstable; urgency=low + +Index: package/mingw-ncurses.nsi +Prereq: 1.133 +--- ncurses-6.0-20151121+/package/mingw-ncurses.nsi 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/package/mingw-ncurses.nsi 2015-11-28 16:31:05.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.133 2015/11/21 15:55:51 tom Exp $ ++; $Id: mingw-ncurses.nsi,v 1.134 2015/11/28 16:31:05 tom Exp $ + + ; TODO add examples + ; TODO bump ABI to 6 +@@ -10,7 +10,7 @@ + !define VERSION_MAJOR "6" + !define VERSION_MINOR "0" + !define VERSION_YYYY "2015" +-!define VERSION_MMDD "1121" ++!define VERSION_MMDD "1128" + !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} + + !define MY_ABI "5" +Index: package/mingw-ncurses.spec +--- ncurses-6.0-20151121+/package/mingw-ncurses.spec 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/package/mingw-ncurses.spec 2015-11-28 16:31:05.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.0 +-Release: 20151121 ++Release: 20151128 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncurses.spec +--- ncurses-6.0-20151121+/package/ncurses.spec 2015-11-21 15:55:51.000000000 +0000 ++++ ncurses-6.0-20151128/package/ncurses.spec 2015-11-28 16:31:05.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.0 +-Release: 20151121 ++Release: 20151128 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: progs/dump_entry.c +Prereq: 1.123 +--- ncurses-6.0-20151121+/progs/dump_entry.c 2015-09-05 23:31:12.000000000 +0000 ++++ ncurses-6.0-20151128/progs/dump_entry.c 2015-11-28 22:54:33.000000000 +0000 +@@ -39,7 +39,7 @@ + #include "termsort.c" /* this C file is generated */ + #include <parametrized.h> /* so is this */ + +-MODULE_ID("$Id: dump_entry.c,v 1.123 2015/09/05 23:31:12 tom Exp $") ++MODULE_ID("$Id: dump_entry.c,v 1.124 2015/11/28 22:54:33 tom Exp $") + + #define DISCARD(string) string = ABSENT_STRING + #define PRINTF (void) printf +@@ -510,6 +510,10 @@ + + while (*src != '\0') { + switch (*src) { ++ case '^': ++ percent = FALSE; ++ strncpy_DYN(&tmpbuf, src++, (size_t) 1); ++ break; + case '\\': + percent = FALSE; + strncpy_DYN(&tmpbuf, src++, (size_t) 1); +Index: test/ncurses.c +Prereq: 1.423 +--- ncurses-6.0-20151121+/test/ncurses.c 2015-10-31 19:53:06.000000000 +0000 ++++ ncurses-6.0-20151128/test/ncurses.c 2015-11-29 01:26:41.000000000 +0000 +@@ -40,7 +40,7 @@ + Author: Eric S. Raymond <e...@snark.thyrsus.com> 1993 + Thomas E. Dickey (beginning revision 1.27 in 1996). + +-$Id: ncurses.c,v 1.423 2015/10/31 19:53:06 tom Exp $ ++$Id: ncurses.c,v 1.425 2015/11/29 01:26:41 tom Exp $ + + ***************************************************************************/ + +@@ -636,15 +636,22 @@ + } + + static void +-init_getch(WINDOW *win, GetchFlags flags) ++init_getch(WINDOW *win, GetchFlags flags, int delay) + { + memset(flags, FALSE, NUM_GETCH_FLAGS); + flags[UChar('k')] = (win == stdscr); + flags[UChar('m')] = TRUE; ++ flags[UChar('t')] = (delay != 0); + + setup_getch(win, flags); + } + ++static bool ++blocking_getch(GetchFlags flags, int delay) ++{ ++ return ((delay < 0) && flags['t']); ++} ++ + static void + wgetch_help(WINDOW *win, GetchFlags flags) + { +@@ -655,7 +662,8 @@ + ,"k -- toggle keypad/literal mode" + ,"m -- toggle meta (7-bit/8-bit) mode" + ,"^q -- quit" +- ,"s -- shell out\n" ++ ,"s -- shell out" ++ ,"t -- toggle timeout" + ,"w -- create a new window" + #ifdef SIGTSTP + ,"z -- suspend this process" +@@ -810,9 +818,9 @@ + int c; + int incount = 0; + GetchFlags flags; +- bool blocking = (delay < 0); + +- init_getch(win, flags); ++ init_getch(win, flags, delay); ++ notimeout(win, FALSE); + wtimeout(win, delay); + getyx(win, first_y, first_x); + +@@ -823,7 +831,7 @@ + for (;;) { + while ((c = wGetchar(win)) == ERR) { + incount++; +- if (blocking) { ++ if (blocking_getch(flags, delay)) { + (void) wprintw(win, "%05d: input error", incount); + break; + } else { +@@ -831,7 +839,7 @@ + } + wgetch_wrap(win, first_y); + } +- if (c == ERR && blocking) { ++ if (c == ERR && blocking_getch(flags, delay)) { + wprintw(win, "ERR"); + wgetch_wrap(win, first_y); + } else if (isQuit(c)) { +@@ -860,6 +868,10 @@ + wgetch_help(win, flags); + } else if (c == 's') { + ShellOut(TRUE); ++ } else if (c == 't') { ++ notimeout(win, flags[UChar('t')]); ++ flags[UChar('t')] = !flags[UChar('t')]; ++ wgetch_help(win, flags); + } else if (c == 'w') { + int high = getmaxy(win) - 1 - first_y + 1; + int wide = getmaxx(win) - first_x; +@@ -931,7 +943,7 @@ + wtimeout(win, -1); + + if (!level) +- init_getch(win, flags); ++ init_getch(win, flags, delay); + } + + static int +@@ -958,7 +970,7 @@ + delay = -1; + } + raw(); +- move(5, 0); ++ move(6, 0); + return delay; + } + +@@ -1060,11 +1072,11 @@ + wint_t c; + int incount = 0; + GetchFlags flags; +- bool blocking = (delay < 0); + int code; + char *temp; + +- init_getch(win, flags); ++ init_getch(win, flags, delay); ++ notimeout(win, FALSE); + wtimeout(win, delay); + getyx(win, first_y, first_x); + +@@ -1075,7 +1087,7 @@ + for (;;) { + while ((code = wGet_wchar(win, &c)) == ERR) { + incount++; +- if (blocking) { ++ if (blocking_getch(flags, delay)) { + (void) wprintw(win, "%05d: input error", incount); + break; + } else { +@@ -1083,7 +1095,7 @@ + } + wgetch_wrap(win, first_y); + } +- if (code == ERR && blocking) { ++ if (code == ERR && blocking_getch(flags, delay)) { + wprintw(win, "ERR"); + wgetch_wrap(win, first_y); + } else if (isQuit((int) c)) { +@@ -1125,6 +1137,10 @@ + wgetch_help(win, flags); + } else if (c == 's') { + ShellOut(TRUE); ++ } else if (c == 't') { ++ notimeout(win, flags[UChar('t')]); ++ flags[UChar('t')] = !flags[UChar('t')]; ++ wgetch_help(win, flags); + } else if (c == 'w') { + int high = getmaxy(win) - 1 - first_y + 1; + int wide = getmaxx(win) - first_x; +@@ -1184,7 +1200,7 @@ + wtimeout(win, -1); + + if (!level) +- init_getch(win, flags); ++ init_getch(win, flags, delay); + } + + static void