<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
- $Id: announce.html.in,v 1.83 2011/02/25 11:50:46 tom Exp $
+ $Id: announce.html.in,v 1.86 2011/09/10 18:11:12 tom Exp $
****************************************************************************
* Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
* *
"ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p>
<h1>Release Notes</h1>This release is designed to be upward
- compatible from ncurses 5.0 through 5.7; very few applications
+ 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.7 release.
+ the highlights from the change-log since ncurses 5.8 release.
- <h2>Interface changes</h2>
+ <p>This is a bug-fix release, correcting a small number of urgent
+ problems in the ncurses library from the 5.8 release.</p>
- <ul>
- <li>turn on <code>_XOPEN_CURSES</code> definition in
- <code>curses.h</code>.</li>
-
- <li>change <code>_nc_has_mouse</code> to
- <code>has_mouse</code>, reflect its use in C++ and Ada95.</li>
-
- <li>add <code>is_pad</code> and <code>is_subwin</code>
- functions for opaque access to the WINDOW structure.</li>
-
- <li>add <code>tiparm</code>, based on review of X/Open Curses
- Issue 7.</li>
- </ul>
-
- <h2>New features and improvements</h2>
-
- <h3>Library Improvements</h3>
-
- <ul>
- <li>add a terminal driver for Windows console, which supports a
- MinGW port to Windows.</li>
-
- <li>add extended functions which specify the
- <code>SCREEN</code> pointer for several curses functions which
- use the global <code>SP</code>.</li>
-
- <li>improve the <code>NCURSES_NO_UTF8_ACS</code> feature by
- adding a check for an extended terminfo capability
- <code>U8</code>.</li>
-
- <li>improve performance of <code>tigetstr</code>, etc., by
- using hashing code from tic.</li>
-
- <li>add WACS_<em>xxx</em> definitions to wide-character
- configuration for thick- and double-lines.</li>
-
- <li>modify init_pair to allow caller to create extra color
- pairs beyond the color_pairs limit, which use default
- colors.</li>
- </ul>
-
- <h3>Improvements to Programs</h3>
-
- <ul>
- <li>add <code>tabs</code> program.</li>
-
- <li>modify tic's -I/-C dump to reformat acsc strings into
- canonical form (sorted, unique mapping).</li>
-
- <li>add checks in tic for inconsistent cursor-movement
- controls, and for inconsistent printer-controls.</li>
-
- <li>add special case to <code>_nc_infotocap</code> (used by tic
- and infocmp) to recognize the
- <code>setaf</code>/<code>setab</code> strings from
- <code>xterm+256color</code> and <code>xterm+88color,</code> and
- provide a reduced version which works with termcap.</li>
- </ul>
-
- <h3>Terminal Database</h3>
-
- <ul>
- <li>added entries:
-
- <ul>
- <li><code>bterm</code> terminfo entry, based on bogl
- 0.1.18</li>
-
- <li><code>cons25-debian</code> entry</li>
-
- <li><code>eterm-color</code> entry</li>
-
- <li><code>linux-16color</code></li>
-
- <li><code>mlterm+256color</code> entry, for mlterm
- 3.0.0</li>
-
- <li>several screen-bce.<em>xxx</em> entries</li>
-
- <li><code>screen.Eterm</code> terminfo entry</li>
-
- <li><code>vwmterm</code> entry</li>
-
- <li><code>xterm-utf8</code> entry as a demo of the
- <code>U8</code> feature</li>
- </ul>
- </li>
-
- <li>updated/improved entries:
-
- <ul>
- <li>use extended capabilities:
-
- <ul>
- <li>add <code>U8</code> feature to denote entries for
- terminal emulators which do not support VT100 SI/SO
- when processing UTF-8 encoding</li>
-
- <li>add <code>XT</code> capability to entries for
- terminals that support both xterm-style mouse- and
- title-controls, for <code>screen</code> which
- special-cases TERM beginning with <code>xterm</code> or
- <code>rxvt</code></li>
- </ul>
- </li>
-
- <li>improvements based on new checks in tic:</li>
-
- <li style="list-style: none; display: inline">
- <ul>
- <li>fill in no-parameter forms of cursor-movement where
- a parameterized form is available</li>
-
- <li>fill in missing cursor controls where the form of
- the controls is ANSI</li>
-
- <li>add parameterized cursor-controls to
- linux-basic</li>
-
- <li>modify <code>nsterm,</code> <code>xnuppc</code> and
- <code>tek4115</code> to make
- <code>sgr</code>/<code>sgr0</code> consistent</li>
-
- <li>change several terminfo entries to make consistent
- use of ANSI clear-all-tabs</li>
- </ul>
- </li>
-
- <li>extend <code>ansi.sys</code> <code>pfkey</code>
- capability from kf1-kf10 to kf1-kf48, moving function key
- definitions from <code>emx-base</code> for
- consistency.</li>
-
- <li>correct missing final 'p' in <code>pfkey</code>
- capability of <code>ansi.sys-old</code>.</li>
-
- <li>rename <code>atari</code> and <code>st52</code>
- terminfo entries to atari-old, st52-old, use newer entries
- from FreeMiNT.</li>
-
- <li>repurpose <code>gnome</code> terminfo entries as
- <code>vte</code>, retaining <code>gnome</code> variants for
- compatibility, but generally deprecating those since the
- VTE library is what actually defines the behavior of
- "gnome", etc., since 2003.</li>
-
- <li>improve <code>interix</code> <code>smso</code> terminfo
- capability by using reverse rather than bold.</li>
-
- <li>correct <code>initc</code> capability of
- <code>linux-c-nc</code> end-of-range, make similar change
- for <code>dg+ccc</code> and <code>dgunix+ccc</code>.</li>
-
- <li>update <code>minix</code> terminfo entry.</li>
-
- <li>updated <code>nsterm*</code> entries.</li>
-
- <li>remove unnecessary <code>kcan</code> assignment to
- <code>^C</code> from <code>putty</code>.</li>
-
- <li>suppress <code>ncv</code> in <code>screen</code> and
- <code>konsole-base</code> entries, allowing underline.</li>
-
- <li>change ncv and op capabilities in
- <code>sun-color</code> terminfo entry to match Sun's entry
- for this.</li>
-
- <li>fix typo in <code>rmso</code> for <code>tek4106</code>
- entry.</li>
-
- <li>improve <code>acsc</code> string for <code>vt52</code>,
- show arrow keys.</li>
-
- <li>add hard-reset for <code>rs2</code> to
- <code>wsvt25</code> to help ensure that reset ends the
- alternate character set.</li>
-
- <li>add <code>ccc</code> and <code>initc</code>
- capabilities to <code>xterm-16color</code>.</li>
- </ul>
- </li>
- </ul>
-
- <h2>Major bug fixes</h2>
-
- <ul>
- <li>ncurses library
-
- <ul>
- <li>wide character support
-
- <ul>
- <li>modify length returned by <code>getcchar</code> to
- count the trailing null which is documented in
- X/Open.</li>
-
- <li>fix an infinite recursion when adding a
- legacy-coding 8-bit value using
- <code>insch</code>.</li>
-
- <li>improve a workaround in adding wide-characters,
- when a control character is found. The library uses
- <code>unctrl</code> to obtain a printable version of
- the control character, but was not passing color or
- video attributes.</li>
-
- <li>modify <code>waddch_literal</code>, updating
- line-pointer after a multicolumn character is found to
- not fit on the current row, and wrapping is done. Since
- the line-pointer was not updated, the wrapped
- multicolumn character was written to the beginning of
- the current row.</li>
-
- <li>fixes in <code>wins_nwstr</code> and related
- functions to ensure that special characters, i.e.,
- control characters are handled properly with the
- wide-character configuration.</li>
-
- <li>correct internal <code>_nc_insert_ch</code> to use
- <code>_nc_insert_wch</code> when inserting wide
- characters, since the <code>wins_wch</code> function
- that it used did not update the cursor position.</li>
- </ul>
- </li>
-
- <li>mouse
-
- <ul>
- <li>add check if <code>Gpm_Open</code> returns a -2,
- e.g., for "xterm". This is normally suppressed but can
- be overridden using <code>$NCURSES_GPM_TERMS</code>.
- Ensure that <code>Gpm_Close</code> is called in this
- case.</li>
-
- <li>add check in mouse-driver to disable connection if
- GPM returns a zero, indicating that the connection is
- closed.</li>
-
- <li>modify <code>getmouse</code> to act as its
- documentation implied, returning on each call the
- preceding event until none are left. When no more
- events remain, it will return <code>ERR</code>.</li>
- </ul>
- </li>
-
- <li>miscellaneous
-
- <ul>
- <li>improve handling of color-pairs embedded in
- attributes for the extended-colors configuration.</li>
-
- <li>add check for failure to open hashed-database
- needed for db4.6.</li>
-
- <li>modify use of <code>$CC</code> environment variable
- which is defined by X/Open as a curses feature, to
- ignore it if it is not a single character.</li>
-
- <li>modify declaration of <code>cur_term</code> when
- broken-linker is used, but enable-reentrant is not, to
- match pre-5.7.</li>
-
- <li>correct limit-checks in <code>derwin</code>.</li>
-
- <li>remove old check in <code>mvderwin</code> which
- prevented moving a derived window whose origin happened
- to coincide with its parent's origin.</li>
-
- <li>correct limit-checks in <code>newwin</code>, to
- ensure that windows have nonzero size.</li>
-
- <li>modify <code>set_curterm</code> to make
- broken-linker configuration work with changes from
- 20090228.</li>
-
- <li>modify <code>wgetch</code> to ensure it checks
- <code>SIGWINCH</code> when it gets an error in
- non-blocking mode.</li>
-
- <li>correct limit-check in <code>wredrawln</code>,
- accounting for <code>begy</code>/<code>begx</code>
- values.</li>
-
- <li>fix a null-pointer check in
- <code>_nc_format_slks</code> in lib_slk.c, from
- 20070704 changes.</li>
-
- <li>correct translation of "^" in
- <code>_nc_infotocap</code>, used to transform terminfo
- to termcap strings.</li>
-
- <li>modify <code>_nc_wgetch</code> to check for a -1 in
- the fifo, e.g., after a <code>SIGWINCH</code>, and
- discard that value, to avoid confusing
- application.</li>
- </ul>
- </li>
- </ul>
- </li>
-
- <li>other libraries
-
- <ul>
- <li>correct transfer of multicolumn characters in multirow
- <code>field_buffer</code>, which stopped at the end of the
- first row due to filling of unused entries in a cchar_t
- array with nulls.</li>
-
- <li>correct buffer-size after internal resizing of
- wide-character <code>set_field_buffer</code>, broken in
- 20081018 changes.</li>
-
- <li>correct layout of working window used to extract data
- in wide-character configured by
- <code>set_field_buffer</code></li>
- </ul>
- </li>
- </ul>
-
- <h2>Portability</h2>
+ <p>It also improves the Ada95 binding:</p>
<ul>
- <li>configure script:
-
- <ul>
- <li>new options:
-
- <dl>
- <dt>--disable-libtool-version</dt>
-
- <dd>use the "-version-number" feature which was added
- in libtool 1.5. The default value for the option uses
- the newer feature, which makes libraries generated
- using libtool compatible with the standard builds of
- ncurses.</dd>
-
- <dt>--disable-rpath-hack</dt>
-
- <dd>disable a feature which adds rpath options for
- libraries in unusual places.</dd>
-
- <dt>--enable-interop</dt>
-
- <dd>integrate changes for generic/interop support to
- form-library.</dd>
-
- <dt>--enable-pc-files</dt>
-
- <dd>generate ".pc" files for each of the libraries, and
- install them in <code>pkg-config</code>'s library
- directory.</dd>
-
- <dt>--enable-pthreads-eintr</dt>
-
- <dd>control whether to allow <code>EINTR</code> to
- interrupt a read operation in <code>wgetch</code>. This
- applies only to the pthread configuration</dd>
-
- <dt>--enable-sp-funcs</dt>
-
- <dd>compile-in support for extended functions which
- accept a <code>SCREEN</code> pointer, reducing the need
- for juggling the global <code>SP</code> value with
- <code>set_term</code> and <code>delscreen</code>.</dd>
-
- <dt>--enable-term-driver</dt>
-
- <dd>compile with terminal-driver. That is used in the
- MinGW port, and (being somewhat more complicated) is an
- experimental alternative to the conventional termlib
- internals. Currently, it requires the sp-funcs feature
- to be enabled.</dd>
-
- <dt>--with-ncurses-wrap-prefix</dt>
-
- <dd>allows setting the prefix for functions used to
- wrap global variables to something other than
- "<code>_nc_</code>".</dd>
-
- <dt>--with-pkg-config=[DIR]</dt>
-
- <dd>check for <code>pkg-config</code>, optionally
- specifying its path.</dd>
-
- <dt>--without-manpages</dt>
-
- <dd>tells the configure script to suppress the install
- of ncurses' manpages.</dd>
-
- <dt>--without-tests</dt>
-
- <dd>suppress building test programs.</dd>
- </dl>
- </li>
-
- <li>improved options:
-
- <ul>
- <li>correct logic for <code>--with-database</code>,
- which was coded as an enable-type switch.</li>
-
- <li>omit the opaque-functions from
- <code>lib_gen.o</code> when
- <code>--disable-ext-funcs</code> is used.</li>
- </ul>
- </li>
- </ul>
- </li>
-
- <li>packaging:
-
- <ul>
- <li>*-config scripts:
-
- <ul>
- <li>modify <code>adacurses-config</code> to look for
- ".ali" files in the adalib directory.</li>
-
- <li>correct install for the Ada95 tree, which omitted
- <code>libAdaCurses.a</code> used in
- <code>adacurses-config</code>.</li>
-
- <li>change install for <code>adacurses-config</code> to
- provide additional flavors such as
- <code>adacursesw-config</code>, for ncursesw.</li>
-
- <li>modify scripts to generate
- <code>ncurses*-config</code> and pc-files to add
- dependency for tinfo library.</li>
-
- <li>use <code>ncurses*-config</code> scripts if
- available for test/configure.</li>
-
- <li>correct name for termlib in
- <code>ncurses*-config</code>, e.g., if it is renamed to
- provide a single file for ncurses/ncursesw
- libraries.</li>
-
- <li>generate manpages for the *-config scripts, adapted
- from <code>help2man</code>.</li>
-
- <li>modify install-rule for manpages so that *-config
- manpages will install when building with
- <code>--srcdir</code>.</li>
-
- <li>build-fixes for OpenSolaris aka Solaris 11, for
- wide-character configuration as well as for rpath
- feature in *-config scripts.</li>
-
- <li>use <code>$includedir</code> symbol in
- <code>misc/ncurses-config.in</code>, add
- <code>--includedir</code> option.</li>
-
- <li>improve install-rules for pc-files.</li>
-
- <li>create the <code>pkg-config</code> library
- directory if needed.</li>
-
- <li>fix typo "<code>==</code>" where "<code>=</code>"
- is needed in <code>ncurses-config.in</code> and
- <code>gen-pkgconfig.in</code> files.</li>
-
- <li>modify <code>gen-pkgconfig.in</code> to eliminate a
- dependency on rpath when deciding whether to add
- <code>$LIBS</code> to <code>--libs</code> output; that
- should be shown for the ncurses and tinfo libraries
- without taking rpath into account.</li>
-
- <li>modify handling of <code>$PKG_CONFIG_LIBDIR</code>
- to use only the first item in a possibly
- colon-separated list.</li>
- </ul>
- </li>
-
- <li>other packaging issues
-
- <ul>
- <li>add <code>make-tar.sh</code> scripts to Ada95 and
- test subdirectories to help with making those
- separately distributable.</li>
-
- <li>add <code>Ada95/configure</code> script, to use in
- tar-file created by
- <code>Ada95/make-tar.sh</code>.</li>
-
- <li>remove <code>tar-copy.sh</code> and related
- <code>configure/Makefile</code> chunks, since the Ada95
- binding is now installed using rules in
- <code>Ada95/src</code>.</li>
- </ul>
- </li>
- </ul>
- </li>
-
- <li>cross-compiling:
-
- <ul>
- <li>improve configure checks for location of tic and
- infocmp programs used for installing database and for
- generating fallback data, e.g., for cross-compiling.</li>
-
- <li>modify #define's for build-compiler to suppress cchar_t
- symbol from compile of <code>make_hash</code> and
- <code>make_keys</code>, improving cross-compilation of
- ncursesw.</li>
-
- <li>simplify include-dependencies of <code>make_hash</code>
- and <code>make_keys</code>, to reduce the need for setting
- BUILD_CPPFLAGS in cross-compiling when the build- and
- target-machines differ.</li>
-
- <li>correct cross-compiling configure check for
- <code>CF_MKSTEMP</code> macro, by adding a check cache
- variable set by <code>AC_CHECK_FUNC</code>.</li>
- </ul>
- </li>
-
- <li>library dependencies:
-
- <ul>
- <li>revise <code>wadd_wch</code> and
- <code>wecho_wchar</code> to eliminate dependency on
- <code>unctrl</code>.</li>
-
- <li>adjust configure script so that "t" is not added to
- library suffix when weak-symbols are used, allowing the
- pthread configuration to more closely match the non-thread
- naming.</li>
- </ul>
- </li>
-
- <li>building the Ada95 tree:
-
- <ul>
- <li>changes to use gnatmake project files in the Ada95
- tree.</li>
-
- <li>add/use configure check to turn on project rules for
- <code>Ada95/src</code>.</li>
-
- <li>old gnatmake (3.15) does not produce libraries using
- project-file; work around by adding script to generate
- alternate makefile.</li>
-
- <li>add configure --with-ada-sharedlib option, for the
- test_make rule.</li>
-
- <li>move Ada95-related logic into aclocal.m4, since
- additional checks will be needed to distinguish old/new
- implementations of gnat.</li>
-
- <li>add test_make / test_clean / test_install rules in
- Ada95/src</li>
-
- <li>change install-path for adainclude directory to
- /usr/share/ada (was /usr/lib/ada).</li>
- </ul>
- </li>
-
- <li>other configure/build issues:
-
- <ul>
- <li>make <code>CCHARW_MAX</code> value configurable, noting
- that changing this would change the size of
- <code>cchar_t</code>, and would be ABI-incompatible.</li>
-
- <li>improve comparison of program-names when checking for
- linked flavors such as "reset" by ignoring the executable
- suffix.</li>
-
- <li>drop <code>mkdirs.sh</code>, use
- "<code>mkdir -p</code>".</li>
-
- <li>drop <code>misc/ncu-indent</code> and
- <code>misc/jpf-indent</code>; they are provided by an
- external package <a href=
- "http://invisible-island.net/cindent/cindent.html">cindent</a>.</li>
-
- <li>change makefiles to use <code>$ARFLAGS</code> rather
- than <code>$AR_OPTS</code>, provide a configure check to
- detect whether a "-" is needed before "ar" options.</li>
-
- <li>modify <code>CF_DISABLE_LEAKS</code> configure macro so
- that the --enable-leaks option is not the same as
- --disable-leaks.</li>
-
- <li>improve configure script macros
- <code>CF_HEADER_PATH</code> and
- <code>CF_LIBRARY_PATH</code> by adding <code>CFLAGS</code>,
- <code>CPPFLAGS</code> and <code>LDFLAGS</code>,
- <code>LIBS</code> values to the search-lists.</li>
-
- <li>improve configure macros <code>CF_GCC_VERSION</code>
- and <code>CF_GCC_WARNINGS</code> to work with gcc 4.x's c89
- alias, which gives warning messages for cases where older
- versions would produce an error.</li>
-
- <li>modify <code>CF_WITH_LIBTOOL</code> configure check to
- allow unreleased libtool version numbers (e.g. which
- include alphabetic chars, as well as digits, after the
- final '.').</li>
-
- <li>improve use of symbolic links in makefiles by using
- "<code>-f</code>" option if it is supported, to eliminate
- temporary removal of the target</li>
-
- <li>add a configure-time check to pick a suitable value for
- <code>CC_SHARED_OPTS</code> for Solaris.</li>
-
- <li>add -shared option to <code>MK_SHARED_LIB</code> when
- -Bsharable is used, for *BSD's, without which "main" might
- be one of the shared library's dependencies.</li>
-
- <li>modify configure script to allow building shared
- libraries with gcc on AIX 5 or 6.</li>
-
- <li>suppress configure check for static/dynamic linker
- flags for gcc on Solaris 10, since gcc is confused by
- absence of static libc, and does not switch back to dynamic
- mode before finishing the libraries.</li>
-
- <li>suppress configure check for static/dynamic linker
- flags for gcc on Darwin.</li>
-
- <li>modify <code>misc/run_tic.in</code> to create parent
- directory, in case this is a new install of hashed
- database.</li>
-
- <li>modify configure check for tic program, used for
- fallbacks, to a warning if not found. This makes it simpler
- to use additonal scripts to bootstrap the fallbacks code
- using tic from the build tree.</li>
- </ul>
+ <li>fixes a longstanding portability problem with its use of
+ the <a href=
+ "http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
+ function. Because that function uses variable-length argument
+ lists, its interface with gnat does not work with certain
+ platforms.</li>
+
+ <li>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.
+
+ <p>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 <a href=
+ "http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.</p>
</li>
- <li>test programs:
-
- <ul>
- <li>add test/demo_terminfo, for comparison with
- demo_termcap.</li>
-
- <li>improve test/ncurses.c 'F' test, show combining
- characters in color.</li>
-
- <li>fix logic for 'V' in test/ncurses.c tests f/F.</li>
-
- <li>improve test/ncurses.c 'a test to put mouse droppings
- in the proper window.</li>
-
- <li>modify ncurses 'F' test to demo wborder_set with
- colored lines.</li>
-
- <li>modify ncurses 'f' test to demo wborder with colored
- lines.</li>
-
- <li>improve test/ncurses.c 'a' test, using unctrl more
- consistently to display meta-characters.</li>
-
- <li>correct use of <code>key_name</code> in test/ncurses.c
- 'A' test, which only displays wide-characters, not
- key-codes since 20070612.</li>
-
- <li>add test/clip_printw.c to illustrate how to use printw
- without wrapping.</li>
-
- <li>modify test-programs, e.g,. test/view.c, to address
- subtle differences between Tru64/Solaris and HPUX/AIX
- getcchar return values.</li>
-
- <li>add some test programs (and make these use the same
- special keys by sharing <code>linedata.h</code> functions):
- test/test_addstr.c test/test_addwstr.c test/test_addchstr.c
- test/test_add_wchstr.c</li>
-
- <li>add test/xterm-256color.dat</li>
-
- <li>modify test programs to allow them to be built with
- NetBSD curses.</li>
-
- <li>fixes for test programs to build/work on HPUX and AIX,
- etc.</li>
- </ul>
- </li>
+ <li>additional improvements were made for portability of the
+ ncurses examples, adding rpm- and dpkg-scripts for test-builds.
+ See <a href=
+ "http://invisible-island.net/ncurses/ncurses-examples.html">this
+ page</a> for snapshots and other information.</li>
</ul>
<h1>Features of Ncurses</h1>The ncurses package is fully
are made available at <a href=
"ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p>
+ <p>There is an archive of the mailing list here:</p>
+
+ <p><a href=
+ "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
+ (also <a href=
+ "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
+
<h2>Future Plans</h2>
<ul>