-
- 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.
-
+
+ This release is designed to be upward compatible from ncurses 5.0
+ through 5.8; very few applications will require recompilation,
+ depending on the platform. These are the highlights from the
+ change-log since ncurses 5.8 release.
+
+ This is a bug-fix release, correcting a small number of urgent
+ problems in the ncurses library from the 5.8 release.
+
+ It also improves the Ada95 binding:
+ * fixes a longstanding portability problem with its use of the
+ [3]set_field_type function. Because that function uses
+ variable-length argument lists, its interface with gnat does not
+ work with certain platforms.
+ * improves configurability and portability, particularly when built
+ separately from the main ncurses tree. The 5.8 release introduced
+ scripts which can be used to construct separate tarballs for the
+ Ada95 and ncurses examples.
+ Those were a proof of concept. For the 5.9 release, those scripts
+ are augmented with rpm- and dpkg-scripts used in test builds
+ against a variety of gnat- and system ncurses versions as old as
+ gnat 3.15 and ncurses 5.4 (see snapshots and systems tested
+ [4]here.
+ * additional improvements were made for portability of the ncurses
+ examples, adding rpm- and dpkg-scripts for test-builds. See
+ [5]this page for snapshots and other information.
+