150276Speter<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
250276Speter<!--
3184989Srafan  $Id: announce.html.in,v 1.70 2008/11/02 01:03:05 tom Exp $
4166124Srafan  ****************************************************************************
5184989Srafan  * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
6166124Srafan  *                                                                          *
7166124Srafan  * Permission is hereby granted, free of charge, to any person obtaining a  *
8166124Srafan  * copy of this software and associated documentation files (the            *
9166124Srafan  * "Software"), to deal in the Software without restriction, including      *
10166124Srafan  * without limitation the rights to use, copy, modify, merge, publish,      *
11166124Srafan  * distribute, distribute with modifications, sublicense, and/or sell       *
12166124Srafan  * copies of the Software, and to permit persons to whom the Software is    *
13166124Srafan  * furnished to do so, subject to the following conditions:                 *
14166124Srafan  *                                                                          *
15166124Srafan  * The above copyright notice and this permission notice shall be included  *
16166124Srafan  * in all copies or substantial portions of the Software.                   *
17166124Srafan  *                                                                          *
18166124Srafan  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
19166124Srafan  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
20166124Srafan  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
21166124Srafan  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
22166124Srafan  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
23166124Srafan  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
24166124Srafan  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
25166124Srafan  *                                                                          *
26166124Srafan  * Except as contained in this notice, the name(s) of the above copyright   *
27166124Srafan  * holders shall not be used in advertising or otherwise to promote the     *
28166124Srafan  * sale, use or other dealings in this Software without prior written       *
29166124Srafan  * authorization.                                                           *
30166124Srafan  ****************************************************************************
3150276Speter-->
3250276Speter<HTML>
3350276Speter<HEAD>
3450276Speter<TITLE>Announcing ncurses @VERSION@</TITLE>
3550276Speter<link rev=made href="mailto:bug-ncurses@gnu.org">
36166124Srafan<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
3750276Speter</HEAD>
3850276Speter<BODY>
3950276Speter
4050276Speter<H1>Announcing ncurses @VERSION@</H1>
4150276Speter
4250276SpeterThe ncurses (new curses) library is a free software emulation of
4350276Spetercurses in System V Release 4.0, and more.  It uses terminfo format,
4450276Spetersupports pads and color
4550276Speterand multiple highlights and forms characters and function-key mapping,
4650276Speterand has all the other SYSV-curses enhancements over BSD curses.<P>
4750276Speter
4850276SpeterIn mid-June 1995, the maintainer of 4.4BSD curses declared that he
49166124Srafanconsidered 4.4BSD curses obsolete, and encouraged the keepers of
50166124SrafanUnix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
5150276Speterncurses.<P>
5250276Speter
5376726SpeterThe ncurses code was developed under GNU/Linux.
5476726SpeterIt has been in use for some time with OpenBSD as the system curses library,
5576726Speterand on FreeBSD and NetBSD as an external package.
5676726SpeterIt should port easily to any ANSI/POSIX-conforming UNIX.
5776726SpeterIt has even been ported to OS/2 Warp!<P>
5850276Speter
5950276SpeterThe distribution includes the library and support utilities, including a
6050276Speterterminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
6150276Speterand a termcap conversion tool captoinfo(1).  Full manual pages are provided for
6250276Speterthe library and tools.<P>
6350276Speter
6450276SpeterThe ncurses distribution is available via anonymous FTP at
6550276Speterthe GNU distribution site
66166124Srafan<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A>&nbsp;.
6766963Speter<br>It is also available at
68166124Srafan<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
6950276Speter
7050276Speter<H1>Release Notes</H1>
7150276Speter
72184989SrafanThis release is designed to be upward compatible from ncurses 5.0 through 5.6;
7376726Spetervery few applications will require recompilation, depending on the platform.
74184989SrafanThese are the highlights from the change-log since ncurses 5.6 release.
7550276Speter<p>
7650276SpeterInterface changes:
7750276Speter<ul>
78166124Srafan	<li>generate linkable stubs for some macros:
79166124Srafan	<br>
80184989Srafan	  getattrs
8150276Speter
8250276Speter</ul>
8376726SpeterNew features and improvements:
8450276Speter<ul>
85166124Srafan        <li>library
86166124Srafan	<ul>
87184989Srafan		<li>new flavor of the ncurses library provides rudimentary
88184989Srafan		    support for POSIX threads.  Several functions are
89184989Srafan		    reentrant, but most require either a window-level or
90184989Srafan		    screen-level mutex.<br>
91184989Srafan		    (This is <em>API</em>-compatible,
92184989Srafan		     but not <em>ABI</em>-compatible with the normal library).
9350276Speter
94184989Srafan		<li>add <code>NCURSES_OPAQUE</code> symbol to curses.h, will
95184989Srafan		    use to make structs opaque in selected configurations.
9676726Speter
97184989Srafan		<li>add <code>NCURSES_EXT_FUNCS</code> and
98184989Srafan		    <code>NCURSES_EXT_COLORS</code> symbols to curses.h to make
99184989Srafan		    it simpler to tell if the extended functions and/or colors
100184989Srafan		    are declared.
10150276Speter
102184989Srafan		<li>add wresize() to C++ binding 
10350276Speter
104184989Srafan		<li>eliminate fixed-buffer vsprintf() calls in C++ binding.
10576726Speter
106184989Srafan		<li>add several functions to C++ binding which wrap C functions
107184989Srafan		    that pass a WINDOW* parameter.
10876726Speter
109184989Srafan		<li>adapt mouse-handling code from menu library in form-library
11076726Speter
111184989Srafan		<li>improve tracing for form library, showing created forms,
112184989Srafan		    fields, etc.
11376726Speter
114184989Srafan		<li>make $NCURSES_NO_PADDING feature work for termcap interface .
11576726Speter
116184989Srafan		<li>add check to trace-file open, if the given name is a
117184989Srafan		    directory, add ".log" to the name and try again.
11850276Speter
119184989Srafan		<li>several new manpages:  curs_legacy.3x, curs_memleaks.3x,
120184989Srafan		    curs_opaque.3x and curs_threads.3x
12162449Speter	</ul>
12250276Speter
123166124Srafan        <li>programs:
12476726Speter	<ul>
125184989Srafan		<li>modified three test-programs to demonstrate the threading
126184989Srafan		    support in this version: ditto, rain, worm.
12750276Speter
128184989Srafan		<li>several new test-programs: demo_panels, dots_mvcur,
129184989Srafan		    inch_wide, inchs, key_name, key_names, savescreen,
130184989Srafan		    savescreen.sh test_arrays, test_get_wstr, test_getstr,
131184989Srafan		    test_instr, test_inwstr and test_opaque.
13250276Speter
133184989Srafan		<li>add <code>adacurses-config</code> to the Ada95 install.
13450276Speter
135184989Srafan		<li>modify tic <code>-f</code> option to format spaces as
136184989Srafan		    <code>\s</code> to prevent them from being lost when that
137184989Srafan		    is read back in unformatted strings.
13850276Speter
139184989Srafan		<li>The <code>tack</code> program is now distributed separately
140184989Srafan		    from ncurses.
14176726Speter	</ul>
14250276Speter
143166124Srafan	<li>terminal database
14476726Speter	<ul>
145184989Srafan	    <li>added entries:
146184989Srafan		<ul>
147184989Srafan		<li><code>Eterm-256color</code>,
148184989Srafan		    <code>Eterm-88color</code> and
149184989Srafan		    <code>rxvt-88color</code>
150184989Srafan		<li><code>aterm</code>
151184989Srafan		<li><code>konsole-256color</code>
152184989Srafan		<li><code>mrxvt</code>
153184989Srafan		<li><code>screen.mlterm</code>
154184989Srafan		<li><code>screen.rxvt</code>
155184989Srafan		<li><code>teraterm4.59</code> is now the primary primary
156184989Srafan		    teraterm entry, renamed original to
157184989Srafan		    <code>teraterm2.3</code>
158184989Srafan		<li><code>9term</code> terminal
159184989Srafan		<li>Newbury Data entries
160184989Srafan		</ul>
161184989Srafan	    <li>updated/improved entries:
162184989Srafan		<ul>
163184989Srafan	        <li><code>gnome</code> to version 2.22.3
164184989Srafan		<li><code>h19</code>, <code>z100</code>
165184989Srafan		<li><code>konsole</code> to version 1.6.6
166184989Srafan		<li><code>mlterm</code>, <code>mlterm+pcfkeys</code>
167184989Srafan		<li><code>xterm</code>, and building-blocks for function-keys
168184989Srafan		    to <a href="http://invisible-island.net/xterm/xterm.log.html#xterm_230">xterm patch #230</a>.
169184989Srafan		</ul>
17076726Speter	</ul>
17150276Speter</ul>
17250276SpeterMajor bug fixes:
17350276Speter<ul>
174184989Srafan	<li>add logic to tic for cancelling strings in user-defined
175184989Srafan	    capabilities
176184989Srafan	    (this is <em>needed</em> for
177184989Srafan	     current <code>konsole</code> terminfo entry).
17850276Speter
179184989Srafan	<li>modify <code>mk-1st.awk</code> so the generated makefile rules for
180184989Srafan	    linking or installing shared libraries do not first remove the
181184989Srafan	    library, in case it is in use, e.g., <code>libncurses.so</code> by
182184989Srafan	    <code>/bin/sh</code>.
18350276Speter
184184989Srafan	<li>correct check for notimeout() in wgetch().
18550276Speter
186184989Srafan	<li>fix a sign-extension bug in infocmp's repair_acsc() function.
18750276Speter
188184989Srafan	<li>change winnstr() to stop at the end of the line.
18950276Speter
190184989Srafan	<li>make Ada95 demo_panels() example work.
19150276Speter
192184989Srafan	<li>fix for adding a non-spacing character at the beginning of a line.
19362449Speter
194184989Srafan	<li>fill in extended-color pair to make colors work
195184989Srafan	    for wide-characters using extended-colors.
19662449Speter
197184989Srafan	<li>improve refresh of window on top of multi-column characters,
198184989Srafan	    taking into account split characters on left/right window
199184989Srafan	    boundaries.
20062449Speter
201184989Srafan	<li>modify <code>win_wchnstr()</code> to ensure that only a base cell
202184989Srafan	    is returned for each multi-column character.
20376726Speter
204184989Srafan	<li>improve <code>waddch()</code> and <code>winsch()</code> handling of
205184989Srafan	    EILSEQ from <code>mbrtowc()</code> by using <code>unctrl()</code>
206184989Srafan	    to display illegal bytes rather than trying to append further bytes
207184989Srafan	    to make up a valid sequence.
20876726Speter
209184989Srafan	<li>restore <code>curs_set()</code> state after
210184989Srafan	    <code>endwin()</code>/<code>refresh()</code>
21176726Speter
212184989Srafan	<li>modify <code>keyname()</code> to use "^X" form only if
213184989Srafan	    <code>meta()</code> has been called, or if <code>keyname()</code>
214184989Srafan	    is called without initializing curses, e.g., via
215184989Srafan	    <code>initscr()</code> or <code>newterm()</code>.
21676726Speter
217184989Srafan	<li>modify <code>unctrl()</code> to check codes in 128-255 range versus
218184989Srafan	    <code>isprint()</code>.
219184989Srafan	    If they are not printable, and locale was set, use a "M-" or "~"
220184989Srafan	    sequence.
22176726Speter
222184989Srafan	<li>improve <code>resizeterm()</code> by moving ripped-off lines, and
223184989Srafan	    repainting the soft-keys.
224184989Srafan
225184989Srafan	<li>modify form library to accept control characters such as newline
226184989Srafan	    in set_field_buffer(), which is compatible with Solaris.
227184989Srafan
228184989Srafan	<li>use <code>NCURSES_MOUSE_MASK()</code> in definition of
229184989Srafan	    <code>BUTTON_RELEASE()</code>, etc., to make those work properly
230184989Srafan	    with the <code>--enable-ext-mouse</code> configuration
231184989Srafan
232184989Srafan	<li>correct some functions in Ada95 binding which were using return
233184989Srafan	    value from C where none was returned.
234184989Srafan
235184989Srafan	<li>reviewed/fixed issues reported by Coverity and Klocwork tools.
236166124Srafan</ul>
23776726Speter
238166124SrafanPortability:
239166124Srafan<ul>
240166124Srafan        <li>configure script:
241166124Srafan          <ul>
242166124Srafan          <li>new options:
243166124Srafan            <dl>
24476726Speter
245184989Srafan	    <dt>--disable-big-strings
246184989Srafan	    <dd>control whether static string tables are generated as single
247184989Srafan	        large strings (to improve startup performance), or as array
248184989Srafan		of individual strings.
24976726Speter
250184989Srafan	    <dt>--disable-relink
251184989Srafan	    <dd>control whether shared libraries are relinked (during install)
252184989Srafan		when rpath is enabled.
25376726Speter
254184989Srafan	    <dt>--disable-tic-depends
255184989Srafan	    <dd>make explicit whether tic library depends on ncurses/ncursesw
256184989Srafan	        library.
25776726Speter
258184989Srafan	    <dt>--enable-mixed-case
259184989Srafan	    <dd>override the configure script's check if the filesystem
260184989Srafan		supports mixed-case filenames.
261184989Srafan	        This allows one to control how the terminal database
262184989Srafan		maps to the filesystem.
263184989Srafan		For filesystems that do not support mixed-case, the library
264184989Srafan		uses generate 2-character (hexadecimal) codes for the
265184989Srafan		lower-level of the filesystem terminfo database
26676726Speter
267184989Srafan	    <dt>--enable-reentrant
268184989Srafan	    <dd>builds a different flavor of the ncurses library (ncursest)
269184989Srafan	        which improves reentrant use of the
270184989Srafan		library by reducing global and static variables
271184989Srafan	        (see the "--with-pthread" option for the threaded support).
27276726Speter
273184989Srafan	    <dt>--enable-weak-symbols
274184989Srafan	    <dd>use weak-symbols for linking to the POSIX thread library,
275184989Srafan	        and use the same soname for the ncurses shared library
276184989Srafan		as the normal library (caveat: the ABI is for the threaded
277184989Srafan		library, which makes global data accessed via functions).
278184989Srafan
279184989Srafan	    <dt>--with-pthread
280184989Srafan	    <dd>build with the POSIX thread library (tested with AIX,
281184989Srafan	        Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64).
282184989Srafan
283184989Srafan	    <dt>--with-ticlib
284184989Srafan	    <dd>build/install the tic-support functions in a separate library
285184989Srafan
286166124Srafan            </dl>
28776726Speter
288166124Srafan	  <li>improved options:
289166124Srafan	    <dl>
29076726Speter
291184989Srafan	    <dt>--enable-ext-colors
292184989Srafan	    <dd>requires the wide-character configuration.
29376726Speter
294184989Srafan	    <dt>--with-chtype
295184989Srafan	    <dd>ignore option value "unsigned" is always added to
296184989Srafan		the type in curses.h; do the same for --with-mmask-t.
29776726Speter
298184989Srafan	    <dt>--with-dmalloc
299184989Srafan	    <dd>build-fix for redefinition of <code>strndup</code>.
30050276Speter
301184989Srafan	    <dt>--with-hashed-db
302184989Srafan	    <dd>accepts a parameter which is the install-prefix of a given
303184989Srafan	        Berkeley Database.
30476726Speter
305184989Srafan	    <dt>--with-hashed-db
306184989Srafan	    <dd>the $LIBS environment variable overrides the search for the db
307184989Srafan		library.
30876726Speter
309184989Srafan	    <dt>--without-hashed-db
310184989Srafan	    <dd>assumed when "--disable-database" is used.
31176726Speter
312184989Srafan	    </dl>
31376726Speter
314184989Srafan	</ul>
31576726Speter
316184989Srafan	<li>other configure/build issues:
317184989Srafan	  <ul>
318184989Srafan	  <li>build-fixes for LynxOS
319184989Srafan	  <li>modify shared-library rules to allow FreeBSD 3.x to use rpath.
320184989Srafan	  <li>build-fix for FreeBSD "contemporary" TTY interface.
321184989Srafan	  <li>build-fixes for AIX with libtool.
322184989Srafan	  <li>build-fixes for Darwin and libtool.
323184989Srafan	  <li>modify BeOS-specific ifdef's to build on Haiku.
324184989Srafan	  <li>corrected gcc options for building shared libraries on Solaris
325184989Srafan	      and IRIX64.
326184989Srafan	  <li>change shared-library configuration for OpenBSD, make rpath work.
327184989Srafan	  <li>build-fixes for using libutf8, e.g., on OpenBSD 3.7
328184989Srafan	  <li>add "-e" option in ncurses/Makefile.in when generating source-files
329184989Srafan	      to force earlier exit if the build environment fails unexpectedly.
330184989Srafan	  <li>add support for shared libraries for QNX.
331184989Srafan	  <li>change delimiter in <code>MKlib_gen.sh</code> from '%' to '@', to
332184989Srafan	      avoid substitution by IBM xlc to '#' as part of its extensions to
333184989Srafan	      digraphs.
33476726Speter	</ul>
33576726Speter
33676726Speter	<li>library:
33776726Speter	<ul>
338184989Srafan	<li>rewrite wrapper for <code>wcrtomb()</code>, making it work on
339184989Srafan	    Solaris.  This is used in the form library to determine the length
340184989Srafan	    of the buffer needed by <code>field_buffer</code>.
341184989Srafan	<li>add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
342184989Srafan	    type for data manipulated by signal handlers.
343184989Srafan	<li>set locale in misc/ncurses-config.in since it uses a range
344184989Srafan	<li>disable GPM mouse support when $TERM does not happen to contain
345184989Srafan	    "linux", since Gpm_Open() no longer limits its assertion to terminals
346184989Srafan	    that it might handle, e.g., within "screen" in xterm.
347184989Srafan	<li>reset mouse file-descriptor when unloading GPM library.
348166124Srafan	</ul>
34976726Speter
350184989Srafan	<li>test programs:
351184989Srafan	<ul>
352184989Srafan	<li>update test programs to build/work with various UNIX curses for
353184989Srafan	    comparisons.
35476726Speter	</ul>
35576726Speter</ul>
35676726Speter
35750276Speter<H1>Features of Ncurses</H1>
35850276Speter
35956639SpeterThe ncurses package is fully compatible with SVr4 (System V Release 4) curses:
36050276Speter
36150276Speter<UL>
36250276Speter<LI>All 257 of the SVr4 calls have been implemented (and are documented).
36350276Speter<LI>Full support for SVr4 curses features including keyboard mapping, color,
36450276Speterforms-drawing with ACS characters, and automatic recognition of keypad
36550276Speterand function keys.
36650276Speter<LI>An emulation of the SVr4 panels library, supporting
36750276Spetera stack of windows with backing store, is included.
36850276Speter<LI>An emulation of the SVr4 menus library, supporting
36950276Spetera uniform but flexible interface for menu programming, is included.
37050276Speter<LI>An emulation of the SVr4 form library, supporting
37150276Speterdata collection through on-screen forms, is included.
37250276Speter<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
37350276Speterare bit-for-bit-compatible with the entry format SVr4 curses uses.
37450276Speter<LI>The utilities have options to allow you to filter terminfo
37550276Speterentries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
37650276Speterversions such as the HP/UX and AIX ports.</UL>
37750276Speter
37856639SpeterThe ncurses package also has many useful extensions over SVr4:
37950276Speter
38050276Speter<UL>
38150276Speter<LI>The API is 8-bit clean and base-level conformant with the X/OPEN curses
38250276Speterspecification, XSI curses (that is, it implements all BASE level features,
383166124Srafanand most EXTENDED features).
384166124SrafanIt includes many function calls not supported under SVr4 curses
385166124Srafan(but portability of all
38650276Spetercalls is documented so you can use the SVr4 subset only).
38756639Speter<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
38850276Speterof the screen if your terminal has an insert-character capability.
38950276Speter<LI>Ada95 and C++ bindings.
390166124Srafan<LI>Support for mouse event reporting with X Window xterm
391166124Srafanand FreeBSD and OS/2 console windows.
39250276Speter<LI>Extended mouse support via Alessandro Rubini's gpm package.
39350276Speter<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
39450276Spetertheir data.
39550276Speter<LI>The function <CODE>use_default_colors()</CODE> allows you to
39650276Speteruse the terminal's default colors for the default color pair,
39750276Speterachieving the effect of transparent colors.
39850276Speter<LI>The functions <CODE>keyok()</CODE>
39950276Speterand <CODE>define_key()</CODE> allow
40050276Speteryou to better control the use of function keys,
40150276Spetere.g., disabling the ncurses KEY_MOUSE,
40250276Speteror by defining more than one control sequence to map to a given key code.
403184989Srafan<LI>Support for 256-color terminals, such as modern xterm, when configured
404184989Srafanusing the <code>--enable-ext-colors</code> option.
405166124Srafan<LI>Support for 16-color terminals, such as aixterm and modern xterm.
40650276Speter<LI>Better cursor-movement optimization.  The package now features a
40750276Spetercursor-local-movement computation more efficient than either BSD's
40850276Speteror System V's.
40950276Speter<LI>Super hardware scrolling support.  The screen-update code incorporates
41050276Spetera novel, simple, and cheap algorithm that enables it to make optimal
41150276Speteruse of hardware scrolling, line-insertion, and line-deletion
41250276Speterfor screen-line movements.  This algorithm is more powerful than
41350276Speterthe 4.4BSD curses quickch() routine.
41450276Speter<LI>Real support for terminals with the magic-cookie glitch.  The
41550276Speterscreen-update code will refrain from drawing a highlight if the magic-
41650276Spetercookie unattributed spaces required just before the beginning and
41750276Speterafter the end would step on a non-space character.  It will
41850276Speterautomatically shift highlight boundaries when doing so would make it
41950276Speterpossible to draw the highlight without changing the visual appearance
42050276Speterof the screen.
42150276Speter<LI>It is possible to generate the library with a list of pre-loaded
42250276Speterfallback entries linked to it so that it can serve those terminal types even
42350276Speterwhen no terminfo tree or termcap file is accessible (this may be useful
42450276Speterfor support of screen-oriented programs that must run in single-user mode).
42550276Speter<LI>The tic(1)/captoinfo utility provided with ncurses has the
42650276Speterability to translate many termcaps from the XENIX, IBM and
42750276SpeterAT&amp;T extension sets.
42850276Speter<LI>A BSD-like tset(1) utility is provided.
42950276Speter<LI>The ncurses library and utilities will automatically read terminfo
43050276Speterentries from $HOME/.terminfo if it exists, and compile to that directory
43150276Speterif it exists and the user has no write access to the system directory.
43250276SpeterThis feature makes it easier for users to have personal terminfo entries
43350276Speterwithout giving up access to the system terminfo directory.
43450276Speter<LI>You may specify a path of directories to search for compiled
43550276Speterdescriptions with the environment variable TERMINFO_DIRS (this
43650276Spetergeneralizes the feature provided by TERMINFO under stock System V.)
43750276Speter<LI>In terminfo source files, use capabilities may refer not just to
43850276Speterother entries in the same source file (as in System V) but also to
43950276Spetercompiled entries in either the system terminfo directory or the user's
44050276Speter$HOME/.terminfo directory.
44150276Speter<LI>A script (<STRONG>capconvert</STRONG>) is provided to help BSD users
44250276Spetertransition from termcap to terminfo.  It gathers the information in a
44350276SpeterTERMCAP environment variable and/or a ~/.termcap local entries file
44450276Speterand converts it to an equivalent local terminfo tree under $HOME/.terminfo.
44550276Speter<LI>Automatic fallback to the /etc/termcap file can be compiled in
44650276Speterwhen it is not possible to build a terminfo tree.  This feature is neither
44750276Speterfast nor cheap, you don't want to use it unless you have to,
44850276Speterbut it's there.
44950276Speter<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
45050276Spetersee exactly what terminal types are available on the system.
45150276Speter<LI>The library meets the XSI requirement that every macro entry
45250276Speterpoint have a corresponding function which may be linked (and will be
45350276Speterprototype-checked) if the macro definition is disabled with
45450276Speter<CODE>#undef</CODE>.
45550276Speter<LI>An HTML "Introduction to Programming with NCURSES" document provides
45650276Spetera narrative introduction to the curses programming interface.
45750276Speter</UL>
45850276Speter
45950276Speter<H1>State of the Package</H1>
46050276Speter
46150276SpeterNumerous bugs present in earlier versions have been fixed; the
46250276Speterlibrary is far more reliable than it used to be.  Bounds checking in many
46350276Speter`dangerous' entry points has been improved.  The code is now type-safe
46450276Speteraccording to gcc -Wall.  The library has been checked for malloc leaks and
46550276Speterarena corruption by the Purify memory-allocation tester.<P>
46650276Speter
46750276SpeterThe ncurses code has been tested with a wide variety of applications
46856639Speterincluding (versions starting with those noted):
46950276Speter<DL>
47056639Speter<DT> cdk
47156639Speter<DD> Curses Development Kit
47262449Speter<br>
473166124Srafan<A HREF="http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</A>
47466963Speter<br>
475166124Srafan<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
47650276Speter<DT> ded
47750276Speter<DD> directory-editor
47862449Speter<br>
479166124Srafan<A HREF="http://invisible-island.net/ded/">http://invisible-island.net/ded/</A>
48050276Speter<DT> dialog
48150276Speter<DD> the underlying application used in Slackware's setup, and the basis
48250276Speterfor similar applications on GNU/Linux.
48362449Speter<br>
484166124Srafan<A HREF="http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</A>
48556639Speter<DT> lynx
48650276Speter<DD> the character-screen WWW browser
48762449Speter<br>
488166124Srafan<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release/</A>
489166124Srafan<DT> Midnight Commander
49050276Speter<DD> file manager
49166963Speter<br>
492166124Srafan<A HREF="http://www.ibiblio.org/mc/">http://www.ibiblio.org/mc/</A>
49356639Speter<DT> mutt
49450276Speter<DD> mail utility
49562449Speter<br>
496166124Srafan<A HREF="http://www.mutt.org/">http://www.mutt.org/</A>
49756639Speter<DT> ncftp
49850276Speter<DD> file-transfer utility
49966963Speter<br>
500166124Srafan<A HREF="http://www.ncftp.com/">http://www.ncftp.com/</A>
50150276Speter<DT> nvi
50250276Speter<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
50366963Speter<br>
504166124Srafan<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>
505166124Srafan<br>
506166124Srafan<DT> pinfo
507166124Srafan<DD> Lynx-like info browser.
508184989Srafan<A HREF="https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</A>
50956639Speter<DT> tin
51056639Speter<DD> newsreader, supporting color, MIME
511166124Srafan<A HREF="http://www.tin.org/">http://www.tin.org/</A>
51250276Speter</DL>
51350276Speteras well as some that use ncurses for the terminfo support alone:
51450276Speter<DL>
51556639Speter<DT> minicom
51650276Speter<DD> terminal emulator
51766963Speter<br>
518166124Srafan<A HREF="http://alioth.debian.org/projects/minicom/">
519166124Srafanhttp://alioth.debian.org/projects/minicom/</A>
52050276Speter<DT> vile
52150276Speter<DD> vi-like-emacs
52262449Speter<br>
523166124Srafan<A HREF="http://invisible-island.net/vile/">http://invisible-island.net/vile/</A>
52450276Speter</DL>
52550276Speter<P>
52650276Speter
52750276SpeterThe ncurses distribution includes a selection of test programs (including
52850276Spetera few games).
52950276Speter
53050276Speter<H2>Who's Who and What's What</H2>
53150276Speter
532166124SrafanZeyd Ben-Halim
533166124Srafanstarted it from a previous package pcurses, written by Pavel Curtis.
534166124SrafanEric S. Raymond
535166124Srafancontinued development.
536166124SrafanJ&uuml;rgen Pfeifer wrote most of the form and menu libraries.
53750276SpeterOngoing work is being done by
538166124Srafan<A HREF="mailto:dickey@invisible-island.net">Thomas Dickey</A>.
539166124SrafanThomas Dickey
540166124Srafanacts as the maintainer for the Free Software Foundation,
541166124Srafanwhich holds the copyright on ncurses.
54250276SpeterContact the current maintainers at
54350276Speter<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
54450276Speter<P>
54550276Speter
54650276SpeterTo join the ncurses mailing list, please write email to
54750276Speter<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
54850276Speter<PRE>
54950276Speter             subscribe &lt;name&gt;@&lt;host.domain&gt;
55050276Speter</PRE>
55150276Speter
55250276SpeterThis list is open to anyone interested in helping with the development and
55350276Spetertesting of this package.<P>
55450276Speter
55550276SpeterBeta versions of ncurses and patches to the current release are made available at
556166124Srafan<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
55750276Speter
55850276Speter<H2>Future Plans</H2>
55950276Speter<UL>
56050276Speter<LI>Extended-level XPG4 conformance, with internationalization support.
56150276Speter<LI>Ports to more systems, including DOS and Windows.
56250276Speter</UL>
56350276SpeterWe need people to help with these projects.  If you are interested in working
56450276Speteron them, please join the ncurses list.
56550276Speter
56650276Speter<H2>Other Related Resources</H2>
56750276Speter
568166124SrafanThe distribution provides a newer version of the terminfo-format
569166124Srafanterminal description file once maintained by
570166124Srafan<A HREF="http://www.catb.org/~esr/terminfo/">Eric Raymond</A>&nbsp;.
571166124SrafanUnlike the older version, the termcap and terminfo data are provided
572166124Srafanin the same file, and provides several user-definable extensions
573166124Srafanbeyond the X/Open specification.<P>
57450276Speter
57550276SpeterYou can find lots of information on terminal-related topics
57650276Speternot covered in the terminfo file at
57750276Speter<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
578166124Srafanarchive</A>&nbsp;.
57950276Speter</BODY>
58050276Speter</HTML>
58150276Speter<!--
58250276Speter# The following sets edit modes for GNU EMACS
58350276Speter# Local Variables:
58450276Speter# mode:html
58550276Speter# case-fold-search:nil
58650276Speter# fill-column:70
58750276Speter# End:
58850276Speter-->
589