123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- <!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>
|