From e70a86c3d48b8cbad0f6d1c33ba5b027a243834e Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 2 Nov 2008 21:13:51 -0500 Subject: [PATCH] ncurses 5.7 --- ANNOUNCE | 412 ++++++++++++++++++----------------- INSTALL | 90 +++++++- NEWS | 8 +- announce.html.in | 444 ++++++++++++++++++------------------- dist.mk | 6 +- doc/html/announce.html | 448 +++++++++++++++++++------------------- mkdirs.sh | 0 ncurses/tinfo/MKcaptab.sh | 0 test/demo_panels.c | 0 test/savescreen.c | 0 test/savescreen.sh | 0 11 files changed, 742 insertions(+), 666 deletions(-) mode change 100644 => 100755 mkdirs.sh mode change 100644 => 100755 ncurses/tinfo/MKcaptab.sh mode change 100755 => 100644 test/demo_panels.c mode change 100755 => 100644 test/savescreen.c mode change 100644 => 100755 test/savescreen.sh diff --git a/ANNOUNCE b/ANNOUNCE index bbeeb892..e09e7317 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ - Announcing ncurses 5.6 + Announcing ncurses 5.7 The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses terminfo format, @@ -27,205 +27,217 @@ Release Notes This release is designed to be upward compatible from ncurses 5.0 - through 5.5; very few applications will require recompilation, + through 5.6; very few applications will require recompilation, depending on the platform. These are the highlights from the - change-log since ncurses 5.5 release. + change-log since ncurses 5.6 release. Interface changes: * generate linkable stubs for some macros: - getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx, - getpary, getpary, - and (for libncursesw) - wgetbkgrnd + getattrs New features and improvements: * library - + 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. + + 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). + + add NCURSES_OPAQUE symbol to curses.h, will use to make + structs opaque in selected configurations. + + 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. + + add wresize() to C++ binding + + eliminate fixed-buffer vsprintf() calls in C++ binding. + + add several functions to C++ binding which wrap C functions + that pass a WINDOW* parameter. + + adapt mouse-handling code from menu library in form-library + + improve tracing for form library, showing created forms, + fields, etc. + + make $NCURSES_NO_PADDING feature work for termcap interface . + + add check to trace-file open, if the given name is a + directory, add ".log" to the name and try again. + + several new manpages: curs_legacy.3x, curs_memleaks.3x, + curs_opaque.3x and curs_threads.3x * 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. + + modified three test-programs to demonstrate the threading + support in this version: ditto, rain, worm. + + 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. + + add adacurses-config to the Ada95 install. + + modify tic -f option to format spaces as \s to prevent them + from being lost when that is read back in unformatted + strings. + + The tack program is now distributed separately from ncurses. * 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. + + added entries: + o Eterm-256color, Eterm-88color and rxvt-88color + o aterm + o konsole-256color + o mrxvt + o screen.mlterm + o screen.rxvt + o teraterm4.59 is now the primary primary teraterm entry, + renamed original to teraterm2.3 + o 9term terminal + o Newbury Data entries + + updated/improved entries: + o gnome to version 2.22.3 + o h19, z100 + o konsole to version 1.6.6 + o mlterm, mlterm+pcfkeys + o xterm, and building-blocks for function-keys to [3]xterm + patch #230. Major bug fixes: - * 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. + * 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: + new options: - --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. + --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, Linux, FreeBSD, OpenBSD, HPUX, IRIX64, + Solaris, Tru64). + + --with-ticlib + build/install the tic-support functions in a + separate library - --with-valgrind - Simplify building for testing with valgrind. + + improved options: - --enable-wgetch-events - Compile with experimental wgetch-events code. + --enable-ext-colors + requires the wide-character configuration. - --enable-signed-char - Store booleans in "signed char" rather than "char". + --with-chtype + ignore option value "unsigned" is always added to + the type in curses.h; do the same for + --with-mmask-t. - + improved options: + --with-dmalloc + build-fix for redefinition of strndup. - --disable-largefile - make the option work both ways. + --with-hashed-db + accepts a parameter which is the install-prefix of + a given Berkeley Database. - --with-gpm - The option now accepts a parameter, i.e., the name - of the dynamic GPM library to load via dlopen() + --with-hashed-db + the $LIBS environment variable overrides the search + for the db library. - --disable-symlinks - The option now allows one to disable symlink() in - tic even when link() does not work. + --without-hashed-db + assumed when "--disable-database" is used. * other configure/build issues: - + 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. + + build-fixes for LynxOS + + modify shared-library rules to allow FreeBSD 3.x to use + rpath. + + build-fix for FreeBSD "contemporary" TTY interface. + + build-fixes for AIX with libtool. + + build-fixes for Darwin and libtool. + + modify BeOS-specific ifdef's to build on Haiku. + + corrected gcc options for building shared libraries on + Solaris and IRIX64. + + change shared-library configuration for OpenBSD, make rpath + work. + + build-fixes for using libutf8, e.g., on OpenBSD 3.7 + + add "-e" option in ncurses/Makefile.in when generating + source-files to force earlier exit if the build environment + fails unexpectedly. + + add support for shared libraries for QNX. + + change delimiter in MKlib_gen.sh from '%' to '@', to avoid + substitution by IBM xlc to '#' as part of its extensions to + digraphs. * library: - + 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 + + 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. + + add/use configure script macro CF_SIG_ATOMIC_T, use the + corresponding type for data manipulated by signal handlers. + + set locale in misc/ncurses-config.in since it uses a range + + 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. + + reset mouse file-descriptor when unloading GPM library. * test programs: - + 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. + + update test programs to build/work with various UNIX curses + for comparisons. Features of Ncurses @@ -271,6 +283,8 @@ the use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by defining more than one control sequence to map to a given key code. + * Support for 256-color terminals, such as modern xterm, when + configured using the --enable-ext-colors option. * Support for 16-color terminals, such as aixterm and modern xterm. * Better cursor-movement optimization. The package now features a cursor-local-movement computation more efficient than either BSD's @@ -342,49 +356,45 @@ cdk Curses Development Kit - [3]http://invisible-island.net/cdk/ - [4]http://www.vexus.ca/products/CDK/ + [4]http://invisible-island.net/cdk/ + [5]http://www.vexus.ca/products/CDK/ ded directory-editor - [5]http://invisible-island.net/ded/ + [6]http://invisible-island.net/ded/ dialog the underlying application used in Slackware's setup, and the basis for similar applications on GNU/Linux. - [6]http://invisible-island.net/dialog/ + [7]http://invisible-island.net/dialog/ lynx the character-screen WWW browser - [7]http://lynx.isc.org/release/ + [8]http://lynx.isc.org/release/ Midnight Commander file manager - [8]http://www.ibiblio.org/mc/ + [9]http://www.ibiblio.org/mc/ mutt mail utility - [9]http://www.mutt.org/ + [10]http://www.mutt.org/ ncftp file-transfer utility - [10]http://www.ncftp.com/ + [11]http://www.ncftp.com/ nvi New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. - [11]http://www.bostic.com/vi/ + [12]http://www.bostic.com/vi/ pinfo Lynx-like info browser. - [12]http://dione.ids.pl/~pborys/software/pinfo/ + [13]https://alioth.debian.org/projects/pinfo/ tin - newsreader, supporting color, MIME [13]http://www.tin.org/ - - vh-1.6 - Volks-Hypertext browser for the Jargon File - [14]http://www.debian.org/Packages/unstable/text/vh.html + newsreader, supporting color, MIME [14]http://www.tin.org/ as well as some that use ncurses for the terminfo support alone: @@ -402,7 +412,7 @@ Who's Who and What's What Zeyd Ben-Halim started it from a previous package pcurses, written by - Pavel Curtis. Eric S. Raymond continued development. Juergen Pfeifer + Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer wrote most of the form and menu libraries. Ongoing work is being done by [17]Thomas Dickey. Thomas Dickey acts as the maintainer for the Free Software Foundation, which holds the copyright on ncurses. @@ -442,18 +452,18 @@ References 1. ftp://ftp.gnu.org/gnu/ncurses/ 2. ftp://invisible-island.net/ncurses/ - 3. http://invisible-island.net/cdk/ - 4. http://www.vexus.ca/products/CDK/ - 5. http://invisible-island.net/ded/ - 6. http://invisible-island.net/dialog/ - 7. http://lynx.isc.org/release/ - 8. http://www.ibiblio.org/mc/ - 9. http://www.mutt.org/ - 10. http://www.ncftp.com/ - 11. http://www.bostic.com/vi/ - 12. http://dione.ids.pl/~pborys/software/pinfo/ - 13. http://www.tin.org/ - 14. http://www.debian.org/Packages/unstable/text/vh.html + 3. http://invisible-island.net/xterm/xterm.log.html#xterm_230 + 4. http://invisible-island.net/cdk/ + 5. http://www.vexus.ca/products/CDK/ + 6. http://invisible-island.net/ded/ + 7. http://invisible-island.net/dialog/ + 8. http://lynx.isc.org/release/ + 9. http://www.ibiblio.org/mc/ + 10. http://www.mutt.org/ + 11. http://www.ncftp.com/ + 12. http://www.bostic.com/vi/ + 13. https://alioth.debian.org/projects/pinfo/ + 14. http://www.tin.org/ 15. http://alioth.debian.org/projects/minicom/ 16. http://invisible-island.net/vile/ 17. mailto:dickey@invisible-island.net diff --git a/INSTALL b/INSTALL index 3119da75..ab7dcd82 100644 --- a/INSTALL +++ b/INSTALL @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: INSTALL,v 1.131 2008/10/11 18:48:48 tom Exp $ +-- $Id: INSTALL,v 1.135 2008/11/02 21:13:51 tom Exp $ --------------------------------------------------------------------- How to install Ncurses/Terminfo on your system --------------------------------------------------------------------- @@ -1001,6 +1001,94 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES: you may encounter when building a system with different versions of ncurses: + 5.7 (November 2, 2008) + Interface changes: + + + generate linkable stubs for some macros: + getattrs + + + Add new library configuration for tic-library (the non-curses portion + of the ncurses library used for the tic program as well as some + others such as tack. There is no API change, but makefiles would be + changed to use the tic-library built separately. + + tack, distributed separately from ncurses, uses some of the internal + _nc_XXX functions, which are declared in the tic.h header file. + + The reason for providing this separate library is that none of the + functions in it are suitable for threaded applications. + + + Add new library configuration (ncursest, ncurseswt) which provides + rudimentary support for POSIX threads. This introduces opaque + access functions to the WINDOW structure and adds a parameter to + several internal functions. + + + move most internal variables (except tic-library) into data blocks + _nc_globals and _nc_prescreen to simplify analysis. Those were + globally accessible, but since they were not part of the documented + API, there is no ABI change. + + + changed static tables of strings to be indices into long strings, to + improve startup performance. This changes parameter lists for some + of the internal functions. + + Added extensions: + + + add NCURSES_OPAQUE definition in curses.h to control whether internal + details of the WINDOW structure are visible to an application. This + is always defined when the threaded library is built, and is optional + otherwise. New functions for this: is_cleared, is_idcok, is_idlok, + is_immedok, is_keypad, is_leaveok, is_nodelay, is_notimeout, + is_scrollok, is_syncok, wgetparent and wgetscrreg. + + + the threaded library (ncursest) also disallows direct updating of + global curses-level variables, providing functions (via macros) for + obtaining their value. A few of those variables can be modified by + the application, using new functions: set_escdelay, set_tabsize + + + added functions use_window() and use_screen() which wrap a mutex + (if threading is configured) around a call to a user-supplied + function. + + Added internal functions: + _nc_get_alias_table + _nc_get_screensize + _nc_keyname + _nc_screen_of + _nc_set_no_padding + _nc_tracechar + _nc_tracemouse + _nc_unctrl + _nc_ungetch + + These are used for leak-testing, and are stubs for + ABI compatibility when ncurses is not configured for that + using the --disable-leaks configure script option: + + _nc_free_and_exit + _nc_leaks_tinfo + + Removed internal functions: + none + + Modified internal functions: + _nc_fifo_dump + _nc_find_entry + _nc_handle_sigwinch + _nc_init_keytry + _nc_keypad + _nc_locale_breaks_acs + _nc_timed_wait + _nc_update_screensize + + Use new typedef TRIES to replace "struct tries": + + _nc_add_to_try + _nc_expand_try + _nc_remove_key + _nc_remove_string + _nc_trace_tries + 5.6 (December 17, 2006) Interface changes: diff --git a/NEWS b/NEWS index 6f3de8c4..a64450b3 100644 --- a/NEWS +++ b/NEWS @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.1318 2008/10/25 23:39:22 tom Exp $ +-- $Id: NEWS,v 1.1320 2008/11/02 00:56:22 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,8 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20081102 5.7 release for upload to ftp.gnu.org + 20081025 + add a manpage to discuss memory leaks. + add support for shared libraries for QNX (other than libtool, which @@ -605,7 +607,7 @@ it is not possible to add this information. 20070609 + add test/key_name.c - + add stdscr cases to test/inchs.c and test_inch_wide.c + + add stdscr cases to test/inchs.c and test/inch_wide.c + update test/configure + correct formatting of DEL (0x7f) in _nc_vischar(). + null-terminate result of wunctrl(). @@ -826,7 +828,7 @@ it is not possible to add this information. shared libraries on Darwin (report by Michail Vidiassov). 20070210 - + add test/inchs.c, test_inch_wide.c, to test win_wchnstr(). + + add test/inchs.c, test/inch_wide.c, to test win_wchnstr(). + remove libdl from library list for termlib (report by Miroslav Lichvar). + fix configure.in to allow --without-progs --with-termlib (patch by diff --git a/announce.html.in b/announce.html.in index 84d5bbe1..1d4121ee 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,8 +1,8 @@ -Announcing ncurses 5.6 +Announcing ncurses 5.7 -

