| ------------------------------------------------------------------------------- | |
| -- 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. |