1262685Sdelphij<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
262449Speter<!--
3262685Sdelphij  $Id: announce.html,v 1.56 2013/05/17 23:34:26 tom Exp $
4166124Srafan  ****************************************************************************
5262629Sdelphij  * Copyright (c) 1998-2010,2011 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  ****************************************************************************
3162449Speter-->
3262449Speter
33262629Sdelphij<html>
34262629Sdelphij<head>
35262629Sdelphij  <meta name="generator" content=
36262629Sdelphij  "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
3762449Speter
38262629Sdelphij  <title>Announcing ncurses 5.9</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>
4362449Speter
44262629Sdelphij<body>
45262629Sdelphij  <h1>Announcing ncurses 5.9</h1>The ncurses (new curses)
46262629Sdelphij  library is a free software emulation of curses in System V
47262629Sdelphij  Release 4.0, and more. It uses terminfo format, supports pads and
48262629Sdelphij  color and multiple highlights and forms characters and
49262629Sdelphij  function-key mapping, and has all the other SYSV-curses
50262629Sdelphij  enhancements over BSD curses.
5162449Speter
52262629Sdelphij  <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
53262629Sdelphij  that he considered 4.4BSD curses obsolete, and encouraged the
54262629Sdelphij  keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to
55262629Sdelphij  switch over to ncurses.</p>
5662449Speter
57262629Sdelphij  <p>The ncurses code was developed under GNU/Linux. It has been in
58262629Sdelphij  use for some time with OpenBSD as the system curses library, and
59262629Sdelphij  on FreeBSD and NetBSD as an external package. It should port
60262629Sdelphij  easily to any ANSI/POSIX-conforming UNIX. It has even been ported
61262629Sdelphij  to OS/2 Warp!</p>
6262449Speter
63262629Sdelphij  <p>The distribution includes the library and support utilities,
64262629Sdelphij  including a terminfo compiler tic(1), a decompiler infocmp(1),
65262629Sdelphij  clear(1), tput(1), tset(1), and a termcap conversion tool
66262629Sdelphij  captoinfo(1). Full manual pages are provided for the library and
67262629Sdelphij  tools.</p>
6862449Speter
69262629Sdelphij  <p>The ncurses distribution is available via anonymous FTP at the
70262629Sdelphij  GNU distribution site <a href=
71262629Sdelphij  "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.<br>
7262449Speter
73262629Sdelphij  It is also available at <a href=
74262629Sdelphij  "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
7562449Speter
76262629Sdelphij  <h1>Release Notes</h1>This release is designed to be upward
77262629Sdelphij  compatible from ncurses 5.0 through 5.8; very few applications
78262629Sdelphij  will require recompilation, depending on the platform. These are
79262629Sdelphij  the highlights from the change-log since ncurses 5.8 release.
80262629Sdelphij  <p>
81262629Sdelphij  This is a bug-fix release, correcting a small number of urgent problems
82262629Sdelphij  in the ncurses library from the 5.8 release.
83262629Sdelphij  <p>
84262629Sdelphij  It also improves the Ada95 binding:
85262629Sdelphij  <ul>
86262629Sdelphij  <li>fixes a longstanding portability problem with its use of the
87262629Sdelphij      <a href="http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
88262629Sdelphij      function.  Because that function uses variable-length argument lists,
89262629Sdelphij      its interface with gnat does not work with certain platforms.
90262629Sdelphij  <li>improves configurability and portability, particularly when built
91262629Sdelphij      separately from the main ncurses tree.  The 5.8 release introduced
92262629Sdelphij      scripts which can be used to construct separate tarballs for the
93262629Sdelphij      Ada95 and ncurses examples.
94262629Sdelphij      <p>Those were a proof of concept.  For the 5.9 release, those
95262629Sdelphij      scripts are augmented with rpm- and dpkg-scripts used in test builds
96262629Sdelphij      against a variety of gnat- and system ncurses versions as old as
97262629Sdelphij      gnat 3.15 and ncurses 5.4 (see snapshots and systems tested
98262629Sdelphij      <a href="http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.
99262629Sdelphij  <li>additional improvements were made for portability of the
100262629Sdelphij      ncurses examples, adding rpm- and dpkg-scripts for test-builds.
101262629Sdelphij      See 
102262629Sdelphij      <a href="http://invisible-island.net/ncurses/ncurses-examples.html">this page</a>
103262629Sdelphij      for snapshots and other information.
104262629Sdelphij  </ul>
10562449Speter
106262629Sdelphij  <h1>Features of Ncurses</h1>The ncurses package is fully
107262629Sdelphij  compatible with SVr4 (System V Release 4) curses:
10876726Speter
109262629Sdelphij  <ul>
110262629Sdelphij    <li>All 257 of the SVr4 calls have been implemented (and are
111262629Sdelphij    documented).</li>
11262449Speter
113262629Sdelphij    <li>Full support for SVr4 curses features including keyboard
114262629Sdelphij    mapping, color, forms-drawing with ACS characters, and
115262629Sdelphij    automatic recognition of keypad and function keys.</li>
11662449Speter
117262629Sdelphij    <li>An emulation of the SVr4 panels library, supporting a stack
118262629Sdelphij    of windows with backing store, is included.</li>
11976726Speter
120262629Sdelphij    <li>An emulation of the SVr4 menus library, supporting a
121262629Sdelphij    uniform but flexible interface for menu programming, is
122262629Sdelphij    included.</li>
12376726Speter
124262629Sdelphij    <li>An emulation of the SVr4 form library, supporting data
125262629Sdelphij    collection through on-screen forms, is included.</li>
12676726Speter
127262629Sdelphij    <li>Binary terminfo entries generated by the ncurses tic(1)
128262629Sdelphij    implementation are bit-for-bit-compatible with the entry format
129262629Sdelphij    SVr4 curses uses.</li>
13076726Speter
131262629Sdelphij    <li>The utilities have options to allow you to filter terminfo
132262629Sdelphij    entries for use with less capable
133262629Sdelphij    <strong>curses</strong>/<strong>terminfo</strong> versions such
134262629Sdelphij    as the HP/UX and AIX ports.</li>
135262629Sdelphij  </ul>The ncurses package also has many useful extensions over
136262629Sdelphij  SVr4:
13776726Speter
138262629Sdelphij  <ul>
139262629Sdelphij    <li>The API is 8-bit clean and base-level conformant with the
140262629Sdelphij    X/OPEN curses specification, XSI curses (that is, it implements
141262629Sdelphij    all BASE level features, and most EXTENDED features). It
142262629Sdelphij    includes many function calls not supported under SVr4 curses
143262629Sdelphij    (but portability of all calls is documented so you can use the
144262629Sdelphij    SVr4 subset only).</li>
14562449Speter
146262629Sdelphij    <li>Unlike SVr3 curses, ncurses can write to the
147262629Sdelphij    rightmost-bottommost corner of the screen if your terminal has
148262629Sdelphij    an insert-character capability.</li>
14962449Speter
150262629Sdelphij    <li>Ada95 and C++ bindings.</li>
15162449Speter
152262629Sdelphij    <li>Support for mouse event reporting with X Window xterm and
153262629Sdelphij    FreeBSD and OS/2 console windows.</li>
15462449Speter
155262629Sdelphij    <li>Extended mouse support via Alessandro Rubini's gpm
156262629Sdelphij    package.</li>
15762449Speter
158262629Sdelphij    <li>The function <code>wresize</code> allows you to resize
159262629Sdelphij    windows, preserving their data.</li>
16062449Speter
161262629Sdelphij    <li>The function <code>use_default_colors</code> allows you to
162262629Sdelphij    use the terminal's default colors for the default color pair,
163262629Sdelphij    achieving the effect of transparent colors.</li>
16462449Speter
165262629Sdelphij    <li>The functions <code>keyok</code> and
166262629Sdelphij    <code>define_key</code> allow you to better control the use of
167262629Sdelphij    function keys, e.g., disabling the ncurses KEY_MOUSE, or by
168262629Sdelphij    defining more than one control sequence to map to a given key
169262629Sdelphij    code.</li>
17062449Speter
171262629Sdelphij    <li>Support for 256-color terminals, such as modern xterm, when
172262629Sdelphij    configured using the <code>--enable-ext-colors</code>
173262629Sdelphij    option.</li>
17462449Speter
175262629Sdelphij    <li>Support for 16-color terminals, such as <em>aixterm</em>
176262629Sdelphij    and <em>modern xterm</em>.</li>
17762449Speter
178262629Sdelphij    <li>Better cursor-movement optimization. The package now
179262629Sdelphij    features a cursor-local-movement computation more efficient
180262629Sdelphij    than either BSD's or System V's.</li>
18162449Speter
182262629Sdelphij    <li>Super hardware scrolling support. The screen-update code
183262629Sdelphij    incorporates a novel, simple, and cheap algorithm that enables
184262629Sdelphij    it to make optimal use of hardware scrolling, line-insertion,
185262629Sdelphij    and line-deletion for screen-line movements. This algorithm is
186262629Sdelphij    more powerful than the 4.4BSD curses <code>quickch</code>
187262629Sdelphij    routine.</li>
18862449Speter
189262629Sdelphij    <li>Real support for terminals with the magic-cookie glitch.
190262629Sdelphij    The screen-update code will refrain from drawing a highlight if
191262629Sdelphij    the magic- cookie unattributed spaces required just before the
192262629Sdelphij    beginning and after the end would step on a non-space
193262629Sdelphij    character. It will automatically shift highlight boundaries
194262629Sdelphij    when doing so would make it possible to draw the highlight
195262629Sdelphij    without changing the visual appearance of the screen.</li>
19662449Speter
197262629Sdelphij    <li>It is possible to generate the library with a list of
198262629Sdelphij    pre-loaded fallback entries linked to it so that it can serve
199262629Sdelphij    those terminal types even when no terminfo tree or termcap file
200262629Sdelphij    is accessible (this may be useful for support of
201262629Sdelphij    screen-oriented programs that must run in single-user
202262629Sdelphij    mode).</li>
20362449Speter
204262629Sdelphij    <li>The tic(1)/captoinfo utility provided with ncurses has the
205262629Sdelphij    ability to translate many termcaps from the XENIX, IBM and
206262629Sdelphij    AT&amp;T extension sets.</li>
20762449Speter
208262629Sdelphij    <li>A BSD-like tset(1) utility is provided.</li>
20962449Speter
210262629Sdelphij    <li>The ncurses library and utilities will automatically read
211262629Sdelphij    terminfo entries from $HOME/.terminfo if it exists, and compile
212262629Sdelphij    to that directory if it exists and the user has no write access
213262629Sdelphij    to the system directory. This feature makes it easier for users
214262629Sdelphij    to have personal terminfo entries without giving up access to
215262629Sdelphij    the system terminfo directory.</li>
21676726Speter
217262629Sdelphij    <li>You may specify a path of directories to search for
218262629Sdelphij    compiled descriptions with the environment variable
219262629Sdelphij    TERMINFO_DIRS (this generalizes the feature provided by
220262629Sdelphij    TERMINFO under stock System V.)</li>
22176726Speter
222262629Sdelphij    <li>In terminfo source files, use capabilities may refer not
223262629Sdelphij    just to other entries in the same source file (as in System V)
224262629Sdelphij    but also to compiled entries in either the system terminfo
225262629Sdelphij    directory or the user's $HOME/.terminfo directory.</li>
22676726Speter
227262629Sdelphij    <li>A script (<strong>capconvert</strong>) is provided to help
228262629Sdelphij    BSD users transition from termcap to terminfo. It gathers the
229262629Sdelphij    information in a TERMCAP environment variable and/or a
230262629Sdelphij    ~/.termcap local entries file and converts it to an equivalent
231262629Sdelphij    local terminfo tree under $HOME/.terminfo.</li>
23276726Speter
233262629Sdelphij    <li>Automatic fallback to the /etc/termcap file can be compiled
234262629Sdelphij    in when it is not possible to build a terminfo tree. This
235262629Sdelphij    feature is neither fast nor cheap, you don't want to use it
236262629Sdelphij    unless you have to, but it's there.</li>
23776726Speter
238262629Sdelphij    <li>The table-of-entries utility <strong>toe</strong> makes it
239262629Sdelphij    easy for users to see exactly what terminal types are available
240262629Sdelphij    on the system.</li>
241184989Srafan
242262629Sdelphij    <li>The library meets the XSI requirement that every macro
243262629Sdelphij    entry point have a corresponding function which may be linked
244262629Sdelphij    (and will be prototype-checked) if the macro definition is
245262629Sdelphij    disabled with <code>#undef</code>.</li>
246184989Srafan
247262629Sdelphij    <li>An HTML "Introduction to Programming with NCURSES" document
248262629Sdelphij    provides a narrative introduction to the curses programming
249262629Sdelphij    interface.</li>
250262629Sdelphij  </ul>
251184989Srafan
252262629Sdelphij  <h1>State of the Package</h1>Numerous bugs present in earlier
253262629Sdelphij  versions have been fixed; the library is far more reliable than
254262629Sdelphij  it used to be. Bounds checking in many `dangerous' entry points
255262629Sdelphij  has been improved. The code is now type-safe according to gcc
256262629Sdelphij  -Wall. The library has been checked for malloc leaks and arena
257262629Sdelphij  corruption by the Purify memory-allocation tester.
258184989Srafan
259262629Sdelphij  <p>The ncurses code has been tested with a wide variety of
260262629Sdelphij  applications including (versions starting with those noted):</p>
26176726Speter
262262629Sdelphij  <dl>
263262629Sdelphij    <dt>cdk</dt>
26476726Speter
265262629Sdelphij    <dd>Curses Development Kit<br>
266262629Sdelphij    <a href=
267262629Sdelphij    "http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</a><br>
26876726Speter
269262629Sdelphij    <a href=
270262629Sdelphij    "http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a></dd>
27176726Speter
272262629Sdelphij    <dt>ded</dt>
27376726Speter
274262629Sdelphij    <dd>directory-editor<br>
275262629Sdelphij    <a href=
276262629Sdelphij    "http://invisible-island.net/ded/">http://invisible-island.net/ded/</a></dd>
27776726Speter
278262629Sdelphij    <dt>dialog</dt>
27976726Speter
280262629Sdelphij    <dd>the underlying application used in Slackware's setup, and
281262629Sdelphij    the basis for similar applications on GNU/Linux.<br>
282262629Sdelphij    <a href=
283262629Sdelphij    "http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</a></dd>
284184989Srafan
285262629Sdelphij    <dt>lynx</dt>
286184989Srafan
287262629Sdelphij    <dd>the character-screen WWW browser<br>
288262629Sdelphij    <a href=
289262629Sdelphij    "http://lynx.isc.org/release/">http://lynx.isc.org/release/</a></dd>
290184989Srafan
291262629Sdelphij    <dt>Midnight Commander</dt>
29276726Speter
293262629Sdelphij    <dd>file manager<br>
294262629Sdelphij    <a href=
295262629Sdelphij    "http://www.midnight-commander.org/">http://www.midnight-commander.org/</a></dd>
29676726Speter
297262629Sdelphij    <dt>mutt</dt>
29876726Speter
299262629Sdelphij    <dd>mail utility<br>
300262629Sdelphij    <a href="http://www.mutt.org/">http://www.mutt.org/</a></dd>
30176726Speter
302262629Sdelphij    <dt>ncftp</dt>
30362449Speter
304262629Sdelphij    <dd>file-transfer utility<br>
305262629Sdelphij    <a href="http://www.ncftp.com/">http://www.ncftp.com/</a></dd>
30676726Speter
307262629Sdelphij    <dt>nvi</dt>
30876726Speter
309262629Sdelphij    <dd>New vi versions 1.50 are able to use ncurses versions 1.9.7
310262629Sdelphij    and later.<br>
311262629Sdelphij    <a href=
312262629Sdelphij    "https://sites.google.com/a/bostic.com/keithbostic/nvi">https://sites.google.com/a/bostic.com/keithbostic/nvi</a><br>
313262629Sdelphij    </dd>
31476726Speter
315262629Sdelphij    <dt>pinfo</dt>
31676726Speter
317262629Sdelphij    <dd>Lynx-like info browser. <a href=
318262629Sdelphij    "https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</a></dd>
31976726Speter
320262629Sdelphij    <dt>tin</dt>
32176726Speter
322262629Sdelphij    <dd>newsreader, supporting color, MIME <a href=
323262629Sdelphij    "http://www.tin.org/">http://www.tin.org/</a></dd>
324262629Sdelphij  </dl>as well as some that use ncurses for the terminfo support
325262629Sdelphij  alone:
32676726Speter
327262629Sdelphij  <dl>
328262629Sdelphij    <dt>minicom</dt>
32976726Speter
330262629Sdelphij    <dd>terminal emulator<br>
331262629Sdelphij    <a href=
332262629Sdelphij    "http://alioth.debian.org/projects/minicom/">http://alioth.debian.org/projects/minicom/</a></dd>
33362449Speter
334262629Sdelphij    <dt>vile</dt>
33562449Speter
336262629Sdelphij    <dd>vi-like-emacs<br>
337262629Sdelphij    <a href=
338262629Sdelphij    "http://invisible-island.net/vile/">http://invisible-island.net/vile/</a></dd>
339262629Sdelphij  </dl>
34062449Speter
341262629Sdelphij  <p>The ncurses distribution includes a selection of test programs
342262629Sdelphij  (including a few games).</p>
34362449Speter
344262629Sdelphij  <h2>Who's Who and What's What</h2>Zeyd Ben-Halim started it from
345262629Sdelphij  a previous package pcurses, written by Pavel Curtis. Eric S.
346262629Sdelphij  Raymond continued development. J&uuml;rgen Pfeifer wrote most of
347262629Sdelphij  the form and menu libraries. Ongoing work is being done by
348262629Sdelphij  <a href="mailto:dickey@invisible-island.net">Thomas Dickey</a>.
349262629Sdelphij  Thomas Dickey acts as the maintainer for the Free Software
350262629Sdelphij  Foundation, which holds the copyright on ncurses. Contact the
351262629Sdelphij  current maintainers at <a href=
352262629Sdelphij  "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>.
35362449Speter
354262629Sdelphij  <p>To join the ncurses mailing list, please write email to
355262629Sdelphij  <code>bug-ncurses-request@gnu.org</code> containing the line:</p>
356262629Sdelphij  <pre>
357262629Sdelphij             subscribe &lt;name&gt;@&lt;host.domain&gt;
358262629Sdelphij</pre>
35962449Speter
360262629Sdelphij  <p>This list is open to anyone interested in helping with the
361262629Sdelphij  development and testing of this package.</p>
36262449Speter
363262629Sdelphij  <p>Beta versions of ncurses and patches to the current release
364262629Sdelphij  are made available at <a href=
365262629Sdelphij  "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
36662449Speter
367262629Sdelphij  <h2>Future Plans</h2>
36862449Speter
369262629Sdelphij  <ul>
370262629Sdelphij    <li>Extended-level XPG4 conformance, with internationalization
371262629Sdelphij    support.</li>
37262449Speter
373262629Sdelphij    <li>Ports to more systems, including DOS and Windows.</li>
374262629Sdelphij  </ul>We need people to help with these projects. If you are
375262629Sdelphij  interested in working on them, please join the ncurses list.
37662449Speter
377262629Sdelphij  <h2>Other Related Resources</h2>The distribution provides a newer
378262629Sdelphij  version of the terminfo-format terminal description file once
379262629Sdelphij  maintained by <a href="http://www.catb.org/~esr/terminfo/">Eric
380262629Sdelphij  Raymond</a>&nbsp;. Unlike the older version, the termcap and
381262629Sdelphij  terminfo data are provided in the same file, and provides several
382262629Sdelphij  user-definable extensions beyond the X/Open specification.
38362449Speter
384262629Sdelphij  <p>You can find lots of information on terminal-related topics
385262629Sdelphij  not covered in the terminfo file at <a href=
386262629Sdelphij  "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
387262629Sdelphij  Richard Shuford's archive</a>&nbsp;.</p>
388262629Sdelphij</body>
389262629Sdelphij</html>
390