| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <!-- |
| $Id: announce.html.in,v 1.85 2011/04/04 00:05:34 tom Exp $ |
| **************************************************************************** |
| * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * |
| * * |
| * Permission is hereby granted, free of charge, to any person obtaining a * |
| * copy of this software and associated documentation files (the * |
| * "Software"), to deal in the Software without restriction, including * |
| * without limitation the rights to use, copy, modify, merge, publish, * |
| * distribute, distribute with modifications, sublicense, and/or sell * |
| * copies of the Software, and to permit persons to whom the Software is * |
| * furnished to do so, subject to the following conditions: * |
| * * |
| * The above copyright notice and this permission notice shall be included * |
| * in all copies or substantial portions of the Software. * |
| * * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| * * |
| * Except as contained in this notice, the name(s) of the above copyright * |
| * holders shall not be used in advertising or otherwise to promote the * |
| * sale, use or other dealings in this Software without prior written * |
| * authorization. * |
| **************************************************************************** |
| --> |
| |
| <html> |
| <head> |
| <meta name="generator" content= |
| "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org"> |
| |
| <title>Announcing ncurses @VERSION@</title> |
| <link rev="made" href="mailto:bug-ncurses@gnu.org"> |
| <meta http-equiv="Content-Type" content= |
| "text/html; charset=us-ascii"> |
| </head> |
| |
| <body> |
| <h1>Announcing ncurses @VERSION@</h1>The ncurses (new curses) |
| library is a free software emulation of curses in System V |
| Release 4.0, and more. It uses terminfo format, supports pads and |
| color and multiple highlights and forms characters and |
| function-key mapping, and has all the other SYSV-curses |
| enhancements over BSD curses. |
| |
| <p>In mid-June 1995, the maintainer of 4.4BSD curses declared |
| that he considered 4.4BSD curses obsolete, and encouraged the |
| keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to |
| switch over to ncurses.</p> |
| |
| <p>The ncurses code was developed under GNU/Linux. It has been in |
| use for some time with OpenBSD as the system curses library, and |
| on FreeBSD and NetBSD as an external package. It should port |
| easily to any ANSI/POSIX-conforming UNIX. It has even been ported |
| to OS/2 Warp!</p> |
| |
| <p>The distribution includes the library and support utilities, |
| including a terminfo compiler tic(1), a decompiler infocmp(1), |
| clear(1), tput(1), tset(1), and a termcap conversion tool |
| captoinfo(1). Full manual pages are provided for the library and |
| tools.</p> |
| |
| <p>The ncurses distribution is available via anonymous FTP at the |
| GNU distribution site <a href= |
| "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a> .<br> |
| |
| It is also available at <a href= |
| "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.8; very few applications |
| will require recompilation, depending on the platform. These are |
| the highlights from the change-log since ncurses 5.8 release. |
| <p> |
| This is a bug-fix release, correcting a small number of urgent problems |
| in the ncurses library from the 5.8 release. |
| <p> |
| It also improves the Ada95 binding: |
| <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>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>. |
| <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. |
| </ul> |
| |
| <h1>Features of Ncurses</h1>The ncurses package is fully |
| compatible with SVr4 (System V Release 4) curses: |
| |
| <ul> |
| <li>All 257 of the SVr4 calls have been implemented (and are |
| documented).</li> |
| |
| <li>Full support for SVr4 curses features including keyboard |
| mapping, color, forms-drawing with ACS characters, and |
| automatic recognition of keypad and function keys.</li> |
| |
| <li>An emulation of the SVr4 panels library, supporting a stack |
| of windows with backing store, is included.</li> |
| |
| <li>An emulation of the SVr4 menus library, supporting a |
| uniform but flexible interface for menu programming, is |
| included.</li> |
| |
| <li>An emulation of the SVr4 form library, supporting data |
| collection through on-screen forms, is included.</li> |
| |
| <li>Binary terminfo entries generated by the ncurses tic(1) |
| implementation are bit-for-bit-compatible with the entry format |
| SVr4 curses uses.</li> |
| |
| <li>The utilities have options to allow you to filter terminfo |
| entries for use with less capable |
| <strong>curses</strong>/<strong>terminfo</strong> versions such |
| as the HP/UX and AIX ports.</li> |
| </ul>The ncurses package also has many useful extensions over |
| SVr4: |
| |
| <ul> |
| <li>The API is 8-bit clean and base-level conformant with the |
| X/OPEN curses specification, XSI curses (that is, it implements |
| all BASE level features, and most EXTENDED features). It |
| includes many function calls not supported under SVr4 curses |
| (but portability of all calls is documented so you can use the |
| SVr4 subset only).</li> |
| |
| <li>Unlike SVr3 curses, ncurses can write to the |
| rightmost-bottommost corner of the screen if your terminal has |
| an insert-character capability.</li> |
| |
| <li>Ada95 and C++ bindings.</li> |
| |
| <li>Support for mouse event reporting with X Window xterm and |
| FreeBSD and OS/2 console windows.</li> |
| |
| <li>Extended mouse support via Alessandro Rubini's gpm |
| package.</li> |
| |
| <li>The function <code>wresize</code> allows you to resize |
| windows, preserving their data.</li> |
| |
| <li>The function <code>use_default_colors</code> allows you to |
| use the terminal's default colors for the default color pair, |
| achieving the effect of transparent colors.</li> |
| |
| <li>The functions <code>keyok</code> and |
| <code>define_key</code> allow you to better control the use of |
| function keys, e.g., disabling the ncurses KEY_MOUSE, or by |
| defining more than one control sequence to map to a given key |
| code.</li> |
| |
| <li>Support for 256-color terminals, such as modern xterm, when |
| configured using the <code>--enable-ext-colors</code> |
| option.</li> |
| |
| <li>Support for 16-color terminals, such as <em>aixterm</em> |
| and <em>modern xterm</em>.</li> |
| |
| <li>Better cursor-movement optimization. The package now |
| features a cursor-local-movement computation more efficient |
| than either BSD's or System V's.</li> |
| |
| <li>Super hardware scrolling support. The screen-update code |
| incorporates a novel, simple, and cheap algorithm that enables |
| it to make optimal use of hardware scrolling, line-insertion, |
| and line-deletion for screen-line movements. This algorithm is |
| more powerful than the 4.4BSD curses <code>quickch</code> |
| routine.</li> |
| |
| <li>Real support for terminals with the magic-cookie glitch. |
| The screen-update code will refrain from drawing a highlight if |
| the magic- cookie unattributed spaces required just before the |
| beginning and after the end would step on a non-space |
| character. It will automatically shift highlight boundaries |
| when doing so would make it possible to draw the highlight |
| without changing the visual appearance of the screen.</li> |
| |
| <li>It is possible to generate the library with a list of |
| pre-loaded fallback entries linked to it so that it can serve |
| those terminal types even when no terminfo tree or termcap file |
| is accessible (this may be useful for support of |
| screen-oriented programs that must run in single-user |
| mode).</li> |
| |
| <li>The tic(1)/captoinfo utility provided with ncurses has the |
| ability to translate many termcaps from the XENIX, IBM and |
| AT&T extension sets.</li> |
| |
| <li>A BSD-like tset(1) utility is provided.</li> |
| |
| <li>The ncurses library and utilities will automatically read |
| terminfo entries from $HOME/.terminfo if it exists, and compile |
| to that directory if it exists and the user has no write access |
| to the system directory. This feature makes it easier for users |
| to have personal terminfo entries without giving up access to |
| the system terminfo directory.</li> |
| |
| <li>You may specify a path of directories to search for |
| compiled descriptions with the environment variable |
| TERMINFO_DIRS (this generalizes the feature provided by |
| TERMINFO under stock System V.)</li> |
| |
| <li>In terminfo source files, use capabilities may refer not |
| just to other entries in the same source file (as in System V) |
| but also to compiled entries in either the system terminfo |
| directory or the user's $HOME/.terminfo directory.</li> |
| |
| <li>A script (<strong>capconvert</strong>) is provided to help |
| BSD users transition from termcap to terminfo. It gathers the |
| information in a TERMCAP environment variable and/or a |
| ~/.termcap local entries file and converts it to an equivalent |
| local terminfo tree under $HOME/.terminfo.</li> |
| |
| <li>Automatic fallback to the /etc/termcap file can be compiled |
| in when it is not possible to build a terminfo tree. This |
| feature is neither fast nor cheap, you don't want to use it |
| unless you have to, but it's there.</li> |
| |
| <li>The table-of-entries utility <strong>toe</strong> makes it |
| easy for users to see exactly what terminal types are available |
| on the system.</li> |
| |
| <li>The library meets the XSI requirement that every macro |
| entry point have a corresponding function which may be linked |
| (and will be prototype-checked) if the macro definition is |
| disabled with <code>#undef</code>.</li> |
| |
| <li>An HTML "Introduction to Programming with NCURSES" document |
| provides a narrative introduction to the curses programming |
| interface.</li> |
| </ul> |
| |
| <h1>State of the Package</h1>Numerous bugs present in earlier |
| versions have been fixed; the library is far more reliable than |
| it used to be. Bounds checking in many `dangerous' entry points |
| has been improved. The code is now type-safe according to gcc |
| -Wall. The library has been checked for malloc leaks and arena |
| corruption by the Purify memory-allocation tester. |
| |
| <p>The ncurses code has been tested with a wide variety of |
| applications including (versions starting with those noted):</p> |
| |
| <dl> |
| <dt>cdk</dt> |
| |
| <dd>Curses Development Kit<br> |
| <a href= |
| "http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</a><br> |
| |
| <a href= |
| "http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a></dd> |
| |
| <dt>ded</dt> |
| |
| <dd>directory-editor<br> |
| <a href= |
| "http://invisible-island.net/ded/">http://invisible-island.net/ded/</a></dd> |
| |
| <dt>dialog</dt> |
| |
| <dd>the underlying application used in Slackware's setup, and |
| the basis for similar applications on GNU/Linux.<br> |
| <a href= |
| "http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</a></dd> |
| |
| <dt>lynx</dt> |
| |
| <dd>the character-screen WWW browser<br> |
| <a href= |
| "http://lynx.isc.org/release/">http://lynx.isc.org/release/</a></dd> |
| |
| <dt>Midnight Commander</dt> |
| |
| <dd>file manager<br> |
| <a href= |
| "http://www.midnight-commander.org/">http://www.midnight-commander.org/</a></dd> |
| |
| <dt>mutt</dt> |
| |
| <dd>mail utility<br> |
| <a href="http://www.mutt.org/">http://www.mutt.org/</a></dd> |
| |
| <dt>ncftp</dt> |
| |
| <dd>file-transfer utility<br> |
| <a href="http://www.ncftp.com/">http://www.ncftp.com/</a></dd> |
| |
| <dt>nvi</dt> |
| |
| <dd>New vi versions 1.50 are able to use ncurses versions 1.9.7 |
| and later.<br> |
| <a href= |
| "https://sites.google.com/a/bostic.com/keithbostic/nvi">https://sites.google.com/a/bostic.com/keithbostic/nvi</a><br> |
| </dd> |
| |
| <dt>pinfo</dt> |
| |
| <dd>Lynx-like info browser. <a href= |
| "https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</a></dd> |
| |
| <dt>tin</dt> |
| |
| <dd>newsreader, supporting color, MIME <a href= |
| "http://www.tin.org/">http://www.tin.org/</a></dd> |
| </dl>as well as some that use ncurses for the terminfo support |
| alone: |
| |
| <dl> |
| <dt>minicom</dt> |
| |
| <dd>terminal emulator<br> |
| <a href= |
| "http://alioth.debian.org/projects/minicom/">http://alioth.debian.org/projects/minicom/</a></dd> |
| |
| <dt>vile</dt> |
| |
| <dd>vi-like-emacs<br> |
| <a href= |
| "http://invisible-island.net/vile/">http://invisible-island.net/vile/</a></dd> |
| </dl> |
| |
| <p>The ncurses distribution includes a selection of test programs |
| (including a few games).</p> |
| |
| <h2>Who's Who and What's What</h2>Zeyd Ben-Halim started it from |
| a previous package pcurses, written by Pavel Curtis. Eric S. |
| Raymond continued development. Jürgen Pfeifer wrote most of |
| the form and menu libraries. Ongoing work is being done by |
| <a href="mailto:dickey@invisible-island.net">Thomas Dickey</a>. |
| Thomas Dickey acts as the maintainer for the Free Software |
| Foundation, which holds the copyright on ncurses. Contact the |
| current maintainers at <a href= |
| "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>. |
| |
| <p>To join the ncurses mailing list, please write email to |
| <code>bug-ncurses-request@gnu.org</code> containing the line:</p> |
| <pre> |
| subscribe <name>@<host.domain> |
| </pre> |
| |
| <p>This list is open to anyone interested in helping with the |
| development and testing of this package.</p> |
| |
| <p>Beta versions of ncurses and patches to the current release |
| are made available at <a href= |
| "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p> |
| |
| <h2>Future Plans</h2> |
| |
| <ul> |
| <li>Extended-level XPG4 conformance, with internationalization |
| support.</li> |
| |
| <li>Ports to more systems, including DOS and Windows.</li> |
| </ul>We need people to help with these projects. If you are |
| interested in working on them, please join the ncurses list. |
| |
| <h2>Other Related Resources</h2>The distribution provides a newer |
| version of the terminfo-format terminal description file once |
| maintained by <a href="http://www.catb.org/~esr/terminfo/">Eric |
| Raymond</a> . Unlike the older version, the termcap and |
| terminfo data are provided in the same file, and provides several |
| user-definable extensions beyond the X/Open specification. |
| |
| <p>You can find lots of information on terminal-related topics |
| not covered in the terminfo file at <a href= |
| "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal"> |
| Richard Shuford's archive</a> .</p> |
| </body> |
| </html> |