150276Speter<!--
2262685Sdelphij  $Id: announce.html.in,v 1.89 2013/05/18 10:12:25 tom Exp $
3166124Srafan  ****************************************************************************
4262685Sdelphij  * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc.              *
5166124Srafan  *                                                                          *
6166124Srafan  * Permission is hereby granted, free of charge, to any person obtaining a  *
7166124Srafan  * copy of this software and associated documentation files (the            *
8166124Srafan  * "Software"), to deal in the Software without restriction, including      *
9166124Srafan  * without limitation the rights to use, copy, modify, merge, publish,      *
10166124Srafan  * distribute, distribute with modifications, sublicense, and/or sell       *
11166124Srafan  * copies of the Software, and to permit persons to whom the Software is    *
12166124Srafan  * furnished to do so, subject to the following conditions:                 *
13166124Srafan  *                                                                          *
14166124Srafan  * The above copyright notice and this permission notice shall be included  *
15166124Srafan  * in all copies or substantial portions of the Software.                   *
16166124Srafan  *                                                                          *
17166124Srafan  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
18166124Srafan  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
19166124Srafan  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
20166124Srafan  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
21166124Srafan  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
22166124Srafan  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
23166124Srafan  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
24166124Srafan  *                                                                          *
25166124Srafan  * Except as contained in this notice, the name(s) of the above copyright   *
26166124Srafan  * holders shall not be used in advertising or otherwise to promote the     *
27166124Srafan  * sale, use or other dealings in this Software without prior written       *
28166124Srafan  * authorization.                                                           *
29166124Srafan  ****************************************************************************
3050276Speter-->
31262685Sdelphij<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
3250276Speter
33262629Sdelphij<html>
34262629Sdelphij<head>
35262629Sdelphij  <meta name="generator" content=
36262685Sdelphij  "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
3750276Speter
38262629Sdelphij  <title>Announcing ncurses @VERSION@</title>
39262629Sdelphij  <link rev="made" href="mailto:bug-ncurses@gnu.org">
40262629Sdelphij  <meta http-equiv="Content-Type" content=
41262629Sdelphij  "text/html; charset=us-ascii">
42262629Sdelphij</head>
4350276Speter
44262629Sdelphij<body>
45262685Sdelphij  <h1>Announcing ncurses @VERSION@</h1>
4650276Speter
47262685Sdelphij  <p>The ncurses (new curses) library is a free software emulation
48262685Sdelphij  of curses in System V Release 4.0, and more. It uses terminfo
49262685Sdelphij  format, supports pads and color and multiple highlights and forms
50262685Sdelphij  characters and function-key mapping, and has all the other
51262685Sdelphij  SYSV-curses enhancements over BSD curses.</p>
52262685Sdelphij
53262629Sdelphij  <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
54262629Sdelphij  that he considered 4.4BSD curses obsolete, and encouraged the
55262629Sdelphij  keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to
56262629Sdelphij  switch over to ncurses.</p>
5750276Speter
58262629Sdelphij  <p>The ncurses code was developed under GNU/Linux. It has been in
59262629Sdelphij  use for some time with OpenBSD as the system curses library, and
60262629Sdelphij  on FreeBSD and NetBSD as an external package. It should port
61262629Sdelphij  easily to any ANSI/POSIX-conforming UNIX. It has even been ported
62262629Sdelphij  to OS/2 Warp!</p>
6350276Speter
64262629Sdelphij  <p>The distribution includes the library and support utilities,
65262629Sdelphij  including a terminfo compiler tic(1), a decompiler infocmp(1),
66262629Sdelphij  clear(1), tput(1), tset(1), and a termcap conversion tool
67262629Sdelphij  captoinfo(1). Full manual pages are provided for the library and
68262629Sdelphij  tools.</p>
6950276Speter
70262629Sdelphij  <p>The ncurses distribution is available via anonymous FTP at the
71262629Sdelphij  GNU distribution site <a href=
72262629Sdelphij  "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.<br>
7350276Speter
74262629Sdelphij  It is also available at <a href=
75262629Sdelphij  "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
7650276Speter
77262685Sdelphij  <h1>Release Notes</h1>
78262685Sdelphij
79262685Sdelphij  <p>This release is designed to be upward compatible from ncurses
80262685Sdelphij  5.0 through 5.8; very few applications will require
81262685Sdelphij  recompilation, depending on the platform. These are the
82262685Sdelphij  highlights from the change-log since ncurses 5.8 release.</p>
83262685Sdelphij
84262685Sdelphij  <p>This is a bug-fix release, correcting a small number of urgent
85262685Sdelphij  problems in the ncurses library from the 5.8 release.</p>
86262685Sdelphij
87262685Sdelphij  <p>It also improves the Ada95 binding:</p>
88262685Sdelphij
89262629Sdelphij  <ul>
90262685Sdelphij    <li>fixes a longstanding portability problem with its use of
91262685Sdelphij    the <a href=
92262685Sdelphij    "http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
93262685Sdelphij    function. Because that function uses variable-length argument
94262685Sdelphij    lists, its interface with gnat does not work with certain
95262685Sdelphij    platforms.</li>
96262685Sdelphij
97262685Sdelphij    <li>improves configurability and portability, particularly when
98262685Sdelphij    built separately from the main ncurses tree. The 5.8 release
99262685Sdelphij    introduced scripts which can be used to construct separate
100262685Sdelphij    tarballs for the Ada95 and ncurses examples.
101262685Sdelphij
102262685Sdelphij      <p>Those were a proof of concept. For the 5.9 release, those
103262685Sdelphij      scripts are augmented with rpm- and dpkg-scripts used in test
104262685Sdelphij      builds against a variety of gnat- and system ncurses versions
105262685Sdelphij      as old as gnat 3.15 and ncurses 5.4 (see snapshots and
106262685Sdelphij      systems tested <a href=
107262685Sdelphij      "http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.</p>
108262685Sdelphij    </li>
109262685Sdelphij
110262685Sdelphij    <li>additional improvements were made for portability of the
111262685Sdelphij    ncurses examples, adding rpm- and dpkg-scripts for test-builds.
112262685Sdelphij    See <a href=
113262685Sdelphij    "http://invisible-island.net/ncurses/ncurses-examples.html">this
114262685Sdelphij    page</a> for snapshots and other information.</li>
115262629Sdelphij  </ul>
11650276Speter
117262685Sdelphij  <h1>Features of Ncurses</h1>
11876726Speter
119262685Sdelphij  <p>The ncurses package is fully compatible with SVr4 (System V
120262685Sdelphij  Release 4) curses:</p>
121262685Sdelphij
122262629Sdelphij  <ul>
123262629Sdelphij    <li>All 257 of the SVr4 calls have been implemented (and are
124262629Sdelphij    documented).</li>
12550276Speter
126262629Sdelphij    <li>Full support for SVr4 curses features including keyboard
127262629Sdelphij    mapping, color, forms-drawing with ACS characters, and
128262629Sdelphij    automatic recognition of keypad and function keys.</li>
12950276Speter
130262629Sdelphij    <li>An emulation of the SVr4 panels library, supporting a stack
131262629Sdelphij    of windows with backing store, is included.</li>
13276726Speter
133262629Sdelphij    <li>An emulation of the SVr4 menus library, supporting a
134262629Sdelphij    uniform but flexible interface for menu programming, is
135262629Sdelphij    included.</li>
13676726Speter
137262629Sdelphij    <li>An emulation of the SVr4 form library, supporting data
138262629Sdelphij    collection through on-screen forms, is included.</li>
13976726Speter
140262629Sdelphij    <li>Binary terminfo entries generated by the ncurses tic(1)
141262629Sdelphij    implementation are bit-for-bit-compatible with the entry format
142262629Sdelphij    SVr4 curses uses.</li>
14376726Speter
144262629Sdelphij    <li>The utilities have options to allow you to filter terminfo
145262629Sdelphij    entries for use with less capable
146262629Sdelphij    <strong>curses</strong>/<strong>terminfo</strong> versions such
147262629Sdelphij    as the HP/UX and AIX ports.</li>
148262685Sdelphij  </ul>
14976726Speter
150262685Sdelphij  <p>The ncurses package also has many useful extensions over
151262685Sdelphij  SVr4:</p>
152262685Sdelphij
153262629Sdelphij  <ul>
154262629Sdelphij    <li>The API is 8-bit clean and base-level conformant with the
155262629Sdelphij    X/OPEN curses specification, XSI curses (that is, it implements
156262629Sdelphij    all BASE level features, and most EXTENDED features). It
157262629Sdelphij    includes many function calls not supported under SVr4 curses
158262629Sdelphij    (but portability of all calls is documented so you can use the
159262629Sdelphij    SVr4 subset only).</li>
16050276Speter
161262629Sdelphij    <li>Unlike SVr3 curses, ncurses can write to the
162262629Sdelphij    rightmost-bottommost corner of the screen if your terminal has
163262629Sdelphij    an insert-character capability.</li>
16450276Speter
165262629Sdelphij    <li>Ada95 and C++ bindings.</li>
16650276Speter
167262629Sdelphij    <li>Support for mouse event reporting with X Window xterm and
168262629Sdelphij    FreeBSD and OS/2 console windows.</li>
16950276Speter
170262629Sdelphij    <li>Extended mouse support via Alessandro Rubini's gpm
171262629Sdelphij    package.</li>
17250276Speter
173262629Sdelphij    <li>The function <code>wresize</code> allows you to resize
174262629Sdelphij    windows, preserving their data.</li>
17550276Speter
176262629Sdelphij    <li>The function <code>use_default_colors</code> allows you to
177262629Sdelphij    use the terminal's default colors for the default color pair,
178262629Sdelphij    achieving the effect of transparent colors.</li>
17950276Speter
180262629Sdelphij    <li>The functions <code>keyok</code> and
181262629Sdelphij    <code>define_key</code> allow you to better control the use of
182262629Sdelphij    function keys, e.g., disabling the ncurses KEY_MOUSE, or by
183262629Sdelphij    defining more than one control sequence to map to a given key
184262629Sdelphij    code.</li>
18550276Speter
186262629Sdelphij    <li>Support for 256-color terminals, such as modern xterm, when
187262629Sdelphij    configured using the <code>--enable-ext-colors</code>
188262629Sdelphij    option.</li>
18950276Speter
190262629Sdelphij    <li>Support for 16-color terminals, such as <em>aixterm</em>
191262629Sdelphij    and <em>modern xterm</em>.</li>
19250276Speter
193262629Sdelphij    <li>Better cursor-movement optimization. The package now
194262629Sdelphij    features a cursor-local-movement computation more efficient
195262629Sdelphij    than either BSD's or System V's.</li>
19650276Speter
197262629Sdelphij    <li>Super hardware scrolling support. The screen-update code
198262629Sdelphij    incorporates a novel, simple, and cheap algorithm that enables
199262629Sdelphij    it to make optimal use of hardware scrolling, line-insertion,
200262629Sdelphij    and line-deletion for screen-line movements. This algorithm is
201262629Sdelphij    more powerful than the 4.4BSD curses <code>quickch</code>
202262629Sdelphij    routine.</li>
20350276Speter
204262629Sdelphij    <li>Real support for terminals with the magic-cookie glitch.
205262629Sdelphij    The screen-update code will refrain from drawing a highlight if
206262629Sdelphij    the magic- cookie unattributed spaces required just before the
207262629Sdelphij    beginning and after the end would step on a non-space
208262629Sdelphij    character. It will automatically shift highlight boundaries
209262629Sdelphij    when doing so would make it possible to draw the highlight
210262629Sdelphij    without changing the visual appearance of the screen.</li>
21150276Speter
212262629Sdelphij    <li>It is possible to generate the library with a list of
213262629Sdelphij    pre-loaded fallback entries linked to it so that it can serve
214262629Sdelphij    those terminal types even when no terminfo tree or termcap file
215262629Sdelphij    is accessible (this may be useful for support of
216262629Sdelphij    screen-oriented programs that must run in single-user
217262629Sdelphij    mode).</li>
21862449Speter
219262629Sdelphij    <li>The tic(1)/captoinfo utility provided with ncurses has the
220262629Sdelphij    ability to translate many termcaps from the XENIX, IBM and
221262629Sdelphij    AT&amp;T extension sets.</li>
22262449Speter
223262629Sdelphij    <li>A BSD-like tset(1) utility is provided.</li>
22462449Speter
225262629Sdelphij    <li>The ncurses library and utilities will automatically read
226262629Sdelphij    terminfo entries from $HOME/.terminfo if it exists, and compile
227262629Sdelphij    to that directory if it exists and the user has no write access
228262629Sdelphij    to the system directory. This feature makes it easier for users
229262629Sdelphij    to have personal terminfo entries without giving up access to
230262629Sdelphij    the system terminfo directory.</li>
23176726Speter
232262629Sdelphij    <li>You may specify a path of directories to search for
233262629Sdelphij    compiled descriptions with the environment variable
234262629Sdelphij    TERMINFO_DIRS (this generalizes the feature provided by
235262629Sdelphij    TERMINFO under stock System V.)</li>
23676726Speter
237262629Sdelphij    <li>In terminfo source files, use capabilities may refer not
238262629Sdelphij    just to other entries in the same source file (as in System V)
239262629Sdelphij    but also to compiled entries in either the system terminfo
240262629Sdelphij    directory or the user's $HOME/.terminfo directory.</li>
24176726Speter
242262629Sdelphij    <li>A script (<strong>capconvert</strong>) is provided to help
243262629Sdelphij    BSD users transition from termcap to terminfo. It gathers the
244262629Sdelphij    information in a TERMCAP environment variable and/or a
245262629Sdelphij    ~/.termcap local entries file and converts it to an equivalent
246262629Sdelphij    local terminfo tree under $HOME/.terminfo.</li>
24776726Speter
248262629Sdelphij    <li>Automatic fallback to the /etc/termcap file can be compiled
249262629Sdelphij    in when it is not possible to build a terminfo tree. This
250262629Sdelphij    feature is neither fast nor cheap, you don't want to use it
251262629Sdelphij    unless you have to, but it's there.</li>
25276726Speter
253262629Sdelphij    <li>The table-of-entries utility <strong>toe</strong> makes it
254262629Sdelphij    easy for users to see exactly what terminal types are available
255262629Sdelphij    on the system.</li>
256184989Srafan
257262629Sdelphij    <li>The library meets the XSI requirement that every macro
258262629Sdelphij    entry point have a corresponding function which may be linked
259262629Sdelphij    (and will be prototype-checked) if the macro definition is
260262629Sdelphij    disabled with <code>#undef</code>.</li>
261184989Srafan
262262629Sdelphij    <li>An HTML "Introduction to Programming with NCURSES" document
263262629Sdelphij    provides a narrative introduction to the curses programming
264262629Sdelphij    interface.</li>
265262629Sdelphij  </ul>
266184989Srafan
267262685Sdelphij  <h1>State of the Package</h1>
268184989Srafan
269262685Sdelphij  <p>Numerous bugs present in earlier versions have been fixed; the
270262685Sdelphij  library is far more reliable than it used to be. Bounds checking
271262685Sdelphij  in many `dangerous' entry points has been improved. The code is
272262685Sdelphij  now type-safe according to gcc -Wall. The library has been
273262685Sdelphij  checked for malloc leaks and arena corruption by the Purify
274262685Sdelphij  memory-allocation tester.</p>
275262685Sdelphij
276262629Sdelphij  <p>The ncurses code has been tested with a wide variety of
277262629Sdelphij  applications including (versions starting with those noted):</p>
27876726Speter
279262629Sdelphij  <dl>
280262629Sdelphij    <dt>cdk</dt>
28176726Speter
282262629Sdelphij    <dd>Curses Development Kit<br>
283262629Sdelphij    <a href=
284262629Sdelphij    "http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</a><br>
28576726Speter
286262629Sdelphij    <a href=
287262629Sdelphij    "http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a></dd>
28876726Speter
289262629Sdelphij    <dt>ded</dt>
29076726Speter
291262629Sdelphij    <dd>directory-editor<br>
292262629Sdelphij    <a href=
293262629Sdelphij    "http://invisible-island.net/ded/">http://invisible-island.net/ded/</a></dd>
29476726Speter
295262629Sdelphij    <dt>dialog</dt>
29676726Speter
297262629Sdelphij    <dd>the underlying application used in Slackware's setup, and
298262629Sdelphij    the basis for similar applications on GNU/Linux.<br>
299262629Sdelphij    <a href=
300262629Sdelphij    "http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</a></dd>
301184989Srafan
302262629Sdelphij    <dt>lynx</dt>
303184989Srafan
304262629Sdelphij    <dd>the character-screen WWW browser<br>
305262629Sdelphij    <a href=
306262629Sdelphij    "http://lynx.isc.org/release/">http://lynx.isc.org/release/</a></dd>
307184989Srafan
308262629Sdelphij    <dt>Midnight Commander</dt>
30976726Speter
310262629Sdelphij    <dd>file manager<br>
311262629Sdelphij    <a href=
312262629Sdelphij    "http://www.midnight-commander.org/">http://www.midnight-commander.org/</a></dd>
31376726Speter
314262629Sdelphij    <dt>mutt</dt>
31576726Speter
316262629Sdelphij    <dd>mail utility<br>
317262629Sdelphij    <a href="http://www.mutt.org/">http://www.mutt.org/</a></dd>
31876726Speter
319262629Sdelphij    <dt>ncftp</dt>
32050276Speter
321262629Sdelphij    <dd>file-transfer utility<br>
322262629Sdelphij    <a href="http://www.ncftp.com/">http://www.ncftp.com/</a></dd>
32376726Speter
324262629Sdelphij    <dt>nvi</dt>
32576726Speter
326262629Sdelphij    <dd>New vi versions 1.50 are able to use ncurses versions 1.9.7
327262629Sdelphij    and later.<br>
328262629Sdelphij    <a href=
329262629Sdelphij    "https://sites.google.com/a/bostic.com/keithbostic/nvi">https://sites.google.com/a/bostic.com/keithbostic/nvi</a><br>
330262629Sdelphij    </dd>
33176726Speter
332262629Sdelphij    <dt>pinfo</dt>
33376726Speter
334262629Sdelphij    <dd>Lynx-like info browser. <a href=
335262629Sdelphij    "https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</a></dd>
33676726Speter
337262629Sdelphij    <dt>tin</dt>
33876726Speter
339262629Sdelphij    <dd>newsreader, supporting color, MIME <a href=
340262629Sdelphij    "http://www.tin.org/">http://www.tin.org/</a></dd>
341262685Sdelphij  </dl>
34276726Speter
343262685Sdelphij  <p>as well as some that use ncurses for the terminfo support
344262685Sdelphij  alone:</p>
345262685Sdelphij
346262629Sdelphij  <dl>
347262629Sdelphij    <dt>minicom</dt>
34876726Speter
349262629Sdelphij    <dd>terminal emulator<br>
350262629Sdelphij    <a href=
351262629Sdelphij    "http://alioth.debian.org/projects/minicom/">http://alioth.debian.org/projects/minicom/</a></dd>
35250276Speter
353262629Sdelphij    <dt>vile</dt>
35450276Speter
355262629Sdelphij    <dd>vi-like-emacs<br>
356262629Sdelphij    <a href=
357262629Sdelphij    "http://invisible-island.net/vile/">http://invisible-island.net/vile/</a></dd>
358262629Sdelphij  </dl>
35950276Speter
360262629Sdelphij  <p>The ncurses distribution includes a selection of test programs
361262629Sdelphij  (including a few games).</p>
36250276Speter
363262685Sdelphij  <h2>Who's Who and What's What</h2>
36450276Speter
365262685Sdelphij  <p>Zeyd Ben-Halim started it from a previous package pcurses,
366262685Sdelphij  written by Pavel Curtis. Eric S. Raymond continued development.
367262685Sdelphij  J&uuml;rgen Pfeifer wrote most of the form and menu libraries.
368262685Sdelphij  Ongoing work is being done by <a href=
369262685Sdelphij  "mailto:dickey@invisible-island.net">Thomas Dickey</a>. Thomas
370262685Sdelphij  Dickey acts as the maintainer for the Free Software Foundation,
371262685Sdelphij  which holds the copyright on ncurses. Contact the current
372262685Sdelphij  maintainers at <a href=
373262685Sdelphij  "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>.</p>
374262685Sdelphij
375262629Sdelphij  <p>To join the ncurses mailing list, please write email to
376262629Sdelphij  <code>bug-ncurses-request@gnu.org</code> containing the line:</p>
377262629Sdelphij  <pre>
378262629Sdelphij             subscribe &lt;name&gt;@&lt;host.domain&gt;
379262629Sdelphij</pre>
38050276Speter
381262629Sdelphij  <p>This list is open to anyone interested in helping with the
382262629Sdelphij  development and testing of this package.</p>
38350276Speter
384262629Sdelphij  <p>Beta versions of ncurses and patches to the current release
385262629Sdelphij  are made available at <a href=
386262629Sdelphij  "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
38750276Speter
388262685Sdelphij  <p>There is an archive of the mailing list here:</p>
389262685Sdelphij
390262685Sdelphij  <p><a href=
391262685Sdelphij  "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
392262685Sdelphij  (also <a href=
393262685Sdelphij  "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
394262685Sdelphij
395262629Sdelphij  <h2>Future Plans</h2>
39650276Speter
397262629Sdelphij  <ul>
398262629Sdelphij    <li>Extended-level XPG4 conformance, with internationalization
399262629Sdelphij    support.</li>
40050276Speter
401262629Sdelphij    <li>Ports to more systems, including DOS and Windows.</li>
402262685Sdelphij  </ul>
40350276Speter
404262685Sdelphij  <p>We need people to help with these projects. If you are
405262685Sdelphij  interested in working on them, please join the ncurses list.</p>
406262685Sdelphij
407262685Sdelphij  <h2>Other Related Resources</h2>
408262685Sdelphij
409262685Sdelphij  <p>The distribution provides a newer version of the
410262685Sdelphij  terminfo-format terminal description file once maintained by
411262685Sdelphij  <a href="http://www.catb.org/~esr/terminfo/">Eric
412262629Sdelphij  Raymond</a>&nbsp;. Unlike the older version, the termcap and
413262629Sdelphij  terminfo data are provided in the same file, and provides several
414262685Sdelphij  user-definable extensions beyond the X/Open specification.</p>
41550276Speter
416262629Sdelphij  <p>You can find lots of information on terminal-related topics
417262629Sdelphij  not covered in the terminfo file at <a href=
418262629Sdelphij  "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
419262629Sdelphij  Richard Shuford's archive</a>&nbsp;.</p>
420262629Sdelphij</body>
421262629Sdelphij</html>
422