New in Ncurses 5.6 (Oct 1, 2008)
- generate linkable stubs for some macros: getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx, getpary, getpary, and (for libncursesw) wgetbkgrnd
- support hashed databases for the terminal descriptions. This uses the Berkeley database, has been tested for several versions on different platforms.
- add use_legacy_coding() function to support lynx's font-switching feature.
- add extension nofilter(), to cancel a prior filter() call.
- add/install a package config script, e.g., ncurses5-config or ncursesw5-config, according to configuration options.
- provide ifdef for NCURSES_NOMACROS which suppresses most macro definitions from curses.h, i.e., where a macro is defined to override a function to improve performance.
- make ifdef's consistent in curses.h for the extended colors so the header file can be used for the normal curses library. The header file installed for extended colors is a variation of the wide-character configuration.
- improve tgetstr() by making the return value point into the user's buffer, if provided.
- add ifdef's allowing ncurses to be built with tparm() using either varargs (the existing status), or using a fixed-parameter list (to match X/Open).
- widen the test for xterm kmous a little to allow for other strings than "E[M", e.g., for xterm-sco functionality in xterm.
- modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs.
- move prototypes for wide-character trace functions from curses.tail to curses.wide to avoid accidental reference to those if _XOPEN_SOURCE_EXTENDED is defined without ensuring that is included.
- change the way shared libraries (other than libtool) are installed. Rather than copying the build-tree's libraries, link the shared objects into the install directory. This makes the --with-rpath option work except with $(DESTDIR).
- several improvements for rendering in hpterm. These are only available if the library is configured using --enable-xmc-glitch.
- Add NCURSES_NO_HARD_TABS and NCURSES_NO_MAGIC_COOKIE environment variables to allow runtime suppression of the related hard-tabs and xmc-glitch features.
- programs:
- add new test programs: chgat.c, demo_altkeys.c, echochar.c, foldkeys.c, movewindow.c, redraw.c, (noting that existing test programs also were modified to test additional features).
- modify tack to test extended capability function-key strings.
- modify toe to access termcap data, e.g., via cgetent() functions, or as a text file if those are not available.
- improve infocmp/tic -f option formatting.
- add toe -a option, to show all databases. This uses new private interfaces in the ncurses library for iterating through the list of databases.
- modify MKfallback.sh to use tic -x when constructing fallback tables to allow extended capabilities to be retrieved from a fallback entry.
- terminal database
- add terminfo entries for xfce terminal (xfce) and multi gnome terminal (mgt)
- add nsterm-16color entry
- updated mlterm terminfo entry
- add kon, kon2 and jfbterm terminfo entry
- remove invis capability from klone+sgr, mainly used by linux entry, since it does not really do this
- add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
- add shifted up/down arrow codes to xterm-new as kind/kri strings
- add hpterm-color terminfo entry
- add 256color variants of terminfo entries for programs which are reported to implement this feature
- correct order of use-clauses in rxvt-basic entry which made codes for f1-f4 vt100-style rather than vt220-style.
- correct a typo in configure --with-bool option for the case where --without-cxx is used.
- move assignment from environment variable ESCDELAY from initscr() down to newterm() so the environment variable affects timeouts for terminals opened with newterm() as well.
- modify werase to clear multicolumn characters that extend into a derived window.
- modify wchgat() to mark updated cells as changed so a refresh will repaint those cells.
- correct logic in wadd_wch() and wecho_wch(), which did not guard against passing the multi-column attribute into a call on waddch(), e.g., using data returned by win_wch()
- fix redrawing of windows other than stdscr using wredrawln() by touching the corresponding rows in curscr.
- reduce memory leaks in repeated calls to tgetent() by remembering the last TERMINAL* value allocated to hold the corresponding data and freeing that if the tgetent() result buffer is the same as the previous call.
- modify read_termtype() so the term_names data is always allocated as part of the str_table, a better fix for a memory leak.
- fix wins_nwstr(), which did not handle single-column non-8bit codes.
- modify wbkgrnd() to avoid clearing the A_CHARTEXT attribute bits since those record the state of multicolumn characters.
- improve SIGWINCH handling by postponing its effect during newterm(), etc., when allocating screens.
- remove 970913 feature for copying subwindows as they are moved in mvwin().
- add checks in waddchnstr() and wadd_wchnstr() to stop copying when a null character is found.
- add some checks to ensure current position is within scrolling region before scrolling on a new line.
- add a workaround to ACS mapping to allow applications such as test/blue.c to use the "PC ROM" characters by masking them with A_ALTCHARSET. This worked up til 5.5, but was lost in the revision of legacy coding.
- with-hashed-db: Use Berkeley hashed database for storing terminfo data rather than storing each compiled entry in a separate binary file within a directory tree.
- without-dlsym: Do not use dlsym() to load GPM dynamically.
- with-valgrind: Simplify building for testing with valgrind.
- enable-wgetch-events: Compile with experimental wgetch-events code.
- enable-signed-char: Store booleans in "signed char" rather than "char".
- disable-largefile: make the option work both ways.
- with-gpm: The option now accepts a parameter, i.e., the name of the dynamic GPM library to load via dlopen()
- disable-symlinks: The option now allows one to disable symlink() in tic even when link() does not work.
- remove special case for Darwin in CF_XOPEN_SOURCE configure macro.
- add configure check to ensure that SIGWINCH is defined on platforms such as OS X which exclude that when _XOPEN_SOURCE, etc., are defined
- use ld's -search_paths_first option on Darwin to work around odd search rules on that platform.
- improve ifdef's for _POSIX_VDISABLE in tset to work with Mac OS X.
- modify configure script to ensure that if the C compiler is used rather than the loader in making shared libraries, the $(CFLAGS) variable is also used.
- use ${CC} rather than ${LD} in shared library rules for IRIX64, Solaris to help ensure that initialization sections are provided for extra linkage requirements, e.g., of C++ applications.
- improve some shared-library configure scripting for Linux, FreeBSD and NetBSD to make --with-shlib-version work.
- split up dependency of names.c and codes.c in ncurses/Makefile to work with parallel make.
- modify MKlib_gen.sh to change preprocessor-expanded _Bool back to bool.
- modify progs/Makefile.in to make tput init work properly with cygwin, i.e., do not pass a .exe in the reference string used in check_aliases.
- ignore wide-acs line-drawing characters that wcwidth() claims are not one-column. This is a workaround for Solaris' broken locale support.
- reduce name-pollution in term.h by removing #define's for HAVE_xxx symbols.
- fix #ifdef in c++/internal.h for QNX 6.1
- modify test/configure script to allow building test programs with PDCurses/X11.
- modified test programs to allow some to work with NetBSD curses. Several do not because NetBSD curses implements a subset of X/Open curses, and also lacks much of SVr4 additions. But it is enough for comparison.
- improved test/configure to build test/ncurses on HPUX 11 using the vendor curses.
- change configure script to produce test/Makefile from data file.