123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- -------------------------------------------------------------------------------
- -- Copyright (c) 1998-2004,2006 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. --
- -------------------------------------------------------------------------------
- -- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $
- -------------------------------------------------------------------------------
- README file for the ncurses package
- See the file ANNOUNCE for a summary of ncurses features and ports.
- See the file INSTALL for instructions on how to build and install ncurses.
- See the file NEWS for a release history and bug-fix notes.
- See the file TO-DO for things that still need doing, including known bugs.
- Browse the file misc/ncurses-intro.html for narrative descriptions of how
- to use ncurses and the panel, menu, and form libraries.
-
- Browse the file doc/html/hackguide.html for a tour of the package internals.
- ROADMAP AND PACKAGE OVERVIEW:
- You should be reading this file in a directory called: ncurses-d.d, where d.d
- is the current version number (see the dist.mk file in this directory for
- that). There should be a number of subdirectories, including `c++', `form',
- `man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'.
- (The 'tack' program may be distributed separately).
- A full build/install of this package typically installs several libraries, a
- handful of utilities, and a database hierarchy. Here is an inventory of the
- pieces:
- The libraries are:
- libncurses.a (normal)
- libncurses.so (shared)
- libncurses_g.a (debug and trace code enabled)
- libncurses_p.a (profiling enabled)
- libpanel.a (normal)
- libpanel.so (shared)
- libpanel_g.a (debug and trace code enabled)
- libmenu.a (normal)
- libmenu.so (shared)
- libmenu_g.a (debug enabled)
- libform.a (normal)
- libform.so (shared)
- libform_g.a (debug enabled)
- If you configure using the --enable-widec option, a "w" is appended to the
- library names (e.g., libncursesw.a), and the resulting libraries support
- wide-characters, e.g., via a UTF-8 locale. The corresponding header files
- are compatible with the non-wide-character configuration; wide-character
- features are provided by ifdef's in the header files. The wide-character
- library interfaces are not binary-compatible with the non-wide-character
- version.
- The ncurses libraries implement the curses API. The panel, menu and forms
- libraries implement clones of the SVr4 panel, menu and forms APIs. The source
- code for these lives in the `ncurses', `panel', `menu', and `form' directories
- respectively.
- In the `c++' directory, you'll find code that defines an interface to the
- curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++
- to test it. These class definition modules are not installed by the 'make
- install.libs' rule as libncurses++.
- In the `Ada95' directory, you'll find code and documentation for an
- Ada95 binding of the curses API, to be used with the GNAT compiler.
- This binding is built by a normal top-level `make' if configure detects
- an usable version of GNAT (3.11 or above). It is not installed automatically.
- See the Ada95 directory for more build and installation instructions and
- for documentation of the binding.
- To do its job, the ncurses code needs your terminal type to be set in the
- environment variable TERM (normally set by your OS; under UNIX, getty(1)
- typically does this, but you can override it in your .profile); and, it needs a
- database of terminal descriptions in which to look up your terminal type's
- capabilities.
- In older (V7/BSD) versions of curses, the database was a flat text file,
- /etc/termcap; in newer (USG/USL) versions, the database is a hierarchy of
- fast-loading binary description blocks under /usr/lib/terminfo. These binary
- blocks are compiled from an improved editable text representation called
- `terminfo' format (documented in man/terminfo.5). The ncurses library can use
- either /etc/termcap or the compiled binary terminfo blocks, but prefers the
- second form.
- In the `misc' directory, there is a text file terminfo.src, in editable
- terminfo format, which can be used to generate the terminfo binaries (that's
- what make install.data does). If the package was built with the
- --enable-termcap option enabled, and the ncurses library cannot find a terminfo
- description for your terminal, it will fall back to the termcap file supplied
- with your system (which the ncurses package installation leaves strictly
- alone).
- The utilities are as follows:
- tic -- terminfo source to binary compiler
- infocmp -- terminfo binary to source decompiler/comparator
- clear -- emits clear-screen for current terminal
- tput -- shell-script access to terminal capabilities.
- toe -- table of entries utility
- tset -- terminal-initialization utility
- The first two (tic and infocmp) are used for manipulating terminfo
- descriptions; the next two (clear and tput) are for use in shell scripts. The
- last (tset) is provided for 4.4BSD compatibility. The source code for all of
- these lives in the `progs' directory.
- Detailed documentation for all libraries and utilities can be found in the
- `man' and `doc' directories. An HTML introduction to ncurses, panels, and
- menus programming lives in the `doc/html' directory. Manpages in HTML format
- are under `doc/html/man'.
- The `test' directory contains programs that can be used to verify or
- demonstrate the functions of the ncurses libraries. See test/README for
- descriptions of these programs. Notably, the `ncurses' utility is designed to
- help you systematically exercise the library functions.
- AUTHORS:
- Pavel Curtis:
- wrote the original ncurses
- Zeyd M. Ben-Halim:
- port of original to Linux and many enhancements.
- Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0):
- configuration scripts, porting, mods to adhere to XSI Curses in the
- areas of background color, terminal modes. Also memory leak testing,
- the wresize, default colors and key definition extensions and numerous
- bug fixes (more than half of those enumerated in NEWS beginning with
- the internal release 1.8.9).
- Florian La Roche (official maintainer for FSF's ncurses 4.2)
- Beginning with release 4.2, ncurses is distributed under an MIT-style
- license.
- Eric S. Raymond:
- the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1),
- toe(1), most of tic(1), trace levels, the HTML intro, wgetnstr() and
- many other entry points, the cursor-movement optimization, the
- scroll-pack optimizer for vertical motions, the mouse interface and
- xterm mouse support, and the ncurses test program.
- Juergen Pfeifer
- The menu and form libraries, C++ bindings for ncurses, menus, forms and
- panels, as well as the Ada95 binding. Ongoing support for panel.
- CONTRIBUTORS:
- Alexander V. Lukyanov
- for numerous fixes and improvements to the optimization logic.
- David MacKenzie
- for first-class bug-chasing and methodical testing.
- Ross Ridge
- for the code that hacks termcap parameterized strings into terminfo.
- Warren Tucker and Gerhard Fuernkranz,
- for writing and sending the panel library.
- Hellmuth Michaelis,
- for many patches and testing the optimization code.
- Eric Newton, Ulrich Drepper, and Anatoly Ivasyuk:
- the C++ code.
- Jonathan Ross,
- for lessons in using sed.
- Keith Bostic (maintainer of 4.4BSD curses)
- for help, criticism, comments, bug-finding, and being willing to
- deep-six BSD curses for this one when it grew up.
- Richard Stallman,
- for his commitment to making ncurses free software.
- Countless other people have contributed by reporting bugs, sending fixes,
- suggesting improvements, and generally whining about ncurses :-)
- BUGS:
- See the INSTALL file for bug and developer-list addresses.
- The Hacker's Guide in the doc directory includes some guidelines
- on how to report bugs in ways that will get them fixed most quickly.
|