mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-26 11:47:31 +00:00
73f0a83d68
Requested by: bapt
422 lines
17 KiB
HTML
422 lines
17 KiB
HTML
<!--
|
|
$Id: announce.html.in,v 1.89 2013/05/18 10:12:25 tom Exp $
|
|
****************************************************************************
|
|
* Copyright (c) 1998-2011,2013 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. *
|
|
****************************************************************************
|
|
-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Linux (vers 25 March 2009), 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>
|
|
|
|
<p>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>
|
|
|
|
<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>
|
|
|
|
<p>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>
|
|
|
|
<p>This is a bug-fix release, correcting a small number of urgent
|
|
problems in the ncurses library from the 5.8 release.</p>
|
|
|
|
<p>It also improves the Ada95 binding:</p>
|
|
|
|
<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>
|
|
|
|
<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>.</p>
|
|
</li>
|
|
|
|
<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.</li>
|
|
</ul>
|
|
|
|
<h1>Features of Ncurses</h1>
|
|
|
|
<p>The ncurses package is fully compatible with SVr4 (System V
|
|
Release 4) curses:</p>
|
|
|
|
<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>
|
|
|
|
<p>The ncurses package also has many useful extensions over
|
|
SVr4:</p>
|
|
|
|
<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>
|
|
|
|
<p>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>
|
|
|
|
<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>
|
|
|
|
<p>as well as some that use ncurses for the terminfo support
|
|
alone:</p>
|
|
|
|
<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>
|
|
|
|
<p>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>
|
|
|
|
<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>
|
|
|
|
<p>There is an archive of the mailing list here:</p>
|
|
|
|
<p><a href=
|
|
"http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
|
|
(also <a href=
|
|
"https://lists.gnu.org/archive/html/bug-ncurses">https</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>
|
|
|
|
<p>We need people to help with these projects. If you are
|
|
interested in working on them, please join the ncurses list.</p>
|
|
|
|
<h2>Other Related Resources</h2>
|
|
|
|
<p>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>
|
|
|
|
<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>
|