Announcing ncurses 5.6

+

Announcing ncurses 5.7

The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses terminfo format, @@ -69,185 +69,170 @@ the GNU distribution site

Release Notes

-This release is designed to be upward compatible from ncurses 5.0 through 5.5; +This release is designed to be upward compatible from ncurses 5.0 through 5.6; very few applications will require recompilation, depending on the platform. -These are the highlights from the change-log since ncurses 5.5 release. +These are the highlights from the change-log since ncurses 5.6 release.

Interface changes:

New features and improvements: Major bug fixes: Portability: @@ -257,110 +242,115 @@ Portability:
  • new options:
    -
    --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-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, + Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64). + +
    --with-ticlib +
    build/install the tic-support functions in a separate library
  • improved options:
    -
    --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. - -
    - - - -
  • other configure/build issues:
    • remove special case for - Darwin in CF_XOPEN_SOURCE configure macro. +
      --enable-ext-colors +
      requires the wide-character configuration. -
    • add configure check to ensure that SIGWINCH is - defined on platforms such as OS X which exclude that when - _XOPEN_SOURCE, etc., are defined +
      --with-chtype +
      ignore option value "unsigned" is always added to + the type in curses.h; do the same for --with-mmask-t. -
    • use ld's -search_paths_first option on Darwin - to work around odd search rules on that platform. +
      --with-dmalloc +
      build-fix for redefinition of strndup. -
    • 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. +
      --with-hashed-db +
      accepts a parameter which is the install-prefix of a given + Berkeley Database. -
    • 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. +
      --with-hashed-db +
      the $LIBS environment variable overrides the search for the db + library. -
    • improve some shared-library configure scripting for Linux, - FreeBSD and NetBSD to make - --with-shlib-version work. +
      --without-hashed-db +
      assumed when "--disable-database" is used. -
    • 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. +
  • other configure/build issues: +
      +
    • build-fixes for LynxOS +
    • modify shared-library rules to allow FreeBSD 3.x to use rpath. +
    • build-fix for FreeBSD "contemporary" TTY interface. +
    • build-fixes for AIX with libtool. +
    • build-fixes for Darwin and libtool. +
    • modify BeOS-specific ifdef's to build on Haiku. +
    • corrected gcc options for building shared libraries on Solaris + and IRIX64. +
    • change shared-library configuration for OpenBSD, make rpath work. +
    • build-fixes for using libutf8, e.g., on OpenBSD 3.7 +
    • add "-e" option in ncurses/Makefile.in when generating source-files + to force earlier exit if the build environment fails unexpectedly. +
    • add support for shared libraries for QNX. +
    • change delimiter in MKlib_gen.sh from '%' to '@', to + avoid substitution by IBM xlc to '#' as part of its extensions to + digraphs.
  • library:
      -
    • 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 +
    • 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. +
    • add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding + type for data manipulated by signal handlers. +
    • set locale in misc/ncurses-config.in since it uses a range +
    • 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. +
    • reset mouse file-descriptor when unloading GPM library.
    -
  • test programs:
    • 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. +
    • test programs: +
        +
      • update test programs to build/work with various UNIX curses for + comparisons.
    @@ -410,6 +400,8 @@ and define_key() allow you to better control the use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by defining more than one control sequence to map to a given key code. +
  • Support for 256-color terminals, such as modern xterm, when configured +using the --enable-ext-colors option.
  • Support for 16-color terminals, such as aixterm and modern xterm.
  • Better cursor-movement optimization. The package now features a cursor-local-movement computation more efficient than either BSD's @@ -513,14 +505,10 @@ for similar applications on GNU/Linux.
    pinfo
    Lynx-like info browser. -http://dione.ids.pl/~pborys/software/pinfo/ +https://alioth.debian.org/projects/pinfo/
    tin
    newsreader, supporting color, MIME http://www.tin.org/ -
    vh-1.6 -
    Volks-Hypertext browser for the Jargon File -
    -http://www.debian.org/Packages/unstable/text/vh.html as well as some that use ncurses for the terminfo support alone:
    diff --git a/mkdirs.sh b/mkdirs.sh old mode 100644 new mode 100755 diff --git a/ncurses/tinfo/MKcaptab.sh b/ncurses/tinfo/MKcaptab.sh old mode 100644 new mode 100755 diff --git a/test/demo_panels.c b/test/demo_panels.c old mode 100755 new mode 100644 diff --git a/test/savescreen.c b/test/savescreen.c old mode 100755 new mode 100644 diff --git a/test/savescreen.sh b/test/savescreen.sh old mode 100644 new mode 100755 -- 2.44.0