head 1.27; access; symbols pkgsrc-2019Q4:1.26.0.16 pkgsrc-2019Q4-base:1.26 pkgsrc-2019Q3:1.26.0.12 pkgsrc-2019Q3-base:1.26 pkgsrc-2019Q2:1.26.0.10 pkgsrc-2019Q2-base:1.26 pkgsrc-2019Q1:1.26.0.8 pkgsrc-2019Q1-base:1.26 pkgsrc-2018Q4:1.26.0.6 pkgsrc-2018Q4-base:1.26 pkgsrc-2018Q3:1.26.0.4 pkgsrc-2018Q3-base:1.26 pkgsrc-2018Q2:1.26.0.2 pkgsrc-2018Q2-base:1.26 pkgsrc-2018Q1:1.25.0.12 pkgsrc-2018Q1-base:1.25 pkgsrc-2017Q4:1.25.0.10 pkgsrc-2017Q4-base:1.25 pkgsrc-2017Q3:1.25.0.8 pkgsrc-2017Q3-base:1.25 pkgsrc-2017Q2:1.25.0.4 pkgsrc-2017Q2-base:1.25 pkgsrc-2017Q1:1.25.0.2 pkgsrc-2017Q1-base:1.25 pkgsrc-2016Q4:1.24.0.2 pkgsrc-2016Q4-base:1.24 pkgsrc-2016Q3:1.23.0.10 pkgsrc-2016Q3-base:1.23 pkgsrc-2016Q2:1.23.0.8 pkgsrc-2016Q2-base:1.23 pkgsrc-2016Q1:1.23.0.6 pkgsrc-2016Q1-base:1.23 pkgsrc-2015Q4:1.23.0.4 pkgsrc-2015Q4-base:1.23 pkgsrc-2015Q3:1.23.0.2 pkgsrc-2015Q3-base:1.23 pkgsrc-2015Q2:1.22.0.4 pkgsrc-2015Q2-base:1.22 pkgsrc-2015Q1:1.22.0.2 pkgsrc-2015Q1-base:1.22 pkgsrc-2014Q4:1.21.0.4 pkgsrc-2014Q4-base:1.21 pkgsrc-2014Q3:1.21.0.2 pkgsrc-2014Q3-base:1.21 pkgsrc-2014Q2:1.20.0.2 pkgsrc-2014Q2-base:1.20 pkgsrc-2014Q1:1.19.0.6 pkgsrc-2014Q1-base:1.19 pkgsrc-2013Q4:1.19.0.4 pkgsrc-2013Q4-base:1.19 pkgsrc-2013Q3:1.19.0.2 pkgsrc-2013Q3-base:1.19 pkgsrc-2013Q2:1.18.0.14 pkgsrc-2013Q2-base:1.18 pkgsrc-2013Q1:1.18.0.12 pkgsrc-2013Q1-base:1.18 pkgsrc-2012Q4:1.18.0.10 pkgsrc-2012Q4-base:1.18 pkgsrc-2012Q3:1.18.0.8 pkgsrc-2012Q3-base:1.18 pkgsrc-2012Q2:1.18.0.6 pkgsrc-2012Q2-base:1.18 pkgsrc-2012Q1:1.18.0.4 pkgsrc-2012Q1-base:1.18 pkgsrc-2011Q4:1.18.0.2 pkgsrc-2011Q4-base:1.18 pkgsrc-2011Q3:1.17.0.6 pkgsrc-2011Q3-base:1.17 pkgsrc-2011Q2:1.17.0.4 pkgsrc-2011Q2-base:1.17 pkgsrc-2011Q1:1.17.0.2 pkgsrc-2011Q1-base:1.17 pkgsrc-2010Q4:1.16.0.18 pkgsrc-2010Q4-base:1.16 pkgsrc-2010Q3:1.16.0.16 pkgsrc-2010Q3-base:1.16 pkgsrc-2010Q2:1.16.0.14 pkgsrc-2010Q2-base:1.16 pkgsrc-2010Q1:1.16.0.12 pkgsrc-2010Q1-base:1.16 pkgsrc-2009Q4:1.16.0.10 pkgsrc-2009Q4-base:1.16 pkgsrc-2009Q3:1.16.0.8 pkgsrc-2009Q3-base:1.16 pkgsrc-2009Q2:1.16.0.6 pkgsrc-2009Q2-base:1.16 pkgsrc-2009Q1:1.16.0.4 pkgsrc-2009Q1-base:1.16 pkgsrc-2008Q4:1.16.0.2 pkgsrc-2008Q4-base:1.16 pkgsrc-2008Q3:1.15.0.12 pkgsrc-2008Q3-base:1.15 cube-native-xorg:1.15.0.10 cube-native-xorg-base:1.15 pkgsrc-2008Q2:1.15.0.8 pkgsrc-2008Q2-base:1.15 cwrapper:1.15.0.6 pkgsrc-2008Q1:1.15.0.4 pkgsrc-2008Q1-base:1.15 pkgsrc-2007Q4:1.15.0.2 pkgsrc-2007Q4-base:1.15 pkgsrc-2007Q3:1.14.0.6 pkgsrc-2007Q3-base:1.14 pkgsrc-2007Q2:1.14.0.4 pkgsrc-2007Q2-base:1.14 pkgsrc-2007Q1:1.14.0.2 pkgsrc-2007Q1-base:1.14 pkgsrc-2006Q4:1.13.0.10 pkgsrc-2006Q4-base:1.13 pkgsrc-2006Q3:1.13.0.8 pkgsrc-2006Q3-base:1.13 pkgsrc-2006Q2:1.13.0.6 pkgsrc-2006Q2-base:1.13 pkgsrc-2006Q1:1.13.0.4 pkgsrc-2006Q1-base:1.13 pkgsrc-2005Q4:1.13.0.2 pkgsrc-2005Q4-base:1.13 pkgsrc-2005Q3:1.12.0.14 pkgsrc-2005Q3-base:1.12 pkgsrc-2005Q2:1.12.0.12 pkgsrc-2005Q2-base:1.12 pkgsrc-2005Q1:1.12.0.10 pkgsrc-2005Q1-base:1.12 pkgsrc-2004Q4:1.12.0.8 pkgsrc-2004Q4-base:1.12 pkgsrc-2004Q3:1.12.0.6 pkgsrc-2004Q3-base:1.12 pkgsrc-2004Q2:1.12.0.4 pkgsrc-2004Q2-base:1.12 pkgsrc-2004Q1:1.12.0.2 pkgsrc-2004Q1-base:1.12 pkgsrc-2003Q4:1.11.0.2 pkgsrc-2003Q4-base:1.11 netbsd-1-6:1.9.0.8 netbsd-1-6-RELEASE-base:1.9 pkgviews:1.9.0.4 pkgviews-base:1.9 buildlink2:1.9.0.2 buildlink2-base:1.9 netbsd-1-5-PATCH003:1.9 netbsd-1-5-RELEASE:1.5 netbsd-1-4-PATCH003:1.5 netbsd-1-4-PATCH002:1.4 comdex-fall-1999:1.3 netbsd-1-4-PATCH001:1.3 netbsd-1-4-RELEASE:1.2 netbsd-1-3-PATCH003:1.2; locks; strict; comment @# @; 1.27 date 2020.03.05.12.52.33; author wiz; state dead; branches; next 1.26; commitid Qs6o8oAS65JKcdZB; 1.26 date 2018.04.02.16.26.03; author spz; state Exp; branches; next 1.25; commitid 3LJ8DHcvvKg4YSwA; 1.25 date 2016.12.30.11.28.19; author wiz; state Exp; branches 1.25.12.1; next 1.24; commitid Oe1O38zS6zsT30Az; 1.24 date 2016.12.18.23.30.34; author joerg; state Exp; branches; next 1.23; commitid AFBFRVdBEmHjrwyz; 1.23 date 2015.08.17.17.10.32; author wiz; state Exp; branches; next 1.22; commitid EYoY3kODKZtJ3Exy; 1.22 date 2015.02.18.03.10.42; author sevan; state Exp; branches; next 1.21; commitid cWyLOJesYvW5aray; 1.21 date 2014.07.21.07.50.45; author richard; state Exp; branches; next 1.20; commitid kuJMf05pYQ9qxdJx; 1.20 date 2014.05.11.16.55.17; author rodent; state Exp; branches; next 1.19; commitid bYIdIpPD7Pu4R8Ax; 1.19 date 2013.07.08.05.54.24; author richard; state Exp; branches; next 1.18; commitid xACj9nZmmEDq4DWw; 1.18 date 2011.11.01.14.47.46; author hans; state Exp; branches; next 1.17; 1.17 date 2011.02.28.11.02.46; author adam; state Exp; branches; next 1.16; 1.16 date 2008.11.05.16.12.38; author wiz; state Exp; branches; next 1.15; 1.15 date 2007.12.22.00.23.58; author joerg; state Exp; branches; next 1.14; 1.14 date 2007.01.08.11.01.05; author adam; state Exp; branches; next 1.13; 1.13 date 2005.10.20.00.01.32; author wiz; state Exp; branches; next 1.12; 1.12 date 2004.03.03.13.36.09; author adam; state Exp; branches; next 1.11; 1.11 date 2003.03.30.20.35.00; author jschauma; state Exp; branches; next 1.10; 1.10 date 2002.08.25.18.38.39; author jlam; state dead; branches; next 1.9; 1.9 date 2001.06.19.05.35.39; author jlam; state Exp; branches 1.9.2.1; next 1.8; 1.8 date 2001.04.30.14.47.04; author jlam; state dead; branches; next 1.7; 1.7 date 2001.03.12.15.51.51; author jlam; state Exp; branches; next 1.6; 1.6 date 2000.10.15.04.50.11; author jlam; state dead; branches; next 1.5; 1.5 date 2000.10.12.14.56.45; author jlam; state Exp; branches; next 1.4; 1.4 date 2000.01.15.18.39.30; author jlam; state Exp; branches; next 1.3; 1.3 date 99.07.06.07.51.04; author jlam; state Exp; branches; next 1.2; 1.2 date 98.08.07.10.40.26; author agc; state Exp; branches; next 1.1; 1.1 date 98.06.21.04.29.07; author tv; state Exp; branches; next ; 1.25.12.1 date 2018.04.07.20.50.43; author spz; state Exp; branches; next ; commitid POOsH5fcTLTdiyxA; 1.9.2.1 date 2002.05.11.02.09.05; author jlam; state dead; branches; next ; desc @@ 1.27 log @ncurses: clean up patches Remove cargo-cult packages, only keep the ones for renaming the form/menu/panel libraries to gnu*. Handle (removing) terminfo symlink in Makefile instead of as a patch. No functional change intended. @ text @$NetBSD: patch-ac,v 1.26 2018/04/02 16:26:03 spz Exp $ --- ./configure.orig 2018-01-20 00:27:18.000000000 +0000 +++ ./configure @@@@ -11770,11 +11770,7 @@@@ case ".$MANPAGE_RENAMES" in ;; (.|.yes) # Debian 'man' program? - if test -f /etc/debian_version ; then - MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames - else - MANPAGE_RENAMES=no - fi + MANPAGE_RENAMES=no ;; esac @@@@ -23263,8 +23259,17 @@@@ EOF #define HAVE_LIB${cf_have_include} 1 EOF - TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS" - TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2" + case ${cf_dir} in + form|menu|panel) + TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}gnu${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS" + TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}gnu${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2" + ;; + *) + TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS" + TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2" + ;; + esac + if test "$DFT_LWR_MODEL" = "libtool"; then TEST_ARGS="${TEST_DEPS}" TEST_ARG2="${TEST_DEP2}" @@@@ -23567,9 +23572,9 @@@@ fi ADAHTML_DIR=../../doc/html/ada # these could be configurable, but are not currently -PANEL_NAME=panel -MENU_NAME=menu -FORM_NAME=form +PANEL_NAME=gnupanel +MENU_NAME=gnumenu +FORM_NAME=gnuform CXX_NAME=ncurses++ # workaround for OS/2 (20151017) @@@@ -25011,7 +25016,15 @@@@ CF_EOF cf_depsuf="${LIB_SUFFIX}${EXTRA_SUFFIX}${cf_depsuf}" fi - cf_libname=$cf_dir + case $cf_dir in + form|menu|panel) + cf_libname=gnu$cf_dir + ;; + *) + cf_libname=$cf_dir + ;; + esac + test "$cf_dir" = c++ && cf_libname=ncurses++ if test $cf_item = shared ; then if test -n "${LIB_SUFFIX}" @ 1.26 log @update ncurses(w) to version 6.1, which fixes CVE-2017-13728 and CVE-2017-16879 summary relnotes: This release is designed to be source-compatible with ncurses 5.0 through 6.0; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the intent of the release is to provide extensions to the ncurses 6 ABI: improve integration of tput and tset provide support for extended numeric capabilities. The lengthy details are at http://invisible-island.net/ncurses/announce.html @ text @d1 1 a1 1 $NetBSD$ @ 1.25 log @rpath should not include DESTDIR. Hopefully addresses PR 51689. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.24 2016/12/18 23:30:34 joerg Exp $ d3 3 a5 18 Allow ncurses to build with compiler from pkgsrc by dropping the use of -no-cpp-precomp which is specific to Apple's supplied toolchain. Don't rename man pages on Debian. Include local paths before utilising flags from build env --- configure.orig 2015-08-05 09:20:32.000000000 +0000 +++ configure @@@@ -4930,7 +4930,7 @@@@ test -z "$cf_cv_libtool_version" && unse echo "$as_me: error: Cannot find libtool" >&2;} { (exit 1); exit 1; }; } fi - LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' + LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' LIB_OBJECT='${OBJECTS:.o=.lo}' LIB_SUFFIX=.la LIB_CLEAN='${LIBTOOL} --mode=clean' @@@@ -11090,12 +11090,7 @@@@ case ".$MANPAGE_RENAMES" in (.no) d8 1 a8 1 - # Debian 'man' program? d18 1 a18 1 @@@@ -21894,8 +21889,16 @@@@ EOF d34 1 d38 1 a38 1 @@@@ -22181,9 +22184,9 @@@@ fi d50 2 a51 2 # workaround for g++ versus Solaris (20131116) @@@@ -23565,7 +23568,14 @@@@ CF_EOF d64 1 @ 1.25.12.1 log @Pullup ticket #5733 - requested by bsiegert devel/ncurses: security update devel/ncursesw: security update Revisions pulled up: - devel/ncurses/Makefile 1.97 - devel/ncurses/Makefile.common 1.35 - devel/ncurses/PLIST 1.24 - devel/ncurses/distinfo 1.34 - devel/ncurses/patches/patch-aa 1.19 - devel/ncurses/patches/patch-ab 1.21 - devel/ncurses/patches/patch-ac 1.26 - devel/ncurses/patches/patch-c++_Makefile.in 1.2 - devel/ncurses/patches/patch-ncurses_tinfo_alloc__entry.c deleted - devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c deleted - devel/ncurses/patches/patch-ncurses_tinfo_parse__entry.c deleted - devel/ncursesw/Makefile 1.16 ------------------------------------------------------------------- Module Name: pkgsrc Committed By: spz Date: Mon Apr 2 16:26:04 UTC 2018 Modified Files: pkgsrc/devel/ncurses: Makefile Makefile.common PLIST distinfo pkgsrc/devel/ncurses/patches: patch-aa patch-ab patch-ac patch-c++_Makefile.in pkgsrc/devel/ncursesw: Makefile Removed Files: pkgsrc/devel/ncurses/patches: patch-ncurses_tinfo_alloc__entry.c patch-ncurses_tinfo_lib__baudrate.c patch-ncurses_tinfo_parse__entry.c Log Message: update ncurses(w) to version 6.1, which fixes CVE-2017-13728 and CVE-2017-16879 summary relnotes: This release is designed to be source-compatible with ncurses 5.0 through 6.0; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the intent of the release is to provide extensions to the ncurses 6 ABI: improve integration of tput and tset provide support for extended numeric capabilities. The lengthy details are at http://invisible-island.net/ncurses/announce.html To generate a diff of this commit: cvs rdiff -u -r1.96 -r1.97 pkgsrc/devel/ncurses/Makefile cvs rdiff -u -r1.34 -r1.35 pkgsrc/devel/ncurses/Makefile.common cvs rdiff -u -r1.23 -r1.24 pkgsrc/devel/ncurses/PLIST cvs rdiff -u -r1.33 -r1.34 pkgsrc/devel/ncurses/distinfo cvs rdiff -u -r1.18 -r1.19 pkgsrc/devel/ncurses/patches/patch-aa cvs rdiff -u -r1.20 -r1.21 pkgsrc/devel/ncurses/patches/patch-ab cvs rdiff -u -r1.25 -r1.26 pkgsrc/devel/ncurses/patches/patch-ac cvs rdiff -u -r1.1 -r1.2 pkgsrc/devel/ncurses/patches/patch-c++_Makefile.in cvs rdiff -u -r1.1 -r0 \ pkgsrc/devel/ncurses/patches/patch-ncurses_tinfo_alloc__entry.c \ pkgsrc/devel/ncurses/patches/patch-ncurses_tinfo_parse__entry.c cvs rdiff -u -r1.2 -r0 \ pkgsrc/devel/ncurses/patches/patch-ncurses_tinfo_lib__baudrate.c cvs rdiff -u -r1.15 -r1.16 pkgsrc/devel/ncursesw/Makefile @ text @d1 1 a1 1 $NetBSD$ d3 18 a20 3 --- ./configure.orig 2018-01-20 00:27:18.000000000 +0000 +++ ./configure @@@@ -11770,11 +11770,7 @@@@ case ".$MANPAGE_RENAMES" in d23 1 a23 1 # Debian 'man' program? d33 1 a33 1 @@@@ -23263,8 +23259,17 @@@@ EOF a48 1 + d52 1 a52 1 @@@@ -23567,9 +23572,9 @@@@ fi d64 2 a65 2 # workaround for OS/2 (20151017) @@@@ -25011,7 +25016,15 @@@@ CF_EOF a77 1 + @ 1.24 log @Rename ncurses's libform, libpanel and libmenu to libgnuform, libgnupanel and libgnumenu as they overlap with system libraries on NetBSD, resulting in strange breakage like in devel/cmake's ccmake frontend. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.23 2015/08/17 17:10:32 wiz Exp $ d10 9 d65 1 a65 1 @@@@ -23565,7 +23570,14 @@@@ CF_EOF @ 1.23 log @Update to 6.0: This release is designed to be source-compatible with ncurses 5.0 through 5.9; providing a new application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the intent of the release is to provide extensions which are generally useful, but binary-incompatible with ncurses 5: * Extend the cchar_t structure to allow more than 16 colors to be encoded. * Modify the encoding of mouse state to make room for a 5th mouse button. That allows one to use ncurses with a wheel mouse with xterm or similar X terminal emulators. There are, of course, numerous other improvements, including * fixes made based on the Clang and Coverity static analyzers. * memory leak fixes using Valgrind The release notes mention some bug-fixes, but are focused on new features and improvements to existing features log since ncurses 5.9 release. While the intent of the release is to provide a new stable ABI, there are other development activities which are summarized below. * The original release plan, e.g., for "5.10" was to improve the MinGW port. Ultimately that was completed (wide-character support, mouse, etc), but was deferred to focus on termcap support and performance issues. Also, pinpointing the problems with Console2 took a while. * A review of termcap compatibility in 2011 led to several minor fixes in the library and improvements to utilities. To do this properly, a review of the various extent termcap implementations was needed. The [11]termcap library checker (tctest) (not part of ncurses) was one result. A followup review of performance using [12]ncurses-examples in 2014 led to additional improvements. * Output buffering provided a further, but worthwhile distraction. A bug report in 2012 regarding the use of signal handlers in ncurses) pointed out [13]a problem with the use of unsafe functions for handling SIGTSTP. Other signals could be addressed with workarounds; repairing SIGTSTP required a different approach. The solution required changing internal behavior of the library: how it handles output buffering. Now ncurses buffers its own output, independently of the standard output. A few applications relied upon the library's direct reuse of the standard output buffering; however that is unspecified behavior and has never been a recommended practice. Identifying these applications as well as refining the change to permit low-level applications to work consistently took time. * Since the introduction of the experimental support for 256 colors early in [14]2005 (released in [15]ncurses 5.5), there has been increased user interest. Almost all packagers continue providing the ncurses ABI 5 which cannot support 256 colors. * Symbol versioning, or the lack of it in ncurses, is the main reason why packagers would be reluctant to add a new ncurses ABI. This release provides the new ABI along with script-generated lists of versioned symbols which can be used for both ABI 5 and 6 (with distinct names to keep the two separate). This took time to development, as reported in [16]Symbol versioning in ncurses. Library improvements Output buffering X/Open curses provides more than one initialization function: * [17]initscr (the simplest) accepts no parameters. * [18]newterm accepts parameters for the stream input and output * [19]setupterm (the low-level function) accepts a parameter for the file descriptor of the output. They are documented in X/Open as if initscr calls newterm using stdout for output stream, and in turn newterm calls setupterm using fileno(stdout) for the file descriptor. As long as an implementation acts as if it does this, it conforms. In practice, implementations do what is implied. This creates a problem: the low-level setupterm function's file descriptor is unbuffered, while newterm implies buffered output. X/Open Curses says that all output is done through the file descriptor, and does not say how the output stream is actually used. Initially, ncurses used the file descriptor (obtained from the output stream passed to newterm) for changing the terminal modes, and relied upon the output parameter of newterm for buffered output. Later (to avoid using unsafe buffered I/O in signal handlers), ncurses was modified to use the file descriptor (unbuffered output) when cleaning up on receipt of a signal. Otherwise (when not handling a signal), it continued to use the buffered output. That approach worked reasonably well and as a side effect, using the same buffered output as an application might use for printf meant that no flushing was needed when switching between normal- and screen-modes. There were a couple of problems: * to get good performance, curses (not only ncurses, but SVr4 curses in general) set an output buffer using setbuf or similar function. There is no standard (or portable) way to turn that output buffer off, and revert to line-buffering. The [20]NCURSES_NO_SETBUF environment variable did make it optional. * to handle SIGTSTP (the "stop" signal), ncurses relied upon unsafe functions. That is, due to the complexity of the feature, it relied upon reusing existing functions which should not have been called via the signal handler. Conveniently, solving the second problem (by making ncurses do its own output buffering) also fixed the first one. But there were special cases to resolve: [21]low-level functions such as mvcur, putp, vidattr explicitly use the standard output. Those functions were reused internally, and required modification to distinguish whether they were used by the high-level or low-level interfaces. Finally, there may still be a few programs which should be modified to improve their portability, e.g., adding an fflush(stdout); when switching from "[22]shell" mode to "[23]program" (curses) mode. Those are fairly rare because most programmers have learned not to mix printf and [24]printw. Symbol versioning This release introduces symbol-versioning to ncurses because without it, the change of ABI would be less successful. A lengthy discussion will be presented in [25]Symbol versioning in ncurses. These notes summarize what has changed, and what can be done with the new release. Symbol-versioning allows the developers of a library to mark each public symbol (both data and functions) with an identifier denoting the library name and the version for which it was built. By doing this, users of the library have a way to help ensure that applications do not accidentally load an incompatible library. In addition, private symbols can be hidden entirely. This release provides sample files for the four principal configurations of ncurses libraries: ncurses, ncursesw, ncursest and ncursestw. Each sample is given in two forms: ".map" These list all public symbols, together with version names. ".sym" These list all public symbols, without version names. The sample files are generated by scripts which take into account a few special cases such as [26]tack to omit many of the ncurses private symbols (beginning with "_nc_"). Here are counts of globals versus locals: Config Symbols Globals Locals "_nc_" ncurses 976 796 180 332 ncursesw 1089 905 184 343 ncursest 979 804 175 358 ncursestw 1098 914 184 372 Although only four sample configurations are presented, each is formed by merging symbols from several combinations of configure-script options, taking into account advice from downstream packagers. Because they are formed by merging, the sample files may list a symbol which is not in a given package. That is expected. The samples have been tested and are working with systems (such as Fedora, FreeBSD and Debian) which fully support this feature. There are other systems which do not support the feature, and a few (such as Solaris) which provide incomplete support. The version-naming convention used allows these sample files to build distinct libraries for ABI 5 and 6. Version names consist of * configuration name, e.g., "NCURSESW" for the wide-character libraries * ABI version (if not 5) * library name for two special cases which have the same interface across configurations: "TINFO" and "TIC" * release version * patch date (for the release version) For example, running nm -D on the libraries in the ncurses6 test package shows these symbol-versions: 0000000000000000 A NCURSES6_TIC_5.0.19991023 0000000000000000 A NCURSES6_TIC_5.1.20000708 0000000000000000 A NCURSES6_TIC_5.5.20051010 0000000000000000 A NCURSES6_TIC_5.7.20081102 0000000000000000 A NCURSES6_TIC_5.9.20150530 0000000000000000 A NCURSES6_TINFO_5.0.19991023 0000000000000000 A NCURSES6_TINFO_5.1.20000708 0000000000000000 A NCURSES6_TINFO_5.2.20001021 0000000000000000 A NCURSES6_TINFO_5.3.20021019 0000000000000000 A NCURSES6_TINFO_5.4.20040208 0000000000000000 A NCURSES6_TINFO_5.5.20051010 0000000000000000 A NCURSES6_TINFO_5.6.20061217 0000000000000000 A NCURSES6_TINFO_5.7.20081102 0000000000000000 A NCURSES6_TINFO_5.8.20110226 0000000000000000 A NCURSES6_TINFO_5.9.20150530 0000000000000000 A NCURSESW6_5.1.20000708 0000000000000000 A NCURSESW6_5.3.20021019 0000000000000000 A NCURSESW6_5.4.20040208 0000000000000000 A NCURSESW6_5.5.20051010 0000000000000000 A NCURSESW6_5.6.20061217 0000000000000000 A NCURSESW6_5.7.20081102 0000000000000000 A NCURSESW6_5.8.20110226 0000000000000000 A NCURSESW6_5.9.20150530 As a special case, this release (which makes the final change for ABI 5) is marked with release version 5.9 and patch date 20150530. Miscellaneous The new release has several improvements for performance and building. For instance: * several files in ncurses- and progs-directories were modified to allow const data used in internal tables to be put by the linker into the readonly text segment. * various improvements were made to building the Ada95 binding, both in simplifying the generated files as well as improving the way it uses gnatmake There are also new features in the libraries: * added [27]use_tioctl function * added [28]wgetdelay to retrieve _delay member of WINDOW if it happens to be opaque, e.g., in the pthread configuration. * added [29]A_ITALIC extension. * added form library extension [30]O_DYNAMIC_JUSTIFY option which can be used to override the different treatment of justification for static versus dynamic fields . * rewrote [31]putwin and [32]getwin, making an extended version which is capable of reading screen-dumps between the wide/normal ncurses configurations. These are text files, except for a magic code at the beginning: 0 string \210\210 Screen-dump (ncurses) * several changes to mouse support include: + added decoder for xterm SGR 1006 mouse mode. + added experimental support for "%u" format to terminfo. + improved behavior of wheel-mice for xterm protocol: noting that there are only button-presses for buttons "4" and "5", so there is no need to wait to combine events into double-clicks . There are a few new configure options dealing with library customization: * add "--enable-ext-putwin" configure option to turn on the extended putwin/getwin. By default, this is enabled for ABI 6 and disabled with ABI 5. * add "--enable-string-hacks" option to control whether strlcat and strlcpy may be used. Because ncurses already does the requisite buffer-limit checks, this feature is mainly of interest to quiet compiler-warnings on a few systems. * add configure option "--with-tparm-arg" to allow [33]tparm's parameters to be something more likely to be the same size as a pointer, e.g., intptr_t (again, the default is set for ABI 6). Program improvements Utilities Most of the termcap-related changes based on development of [34]tctest (termcap library checker) are implemented in the tic and infocmp programs rather than affecting the library. As noted in the [35]discussion of tctest, ncurses's ability to translate between terminfo and termcap formats has been improved at different times, but subject to feedback from "real" termcap users. There are very few of those. Nowadays, virtually all termcap users are using ncurses (or NetBSD, with its own terminfo library) and their programs are actually using terminfo rather than termcap data. Still, there are a few. A comment about the translation of the ASCII NUL character prompted a review: * Both terminfo and termcap store string capabilities as NUL-terminated strings. * In terminfo, a \0 in a terminal description is stored as \200. * There are no (known) terminals which would behave differently when sent \0 or \200. * When translating to terminfo format (or displaying a printable version of an entry using infocmp), ncurses shows \200 as \0. * It has done this since 1998 (quoting from the NEWS file): [36]980103 ... + modify _nc_tic_expand() to generate \0 rather than \200. ... + correct translation of terminfo "^@@", to \200, like \0. * However, the _nc_tic_expand function (which optionally produces terminfo or termcap format) did not address this special case for termcap. Even the later 4.4BSD [37]cgetstr interprets a \0 literally, ending that string (rather than using the terminfo improvement). As a result of the review, several improvements were made to ncurses translation to/from termcap format -- and improving the checks made in tic for consistency of entries. Most of these are not of general interest, except for two new command-line options for tic and infocmp: * the "-0" option generates termcap/terminfo source on a single line. * the "-K" option provides stricter BSD-compatibility for termcap output. Other user-visible improvements and new features include: * added "-D" option to tic and infocmp, to show the database locations that it could use. * added "-s" option to toe, to sort its output. * extended "-c" and "-n" options of infocmp to allow comparing more than two entries. * modified toe's report when "-a" and "-s" options are combined, to add a column showing which entries belong to a given database. * modified the clear program to take into account the "E3" extended capability to clear the terminal's scrollback buffer. Examples Along with the library and utilities, many improvements were made to the [38]ncurses-examples. Some were made to allow building (and comparison-testing) against NetBSD curses and PDCurses. Both lack some of the X/Open Curses features, necessitating customization. But this activity was useful because it showed some remaining performance issues (which have been resolved in this release). These changes were made to verify compatibility or compare performance of ncurses: * made workarounds for compiling test-programs with NetBSD curses, though it lacks some common functions such as [39]use_env. * added dots_termcap test-program * added dots_curses test-program, for comparison with the low-level examples. * added test_setupterm test-proram to demonstrate normal/error returns from the setupterm and restartterm functions. * added "-d", "-e" and "-q" options to the demo_terminfo and demo_termcap test-programs. * added "-y" option to demo_termcap and test/demo_terminfo test-programs to demonstrate behavior with/without extended capabilities. * modified demo_termcap and demo_terminfo test-programs to make their options more directly comparable, and add "-i" option to specify a terminal description filename to parse for names to lookup. * rewrote the tests for [40]mvderwin and test for recursive [41]mvwin in the movewindow test-program. These changes were made to help with the MinGW port: * added test-screens to the ncurses test-program to show 256-characters at a time, to help with MinGW port. * modified the view test-program to load UTF-8 when built with MinGW by using regular win32 API because the MinGW functions mblen and mbtowc do not work. * added "-s" option to the view test-program to allow it to start in single-step mode, reducing size of trace files when it is used for debugging MinGW changes. These changes were made to verify new extensions in ncurses: * added [42]form_driver_w entrypoint to wide-character forms library, as well as form_driver_w test-program. * modified ncurses test-program's b/B tests to display lines only for the attributes which a given terminal supports, to make room for an italics test. * modified ncurses test-program, adding "-E" and "-T" options to demonstrate use_env versus use_tioctl. * modified ncurses test-program's c/C tests to cycle through subsets of the total number of colors, to better illustrate 8/16/88/256-colors by providing directly comparable screens. * modified the ncurses test-program to also show position reports in 'a' test. These changes were made to make the examples more useful: * added scripts for building dpkg and rpm test-packages * modified the hanoi test-program to show the minimum number of moves possible for the given number of tiles. * modified the knight test-program to show the number of choices possible for each position in automove option, e.g., to allow user to follow Warnsdorff's rule to solve the puzzle. Terminal database This release provides improvements to tic's "-c" checking option, which was used for example to * make sgr in several entries agree with other caps. * correct padding in some entries where earlier versions had miscounted the number of octal digits. There are several new terminal descriptions: * [43]mlterm is now aliased to mlterm3 * [44]nsterm is now derived from nsterm-256color * [45]putty-sco * [46]teken is FreeBSD's "xterm" console. * [47]terminator * [48]terminology * [49]tmux is derived from screen. * several screen.XXX entries support the respective variations for 256 colors. * [50]simpleterm is now 0.5 * [51]vte is aliased to vte-2012 * [52]vt520ansi A few entries use extensions (user-defined terminal capabilities): * E3, used in linux, putty and xterm-basic is tested in the [53]clear program to erase a terminal's scrollback. * TS is used in the [54]xterm+sl building block to help deprecate the misuse of tsl for xterm's title-string. * XT is used in some terminfo entries to improve usefulness for other applications than screen, which would like to pretend that xterm's title is a status-line. * xm is used in examples [55]xterm-1005 and [56]xterm-1006 to illustrate a way to make mouse handling more general A few terminals support italics and/or dim capabilities. In particular, screen does not. Documented that, and accommodated the terminals where this feature works with the A_ITALIC extension. * konsole, mlterm3 (italics) * nsterm (dim) * screen (dim) * vte (dim, italics) * xterm (dim, italics) Documentation As usual, this release * improves documentation by describing new features, * attempts to improve the description of features which users have found confusing * fills in overlooked descriptions of features which were described in the [57]NEWS file but treated sketchily in manual pages. In addition, the mechanism for producing HTML versions of the documentation has been improved: * use an improved version of [58]man2html to generate html manpages. * regenerated [59]NCURSES-Programming-HOWTO.html to fix some of the broken html emitted by docbook. Interesting bug-fixes * Ada95 binding: + modify makefile rules to ensure that the PIC option is not used when building a static library + make Ada95 build-fix for big-endian architectures such as sparc. This undoes one of the fixes from [60]20110319, which added an "Unused" member to representation clauses, replacing that with pragmas to suppress warnings about unused bits. * Color and attributes: + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h in case it happens to be a comma-expression. + improve [61]20021221 workaround for broken acs, handling a case where that ACS_xxx character is not in the acsc string but there is a known wide-character which can be used. + modify [62]init_pair to accept -1's for color value after [63]assume_default_colors has been called. + add a check in [64]start_color to limit color-pairs to 256 when extended colors are not supported. * Resizing the screen: + propagate error-returns from wresize, i.e., the internal increase_size and decrease_size functions through [65]resize_term. + add check for zero/negative dimensions for resizeterm and resize_term. + modify resizeterm to always push a KEY_RESIZE onto the fifo, even if screensize is unchanged. Modify library to push a KEY_RESIZE if there was a SIGWINCH, even if it does not call resizeterm). These changes eliminate the case where a SIGWINCH is received, but ERR is returned from wgetch or wgetnstr because the screen dimensions did not change. * Low-level interfaces + fix an old bug in the termcap emulation; "%i" was ignored in tparm because the parameters to be incremented were already on the internal stack. + change "%l" behavior in tparm to push the string length onto the stack rather than saving the formatted length into the output buffer. + modify name-comparison for tgetstr, etc., to accommodate legacy applications as well as to improve compatbility with BSD 4.2 termcap implementations (see note for [66]980725). * High-level interfaces + modify internal recursion in wgetch which handles cooked mode to check if the call to wgetnstr returned an error. This can happen when both nocbreak and nodelay are set, for instance (see note for [67]960418). + add a check in internal function waddch_nosync to ensure that tab characters are treated as control characters; some broken locales claim they are printable. + modify menu library to ensure that a menu's top-row is adjusted as needed to ensure that the current item is on the screen + fix special case where double-width character overwrites a single- width character in the first column. Configuration changes Major changes The ncurses 6.0 configure script makes changes to the default value of several configure options, depending on the --with-abi-version option (i.e., whether its value is "5" or "6"): --enable-const Feature introduced in [68]970405 supports the use of const where X/Open Curses should have, but did not. NetBSD curses does something similar with const. --enable-ext-colors Extends the cchar_t structure to allow more than 16 colors to be encoded. This applies only to the wide-character (--enable-widec) configuration. --enable-ext-mouse Modifies the encoding of mouse state to make room for a 5th mouse button. That allows one to use ncurses with a wheel mouse with xterm or similar X terminal emulators. --enable-ext-putwin Modifies the file-format written by putwin to use printable text rather than binary files, allowing getwin to read screen dumps written by differently-configured ncurses libraries. The extended getwin can still read binary screen dumps from the same configuration of ncurses. This does not change the ABI (the binary interface seen by calling applications). --enable-interop Modifies the FIELDTYPE structure used for the form library to make it more generic. --enable-lp64 Allows an application to define _LP64 to declare chtype and mmask_t as simply "unsigned" rather than the configured types using the --with-chtype and --with-mmask_t options. --enable-sp-funcs Compile-in support for extended functions which accept a SCREEN pointer, reducing the need for juggling the global SP value with [69]set_term and [70]delscreen. --with-chtype=uint32_t Makes chtype explicitly a 32-bit unsigned value. --with-mmask_t=uint32_t Makes mmask_t explicitly a 32-bit unsigned value. --with-tparm-arg=intptr_t X/Open Curses declares [71]tparm using long for each of the parameters aside from the formatting string, presuming that long and char* are the same size. This configure option uses intptr_t which provides a better guarantee of the sizes. The configure script no longer checks for antique compilers; c89 is assumed as a minimum. There are a few features from later revisions which are used when available. The configure script makes checks to turn on useful warnings from clang, gcc and icc. You should be able to build ncurses 6.0 with any of the current (or not so current) C compilers available in 2015. The configure script, by the way, makes changes which do not work with systems whose /bin/sh is non-POSIX. This mainly affects Solaris (the other vendor unix systems have followed the POSIX guidelines for the past twenty years). If you must build on Solaris, its [72]xpg4 binaries suffice, e.g., #!/bin/sh WHAT=`hostname|sed -e 's/\..*//'` OUT=configure.out cat >>$OUT <&1 | tee -a $OUT Other major changes to the configure script include: * ABI 6 is now the default, intending that the existing ABI 5 should build as before using the "--with-abi-version=5" option. * added --with-extra-suffix option to help with installing nonconflicting ncurses6 packages, e.g., avoiding header- and library-conflicts. NOTE: as a side-effect, this renames adacurses-config to adacurses5-config and adacursesw-config to adacursesw5-config * the configure script looks for gnatgcc if the Ada95 binding is built, in preference to the default gcc/cc. The script also ensures that the Ada95 binding is built with the level of optimization as the C libraries. * the configure script captures define's related to -D_XOPEN_SOURCE from the configure check and adds those to the *-config and *.pc files, to simplify use for the wide-character libraries. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.22 2015/02/18 03:10:42 sevan Exp $ d24 48 @ 1.22 log @Drop the use of -no-cpp-precomp which is specific to Apple's supplied toolchain Provide an explaination of changes in patches/patch-ac Closes PR pkg/47949 Reviewed by wiz@@ @ text @d1 1 a1 1 $NetBSD$ d8 1 a8 1 --- configure.orig 2011-03-31 23:35:51.000000000 +0000 d10 12 a21 19 @@@@ -5584,7 +5584,6 @@@@ CF_EOF chmod +x mk_shared_lib.sh ;; darwin*) #(vi - EXTRA_CFLAGS="-no-cpp-precomp" CC_SHARED_OPTS="-dynamic" MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@@' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi @@@@ -9640,12 +9639,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi .no) #(vi ;; .|.yes) - # Debian 'man' program? - if test -f /etc/debian_version ; then - MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames - else MANPAGE_RENAMES=no - fi ;; a23 9 @@@@ -18592,7 +18586,7 @@@@ echo "${ECHO_T}$LIB_SUBSETS" >&6 ### Construct the list of include-directories to be generated -CPPFLAGS="$CPPFLAGS -I. -I../include" +CPPFLAGS="-I. -I../include $CPPFLAGS" if test "$srcdir" != "."; then CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" fi @ 1.21 log @Be a bit more forgiving with external compilers (earlier than gcc 4.6) and avoid preprocessor problems with g++ on SunOS. @ text @d1 6 a6 1 $NetBSD: patch-ac,v 1.20 2014/05/11 16:55:17 rodent Exp $ d10 9 a18 1 @@@@ -9640,12 +9645,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi d31 1 a31 1 @@@@ -18592,7 +18592,7 @@@@ echo "${ECHO_T}$LIB_SUBSETS" >&6 @ 1.20 log @Fix build for OpenBSD >= 5.5. It doesn't have sys/ttydev.h. Regenerate patchset and checksums. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.19 2013/07/08 05:54:24 richard Exp $ d3 1 a3 1 --- configure.orig Thu Mar 31 23:35:51 2011 d5 1 a5 15 @@@@ -7096,6 +7096,13 @@@@ sco*) #(vi # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ;; solaris2.1[0-9]) #(vi + case "$GCC_VERSION" in + 4.[678].*) + cf_XOPEN_SOURCE=600 + cf_add_cflags=-std=c99 + CPPFLAGS="$CPPFLAGS -std=c99" + ;; + esac cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ;; solaris2.[1-9]) #(vi @@@@ -9640,12 +9647,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi d18 1 a18 1 @@@@ -18592,7 +18594,7 @@@@ echo "${ECHO_T}$LIB_SUBSETS" >&6 @ 1.19 log @update ncurses patch to support gcc48 on solaris @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.18 2011/11/01 14:47:46 hans Exp $ d3 1 a3 1 --- configure.orig 2011-02-21 01:40:36.000000000 +0000 d32 1 a32 1 @@@@ -18449,7 +18444,7 @@@@ echo "${ECHO_T}$LIB_SUBSETS" >&6 @ 1.18 log @Fix build on SunOS >= 5.10 with gcc 4.6. Gcc 4.6 on SunOS >= 5.10 defines _XOPEN_SOURCE=600 (and other things) for c++ to enable c99 features. Things start to fall apart if _XOPEN_SOURCE is redefined to some lower value. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.17 2011/02/28 11:02:46 adam Exp $ d10 1 a10 1 + 4.[67].*) @ 1.17 log @Changes 5.8: Interface changes * turn on _XOPEN_CURSES definition in curses.h. * change _nc_has_mouse to has_mouse, reflect its use in C++ and Ada95. * add is_pad and is_subwin functions for opaque access to the WINDOW structure. * add tiparm, based on review of X/Open Curses Issue 7. Library Improvements * add a terminal driver for Windows console, which supports a MinGW port to Windows. * add extended functions which specify the SCREEN pointer for several curses functions which use the global SP. * improve the NCURSES_NO_UTF8_ACS feature by adding a check for an extended terminfo capability U8. * improve performance of tigetstr, etc., by using hashing code from tic. * add WACS_xxx definitions to wide-character configuration for thick- and double-lines. * modify init_pair to allow caller to create extra color pairs beyond the color_pairs limit, which use default colors. Improvements to Programs * add tabs program. * modify tic's -I/-C dump to reformat acsc strings into canonical form (sorted, unique mapping). * add checks in tic for inconsistent cursor-movement controls, and for inconsistent printer-controls. * add special case to _nc_infotocap (used by tic and infocmp) to recognize the setaf/setab strings from xterm+256color and xterm+88color, and provide a reduced version which works with termcap. @ text @d1 1 a1 1 $NetBSD$ d5 15 a19 1 @@@@ -9640,12 +9640,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi @ 1.16 log @Update to 5.7: New features and improvements: * library o new flavor of the ncurses library provides rudimentary support for POSIX threads. Several functions are reentrant, but most require either a window-level or screen-level mutex. (This is API-compatible, but not ABI-compatible with the normal library). o add NCURSES_OPAQUE symbol to curses.h, will use to make structs opaque in selected configurations. o add NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS symbols to curses.h to make it simpler to tell if the extended functions and/or colors are declared. o add wresize to C++ binding o eliminate fixed-buffer vsprintf calls in C++ binding. o add several functions to C++ binding which wrap C functions that pass a WINDOW* parameter. o adapt mouse-handling code from menu library in form-library o improve tracing for form library, showing created forms, fields, etc. o make $NCURSES_NO_PADDING feature work for termcap interface . o add check to trace-file open, if the given name is a directory, add ".log" to the name and try again. o several new manpages: curs_legacy.3x, curs_memleaks.3x, curs_opaque.3x and curs_threads.3x * programs: o modified three test-programs to demonstrate the threading support in this version: ditto, rain, worm. o several new test-programs: demo_panels, dots_mvcur, inch_wide, inchs, key_name, key_names, savescreen, savescreen.sh test_arrays, test_get_wstr, test_getstr, test_instr, test_inwstr and test_opaque. o add adacurses-config to the Ada95 install. o modify tic -f option to format spaces as \s to prevent them from being lost when that is read back in unformatted strings. o The tack program is now distributed separately from ncurses. * terminal database o added entries: + Eterm-256color, Eterm-88color and rxvt-88color + aterm + konsole-256color + mrxvt + screen.mlterm + screen.rxvt + teraterm4.59 is now the primary primary teraterm entry, renamed original to teraterm2.3 + 9term terminal + Newbury Data entries o updated/improved entries: + gnome to version 2.22.3 + h19, z100 + konsole to version 1.6.6 + mlterm, mlterm+pcfkeys + xterm, and building-blocks for function-keys to xterm patch #230. Major bug fixes: * add logic to tic for cancelling strings in user-defined capabilities (this is needed for current konsole terminfo entry). * modify mk-1st.awk so the generated makefile rules for linking or installing shared libraries do not first remove the library, in case it is in use, e.g., libncurses.so by /bin/sh. * correct check for notimeout in wgetch. * fix a sign-extension bug in infocmp's repair_acsc function. * change winnstr to stop at the end of the line. * make Ada95 demo_panels example work. * fix for adding a non-spacing character at the beginning of a line. * fill in extended-color pair to make colors work for wide-characters using extended-colors. * improve refresh of window on top of multi-column characters, taking into account split characters on left/right window boundaries. * modify win_wchnstr to ensure that only a base cell is returned for each multi-column character. * improve waddch and winsch handling of EILSEQ from mbrtowc by using unctrl to display illegal bytes rather than trying to append further bytes to make up a valid sequence. * restore curs_set state after endwin/refresh * modify keyname to use "^X" form only if meta has been called, or if keyname is called without initializing curses, e.g., via initscr or newterm. * modify unctrl to check codes in 128-255 range versus isprint. If they are not printable, and locale was set, use a "M-" or "~" sequence. * improve resizeterm by moving ripped-off lines, and repainting the soft-keys. * modify form library to accept control characters such as newline in set_field_buffer, which is compatible with Solaris. * use NCURSES_MOUSE_MASK in definition of BUTTON_RELEASE, etc., to make those work properly with the --enable-ext-mouse configuration * correct some functions in Ada95 binding which were using return value from C where none was returned. * reviewed/fixed issues reported by Coverity and Klocwork tools. Portability: * configure script: o new options: --disable-big-strings control whether static string tables are generated as single large strings (to improve startup performance), or as array of individual strings. --disable-relink control whether shared libraries are relinked (during install) when rpath is enabled. --disable-tic-depends make explicit whether tic library depends on ncurses/ncursesw library. --enable-mixed-case override the configure script's check if the filesystem supports mixed-case filenames. This allows one to control how the terminal database maps to the filesystem. For filesystems that do not support mixed-case, the library uses generate 2-character (hexadecimal) codes for the lower-level of the filesystem terminfo database --enable-reentrant builds a different flavor of the ncurses library (ncursest) which improves reentrant use of the library by reducing global and static variables (see the "--with-pthread" option for the threaded support). --enable-weak-symbols use weak-symbols for linking to the POSIX thread library, and use the same soname for the ncurses shared library as the normal library (caveat: the ABI is for the threaded library, which makes global data accessed via functions). --with-pthread build with the POSIX thread library (tested with AIX, GNU/Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64). --with-ticlib build/install the tic-support functions in a separate library o improved options: --enable-ext-colors requires the wide-character configuration. --with-chtype ignore option value "unsigned" is always added to the type in curses.h; do the same for --with-mmask-t. --with-dmalloc build-fix for redefinition of strndup. --with-hashed-db + accepts a parameter which is the install-prefix of a given Berkeley Database. + the $LIBS environment variable overrides the search for the db library. --without-hashed-db assumed when "--disable-database" is used. * other configure/build issues: o build-fixes for LynxOS o modify shared-library rules to allow FreeBSD 3.x to use rpath. o build-fix for FreeBSD "contemporary" TTY interface. o build-fixes for AIX with libtool. o build-fixes for Darwin and libtool. o modify BeOS-specific ifdef's to build on Haiku. o corrected gcc options for building shared libraries on Solaris and IRIX64. o change shared-library configuration for OpenBSD, make rpath work. o build-fixes for using libutf8, e.g., on OpenBSD 3.7 o add "-e" option in ncurses/Makefile.in when generating source-files to force earlier exit if the build environment fails unexpectedly. o add support for shared libraries for QNX. o change delimiter in MKlib_gen.sh from '%' to '@@', to avoid substitution by IBM xlc to '#' as part of its extensions to digraphs. * library: o rewrite wrapper for wcrtomb, making it work on Solaris. This is used in the form library to determine the length of the buffer needed by field_buffer. o add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding type for data manipulated by signal handlers. o set locale in misc/ncurses-config.in since it uses a range o disable GPM mouse support when $TERM does not happen to contain "linux", since Gpm_Open no longer limits its assertion to terminals that it might handle, e.g., within "screen" in xterm. o reset mouse file-descriptor when unloading GPM library. * test programs: o update test programs to build/work with various UNIX curses for comparisons. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.15 2007/12/22 00:23:58 joerg Exp $ d3 1 a3 1 --- configure.orig 2008-10-26 00:04:38.000000000 +0000 d5 1 a5 10 @@@@ -2663,7 +2663,7 @@@@ if test "$cross_compiling" = yes ; then LDCONFIG=: else case "$cf_cv_system_name" in #(vi -freebsd*) #(vi +dragonfly*|freebsd*) #(vi test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R" ;; *) LDPATH=$PATH:/sbin:/usr/sbin @@@@ -8516,12 +8516,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi d18 9 @ 1.15 log @Fix build on DragonFly. @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- configure.orig 2007-12-21 22:33:08.000000000 +0000 d5 4 a8 4 @@@@ -6051,7 +6051,7 @@@@ case $host_os in #(vi aix[45]*) #(vi CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE" ;; d11 4 a14 4 # 5.x headers associate # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L @@@@ -7921,12 +7921,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi @ 1.14 log @Changes 5.6: Hashed-databases are supported for storing terminal descriptions. Support for magic-cookies such as hpterm was improved. Support for rpath in shared libraries was revised. Many bugfixes were made for memory leaks, wide-character support, portability, and more. @ text @d3 1 a3 1 --- configure.orig 2006-12-17 17:33:38.000000000 +0100 d5 9 @ 1.13 log @Update to 5.5. Solaris PLIST should be checked for correctness. This release is designed to be upward compatible from ncurses 5.0 through 5.4; very few applications will require recompilation, depending on the platform. These are the highlights from the change-log since ncurses 5.4 release. Interface changes: * terminfo installs "xterm-new" as "xterm" entry rather than "xterm-old" (aka xterm-r6). * terminfo data is installed using the tic -x option (few systems still use ncurses 4.2). * modify C++ binding to work with newer C++ compilers by providing initializers and using modern casts. Old-style header names are still used in this release to allow compiling with not-so-old compilers. * modify parameter type in c++ binding for insch() and mvwinsch() to be consistent with underlying ncurses library (was char, is chtype). * change NCursesWindow::err_handler() to a virtual function. * form and menu libraries now work with wide-character data. Applications which bypassed the form library and manipulated the FIELD.buf data directly will not work properly with libformw, since that no longer points to an array of char. The set_field_buffer() and field_buffer() functions translate to/from the actual field data. * add symbol to curses.h which can be used to suppress include of stdbool.h, e.g., #define NCURSES_ENABLE_STDBOOL_H 0 #include * change SP->_current_attr to a pointer, adjust ifdef's to ensure that libtinfo.so and libtinfow.so have the same ABI. The reason for this is that the corresponding data which belongs to the upper-level ncurses library has a different size in each model. * winnstr() now returns multibyte character strings for the wide-character configuration. * assume_default_colors() no longer requires that use_default_colors() be called first. * data_ahead() now works with wide-characters. * slk_set() and slk_wset() now accept and store multibyte or multicolumn characters. * start_color() now returns OK if colors have already been started. start_color() also returns ERR if it cannot allocate memory. * pair_content() now returns -1 for consistency with init_pair() if it corresponds to the default-color. * unctrl() now returns null if its parameter does not correspond to an unsigned char. New features and improvements: * library + environment variable NCURSES_NO_UTF8_ACS supports miscellaneous terminal emulators which ignore alternate character set escape sequences when in UTF-8 mode. + modify initialization of key lookup table so that if an extended capability (tic -x) string is defined, and its name begins with 'k', ncurses will automatically treat it as a key. + change GPM initialization, using dl library to load it dynamically at runtime. + form, menu and panel libraries support debug-tracing. * add NCURSES-Programming-HOWTO.html by Pradeep Padala (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/). * programs: * infocmp: + The -i option now matches 8-bit controls against its table entries, e.g., so it can analyze the xterm-8bit entry. + add "-x" option to infocmp like tic's "-x", for use in "-F" comparisons. This modifies infocmp to only report extended capabilities if the -x option is given, making this more consistent with tic. Some scripts may break, since infocmp previous gave this information without an option. * tic: + modify termcap-parsing to retain 2-character aliases at the beginning of an entry if the "-x" option is used in tic. + filter out long extended names when translating to termcap format. Only two characters are permissible for termcap capability names. + correct translation of "%%" in terminfo format to termcap, e.g., using "tic -C". + modify the "-c -v" options to ignore delays when comparing strings. Also modify it to ignore a canceled sgr string, e.g., for terminals which cannot properly combine attributes in one control sequence. + add a check for improperly ended strings, i.e., where a following line begins in column 1. + add a check in tic for terminfo entries having an sgr0 but no sgr string. This confuses Tru64 and HPUX curses when combined with color, e.g., making them leave line-drawing characters in odd places. + add check (with debug configuration) that provides about the runtime changes that would be made to sgr0 for termcap applications. * tset: + add -c and -w options to allow user to suppress ncurses' resizing of the terminal emulator window in the special case where it is not able to detect the true size. Major bug fixes: * improve logic in tgetent() which adjusts the termcap "me" string to work with ISO-2022 string used in xterm-new. This is a feature that was incompletely implemented in ncurses 5.3. ncurses attempts to provide termcap clients with the portion of the sgr0 (termcap "me") string that does not reset line-drawing. * cells in the WINDOW which are continuations of a multicolumn character are encoded differently, making repainting more reliable. * amend change to setupterm() in ncurses 5.4 (20030405) which would reuse the value of cur_term if the same output was selected. This now reuses it only when setupterm() is called from tgetent(), which has no notion of separate SCREENs. Note that tgetent() must be called after initscr() or newterm() to use this feature. * make setcchar() now works when its wchar_t* parameter is pointing to a string which contains more data than can be converted. * win_wchnstr() now works for more than one cell. * resizeterm() now processes all levels of window hierarchy. * disable GPM mouse support when $TERM happens to be prefixed with "xterm". Gpm_Open() would otherwise assert that it can deal with mouse events in this case. * add SP->_screen_acs_map[], used to ensure that mapping of missing line-drawing characters is handled properly. For example, ACS_DARROW is absent from xterm-new, and it was coincidentally displayed the same as ACS_BTEE. Portability: * configure script: + new options: --enable-largefile set compiler and linker flags to use largefile support. --enable-ext-colors Allow encoding of 256 foreground and background colors, e.g., with the xterm-256color or xterm-88color terminfo entries. This requires ABI 6 because it changes the size of cchar_t. --enable-ext-mouse This defines NCURSES_MOUSE_VERSION 2, and modifies the encoding of mouse events to support wheel mice, which may transmit buttons 4 and 5. This works with xterm and similar terminal emulators. This requires ABI 6 because it changes the encoding of mouse events. --with-chtype overriding of the non-LP64 model's use of chtype --with-mmask-t overriding of the non-LP64 model's use of mmask_t --without-xterm-new Installs "xterm-old" as the "xterm" entry of the terminfo database. + The --with-termlib option now accepts a value which sets the name of the terminfo library. This would allow a packager to build libtinfow.so renamed to coincide with libtinfo.so + fixes/improvements for cross-compiling: o suppress $suffix in misc/run_tic.sh when cross-compiling. This allows cross-compiles to use the host's tic program to handle the "make install.data" step. o correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow cross-compiling from a separate directory tree. * library: + add ifdef's for _LP64 in curses.h to avoid using wasteful 64-bits for chtype and mmask_t, but add configure option --disable-lp64 in case anyone used that configuration. + modify C++ binding to use some C internal functions to make it compile properly on Solaris (and other platforms). + remove check in newwin() that prevents allocating windows that extend beyond the screen (Solaris does this). + check for nl_langinfo(CODESET), use it if available. This replaces ad hoc tests of environment variables to check if the terminal is setup for UTF-8 encoding. Applications which do not call setlocale() should be corrected, to make them work properly with UTF-8 encoding. In particular, applications which assume (and do not call setlocale()) that Latin-1 codes are printable will no longer work in a UTF-8 locale since the ad hoc check of environment variables to see if the locale was UTF-8 is not used when nl_langinfo(CODESET) is available. + use setlocale() to query the program's current locale rather than using getenv(). This supports applications which rely upon legacy treatment of 8-bit characters when the locale is not initialized. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.12 2004/03/03 13:36:09 adam Exp $ d3 1 a3 1 --- configure.orig 2005-09-24 23:50:50.000000000 +0200 d5 1 a5 1 @@@@ -7763,12 +7763,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi @ 1.12 log @Changes 5.4: * Interface changes * New features and improvements: library, programs * Major bug fixes (See ANNOUNCE for details) @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- configure.orig 2004-02-01 01:03:42.000000000 +0000 d5 1 a5 1 @@@@ -5537,12 +5537,7 @@@@ case ".$MANPAGE_RENAMES" in #(vi @ 1.11 log @Don't use silly names for man pages, even if on Debian GNU/Linux. @ text @d1 1 a1 1 $NetBSD: $ d3 3 a5 3 --- configure.orig Sun Mar 30 15:21:38 2003 +++ configure Sun Mar 30 15:21:47 2003 @@@@ -5031,12 +5031,7 @@@@ @ 1.10 log @Merge changes in packages from the buildlink2 branch that have buildlink2.mk files back into the main trunk. This provides sufficient buildlink2 infrastructure to start merging other packages from the buildlink2 branch that have already been converted to use the buildlink2 framework. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.9 2001/06/19 05:35:39 jlam Exp $ d3 14 a16 17 --- configure.orig Fri Oct 20 18:58:49 2000 +++ configure @@@@ -6999,17 +6999,6 @@@@ if test "$srcdir" != "."; then CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include" fi -if test "$GCC" != yes; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" -elif test "$includedir" != "/usr/include"; then - if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" - fi - else - CPPFLAGS="$CPPFLAGS -I\$(includedir)" - fi -fi a17 34 @@@@ -7017,17 +7006,6 @@@@ if test "$srcdir" != "."; then ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include" fi -if test "$GCC" != yes; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" -elif test "$includedir" != "/usr/include"; then - if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" - fi - else - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" - fi -fi @@@@ -7191,11 +7169,11 @@@@ fi done echo "$ac_t""$cf_cv_src_modules" 1>&6 -TEST_ARGS="-L${LIB_DIR} -L\$(libdir) $TEST_ARGS" +TEST_ARGS="-L${LIB_DIR} $TEST_ARGS" -PROG_ARGS="-L${LIB_DIR} -L\$(libdir) $PROG_ARGS" +PROG_ARGS="-L${LIB_DIR} $PROG_ARGS" SRC_SUBDIRS="man include" @ 1.9 log @Remove explicit inclusion of -I$(includedir) into CPPFLAGS and -L$(libdir) into LDFLAGS. This makes building of ncurses on a system already having ncurses installed possible. This is just another chapter of the continuing buildlink saga. @ text @d1 1 a1 1 $NetBSD$ @ 1.9.2.1 log @First pass at conversion of various packages to use the buildlink2 framework. Add many buildlink2.mk files to add to the framework. Please see buildlink2.txt for more details. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.9 2001/06/19 05:35:39 jlam Exp $ @ 1.8 log @Back out changes to build *_pic.a libraries. This change was thought to be needed for the xerces-p package, but ended up not being necessary. By removing this hack, we reduce the number of places in pkgsrc where we depend upon libtool internals. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.7 2001/03/12 15:51:51 jlam Exp $ d3 52 a54 23 --- mk-1st.awk.orig Sat Oct 14 13:57:02 2000 +++ mk-1st.awk @@@@ -223,14 +223,20 @@@@ compile="CC" } end_name = lib_name; + piclib_suffix = "_pic.a"; + piclib_name = sprintf("%s%s%s", prefix, name, piclib_suffix) printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS printf "\tcd ../lib && $(LIBTOOL) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)\n", compile, lib_name, OBJS + printf "\t$(AR) $(AR_OPTS) ../lib/%s $(%s_OBJS:../obj_lo/%=../obj_lo/.libs/%)\n", piclib_name, OBJS + printf "\t$(RANLIB) ../lib/%s\n", piclib_name print "" print "install \\" print "install.libs \\" printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name printf "\t@@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name printf "\tcd ../lib; $(LIBTOOL) $(INSTALL_DATA) %s $(DESTDIR)$(libdir)\n", lib_name + printf "\t@@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", piclib_name, piclib_name + printf "\t$(INSTALL_DATA) ../lib/%s $(DESTDIR)$(libdir)/%s\n", piclib_name, piclib_name print "" print "uninstall \\" print "uninstall.libs \\" @ 1.7 log @Create _pic.a libraries needed by forthcoming xerces-p package. XXX This uses libtool internals! Requested in private mail by Emmanuel Dreyfus . @ text @d1 1 a1 1 $NetBSD$ @ 1.6 log @Patch with ncurses-5.1-20001014.patch.gz. This has a few minor bug fixes, but mostly comprises patches to ease building on NetBSD pkgsrc. Tom Dickey has been kind enough to accept our patches back into the main source tree. Many thanks to him. @ text @d1 1 a1 1 $NetBSD: patch-ac,v 1.5 2000/10/12 14:56:45 jlam Exp $ d3 23 a25 102 --- c++/Makefile.in.orig Thu Oct 12 04:52:50 2000 +++ c++/Makefile.in @@@@ -48,6 +48,8 @@@@ libdir = @@libdir@@ includedir = @@includedir@@ +LIBTOOL = @@LIBTOOL@@ + INSTALL = @@INSTALL@@ INSTALL_DATA = @@INSTALL_DATA@@ @@@@ -64,6 +66,7 @@@@ CCFLAGS = $(CPPFLAGS) $(CXXFLAGS) +CFLAGS_LIBTOOL = $(CCFLAGS) CFLAGS_NORMAL = $(CCFLAGS) CFLAGS_DEBUG = $(CCFLAGS) @@CXX_G_OPT@@ -DTRACE CFLAGS_PROFILE = $(CCFLAGS) -pg @@@@ -71,25 +74,37 @@@@ CFLAGS_DEFAULT = $(CFLAGS_@@DFT_UPR_MODEL@@) +NCURSES_MAJOR = @@NCURSES_MAJOR@@ +NCURSES_MINOR = @@NCURSES_MINOR@@ REL_VERSION = @@cf_cv_rel_version@@ ABI_VERSION = @@cf_cv_abi_version@@ -LINK = @@LINK_PROGS@@ $(CXX) @@CXXLDFLAGS@@ +LINK = @@LINK_PROGS@@ $(LIBTOOL) $(CXX) @@CXXLDFLAGS@@ + +LIBROOT = ncurses++ +LIBNAME = @@LIB_PREFIX@@$(LIBROOT)@@DFT_DEP_SUFFIX@@ + +LIBNAME_LIBTOOL = @@LIB_PREFIX@@$(LIBROOT)@@LIB_SUFFIX@@.la +LIBNAME_NORMAL = @@LIB_PREFIX@@$(LIBROOT)@@LIB_SUFFIX@@.a -LIBROOT = ncurses++@@LIB_SUFFIX@@ -LIBNAME = @@LIB_PREFIX@@$(LIBROOT).a +LINK_FLAGS = @@EXTRA_LDFLAGS@@ -L../lib -L$(libdir) -l$(LIBROOT) -LDFLAGS = @@EXTRA_LDFLAGS@@ -L../lib -L$(libdir) \ - -l$(LIBROOT) \ - @@TEST_ARGS@@ @@LDFLAGS@@ \ +LINK_LIBTOOL = @@EXTRA_LDFLAGS@@ -L../lib -L$(libdir) ../lib/$(LIBNAME) +LINK_NORMAL = $(LINK_FLAGS) +LINK_DEBUG = $(LINK_FLAGS) +LINK_PROFILE = $(LINK_FLAGS) +LINK_SHARED = $(LINK_FLAGS) + +LDFLAGS = @@TEST_ARGS@@ @@LDFLAGS@@ \ @@LD_MODEL@@ @@LIBS@@ @@EXTRA_LIBS@@ @@LOCAL_LDFLAGS@@ $(CXXLIBS) +LDFLAGS_LIBTOOL = $(LDFLAGS) LDFLAGS_NORMAL = $(LDFLAGS) LDFLAGS_DEBUG = $(LDFLAGS) @@CC_G_OPT@@ LDFLAGS_PROFILE = $(LDFLAGS) -pg LDFLAGS_SHARED = $(LDFLAGS) @@LD_SHARED_OPTS@@ -LDFLAGS_DEFAULT = $(LDFLAGS_@@DFT_UPR_MODEL@@) +LDFLAGS_DEFAULT = $(LINK_@@DFT_UPR_MODEL@@) $(LDFLAGS_@@DFT_UPR_MODEL@@) AUTO_SRC = \ etip.h @@@@ -114,10 +129,15 @@@@ $(MODEL)/cursesapp.o \ $(MODEL)/cursesmain.o -../lib/$(LIBNAME) : $(LIB_OBJS) +../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS) $(AR) $(AR_OPTS) $@@ $? $(RANLIB) $@@ +../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS) + cd ../lib && $(LIBTOOL) $(CXX) -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \ + -rpath $(INSTALL_PREFIX)$(libdir) \ + -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) + OBJS_DEMO = $(MODEL)/demo.o $(MODEL)/demo.o : $(srcdir)/demo.cc \ @@@@ -137,17 +157,17 @@@@ install \ install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir) - $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME) + $(LIBTOOL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME) uninstall \ uninstall.libs:: - -rm -f $(DESTDIR)$(libdir)/$(LIBNAME) + -$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME) mostlyclean :: -rm -f core tags TAGS *~ *.ln *.atac trace clean :: mostlyclean - -rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(OBJS_DEMO) + -$(LIBTOOL) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO) distclean :: clean -rm -f Makefile @ 1.5 log @Update ncurses to 5.1 (20001009). Changes from version 5.0 include better support for termcap, new extensions for color, several bug fixes, minor API changes, buffer-overrun checks. @ text @d1 1 a1 1 $NetBSD$ @ 1.4 log @Update ncurses to 5.0. From the release notes: We decided to release ncurses as a new whole number release (5.0) because it incorporates several interface changes, including some that would invalidate existing shared libraries. These are the highlights from the change-log since ncurses 4.2 release. Interface changes: * The principal source of changes to the interface comes from the release of X/Open Curses in 1997. Earlier versions of ncurses (4.0 and before) were based on a draft version of the specification. The release version adds parameters to some functions to support the evolving internationalization of curses. These summarize the impact: + modified several prototypes to correspond with 1997 version of X/Open Curses (affects ABI since developers have used attr_get). + corrected prototypes for slk_* functions, using chtype rather than attr_t. + the slk_attr_{set,off,on} functions need an additional void* parameter according to XSI. + correct macros for wattr_set, wattr_get, separate wattrset macro from these to preserve behavior that allows attributes to be combined with color pair numbers. + reviewed/updated curses.h, term.h against X/Open Curses Issue 4 Version 2. This includes making some parameters NCURSES_CONST rather than const, e.g., in termcap.h. + reviewed/corrected macros in curses.h as per XSI document. + add set_a_attributes and set_pglen_inch to terminfo structure, as per XSI and Solaris 2.5. * The newest version of the X/Open Curses is implemented on Solaris and other vendor's systems. It adds new features to the terminfo descriptions: + implement tparm %l format. + implement tparm printf-style width and precision for %s, %d, %x, %o as per XSI. * We made additional changes to reduce impact by future interface changes: + rename key_names[] array to _nc_key_names since it is not part of the curses interface. + move macro winch to a function, to hide details of struct ldat * modify configure script to embed ABI in shared libraries for HP-UX 10.x (detailed request by Tim Mooney). * modify configuration of shared libraries on Digital Unix so that versioning is embedded in the library, rather than implied by links (patch by Tim Mooney). New features: * enable sigwinch handler by default. * turn on hashmap scrolling code by default * improved support for termcap applications + modify tput to accept termcap names as an alternative to terminfo names. + provide support for termcap PC variable by copying it from terminfo data and using it as the padding character in tputs. + provide support for termcap ospeed variable by copying it from the internal cur_term member, and using ospeed as the baudrate reference for the delay_output and tputs functions. + change name-comparisons in lib_termcap to compare no more than 2 characters. + add configure option --enable-tcap-names, which essentially allows users to define new capabilities as in termcap. * add mouse support to ncurses menus. * add mouse and dll support for OS/2 EMX * modify terminfo parsing to accept octal and hexadecimal constants * add configure option --enable-no-padding, to allow environment variable $NCURSES_NO_PADDING to eliminate non-mandatory padding, thereby making terminal emulators (e.g., for vt100) a little more efficient. * modify lib_color.c to eliminate dependency on orig_colors and orig_pair, since SVr4 curses does not require these either, but uses them when they are available. * add -f option to infocmp and tic, which formats the terminfo if/then/else/endif so that they are readable (with newlines and tabs). * modify tic to compile into %'char' form in preference to %{number}, since that is a little more efficient. Major bug fixes: * modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a problem where ncurses applications which were run via a shell script would hang when given a ^Z. Also, check if the terminal's process group is consistent, i.e., a shell has not taken ownership of it, before deciding to save the current terminal settings in the SIGTSTP handler. * suppress sc/rc capabilities from terminal description if they appear in smcup/rmcup. This affects only scrolling optimization, to fix a problem reported by several people with xterm's alternate screen, though the problem is more general. * modify relative_move and tputs to avoid an interaction with the BSD-style padding. The relative_move function could produce a string to replace on the screen which began with a numeric character, which was then interpreted by tputs as padding. * modify setupterm so that cancelled strings are treated the same as absent strings, cancelled and absent booleans false (does not affect tic, infocmp). * modify lib_vidattr.c to allow for terminal types (e.g., xterm-color) which may reset all attributes in the 'op' capability, so that colors are set before turning on bold and other attributes, but still after turning attributes off. * use 'access()' to check if ncurses library should be permitted to open or modify files with fopen/open/link/unlink/remove calls, in case the calling application is running in setuid mode. * correction to doupdate, for case where terminal does not support insert/delete character. The logic did not check that there was a difference in alignment of changes to old/new screens before repainting the whole non-blank portion of the line. Modified to fall through into logic that reduces by the portion which does not differ. @ text @d3 5 a7 8 --- man/Makefile.in.orig Wed Feb 11 07:13:49 1998 +++ man/Makefile.in Sat Jan 15 11:24:46 2000 @@@@ -63,7 +63,7 @@@@ # We compose terminfo.5 from the real sources... CAPLIST=$(srcdir)/../include/Caps terminfo.5: $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail Makefile $(srcdir)/MKterminfo.sh - sh $(srcdir)/MKterminfo.sh $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail >terminfo.5 + sh $(srcdir)/MKterminfo.sh $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail | tbl >terminfo.5 d9 88 a96 1 mostlyclean : d98 7 @ 1.3 log @ * Update "devel/ncurses" to latest release 4.2. * Libtoolize library build. @ text @d3 11 a13 10 --- misc/run_tic.sh.orig Wed Feb 11 07:13:50 1998 +++ misc/run_tic.sh Tue Jun 29 19:03:00 1999 @@@@ -120,6 +120,7 @@@@ # to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not # all systems support symbolic links, and those that do provide a variety # of options for 'test'. +exit 0 # don't do this if test "$TICDIR" != "$TERMINFO" ; then ( rm -f $TICDIR 2>/dev/null ) if ( cd $TICDIR 2>/dev/null ) @ 1.2 log @Add NetBSD RCS Ids. @ text @d3 3 a5 3 --- misc/run_tic.sh.orig Sun Dec 1 00:10:08 1996 +++ misc/run_tic.sh Sun Jun 21 00:19:09 1998 @@@@ -109,6 +109,7 @@@@ @ 1.1 log @Automatic manual page handling, and don't create the ${PREFIX}/lib/terminfo symlink, as we have no need for the "compatibility". @ text @d1 2 @