1-- $Id: README,v 1.20 2000/08/12 23:31:21 tom Exp $ 2------------------------------------------------------------------------------- 3 README file for the ncurses package 4 5See the file ANNOUNCE for a summary of ncurses features and ports. 6See the file INSTALL for instructions on how to build and install ncurses. 7See the file NEWS for a release history and bug-fix notes. 8See the file TO-DO for things that still need doing, including known bugs. 9 10Browse the file misc/ncurses-intro.html for narrative descriptions of how 11to use ncurses and the panel, menu, and form libraries. 12 13Browse the file doc/html/hackguide.html for a tour of the package internals. 14 15ROADMAP AND PACKAGE OVERVIEW: 16 17You should be reading this file in a directory called: ncurses-d.d, where d.d 18is the current version number (see the dist.mk file in this directory for 19that). There should be a number of subdirectories, including `c++', `form', 20`man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'. 21(The 'tack' program may be distributed separately). 22 23A full build/install of this package typically installs several libraries, a 24handful of utilities, and a database hierarchy. Here is an inventory of the 25pieces: 26 27The libraries are: 28 29 libncurses.a (normal) 30 libncurses.so (shared) 31 libncurses_g.a (debug and trace code enabled) 32 libncurses_p.a (profiling enabled) 33 34 libpanel.a (normal) 35 libpanel.so (shared) 36 libpanel_g.a (debug and trace code enabled) 37 38 libmenu.a (normal) 39 libmenu.so (shared) 40 libmenu_g.a (debug enabled) 41 42 libform.a (normal) 43 libform.so (shared) 44 libform_g.a (debug enabled) 45 46The ncurses libraries implement the curses API. The panel, menu and forms 47libraries implement clones of the SVr4 panel, menu and forms APIs. The source 48code for these lives in the `ncurses', `panel', `menu', and `form' directories 49respectively. 50 51In the `c++' directory, you'll find code that defines an interface to the 52curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++ 53to test it. These class definition modules are not installed by the 'make 54install.libs' rule as libncurses++. 55 56In the `Ada95' directory, you'll find code and documentation for an 57Ada95 binding of the curses API, to be used with the GNAT compiler. 58This binding is built by a normal top-level `make' if configure detects 59an usable version of GNAT (3.10 or above). It is not installed automatically. 60See the Ada95 directory for more build and installation instructions and 61for documentation of the binding. 62 63To do its job, the ncurses code needs your terminal type to be set in the 64environment variable TERM (normally set by your OS; under UNIX, getty(1) 65typically does this, but you can override it in your .profile); and, it needs a 66database of terminal descriptions in which to look up your terminal type's 67capabilities. 68 69In older (V7/BSD) versions of curses, the database was a flat text file, 70/etc/termcap; in newer (USG/USL) versions, the database is a hierarchy of 71fast-loading binary description blocks under /usr/lib/terminfo. These binary 72blocks are compiled from an improved editable text representation called 73`terminfo' format (documented in man/terminfo.5). The ncurses library can use 74either /etc/termcap or the compiled binary terminfo blocks, but prefers the 75second form. 76 77In the `misc' directory, there is a text file terminfo.src, in editable 78terminfo format, which can be used to generate the terminfo binaries (that's 79what make install.data does). If the package was built with the 80--enable-termcap option enabled, and the ncurses library cannot find a terminfo 81description for your terminal, it will fall back to the termcap file supplied 82with your system (which the ncurses package installation leaves strictly 83alone). 84 85The utilities are as follows: 86 87 tic -- terminfo source to binary compiler 88 infocmp -- terminfo binary to source decompiler/comparator 89 clear -- emits clear-screen for current terminal 90 tput -- shell-script access to terminal capabilities. 91 toe -- table of entries utility 92 tset -- terminal-initialization utility 93 94The first two (tic and infocmp) are used for manipulating terminfo 95descriptions; the next two (clear and tput) are for use in shell scripts. The 96last (tset) is provided for 4.4BSD compatibility. The source code for all of 97these lives in the `progs' directory. 98 99Detailed documentation for all libraries and utilities can be found in the 100`man' and `doc' directories. An HTML introduction to ncurses, panels, and 101menus programming lives in the `doc/html' directory. Manpages in HTML format 102are under `doc/html/man'. 103 104The `test' directory contains programs that can be used to verify or 105demonstrate the functions of the ncurses libraries. See test/README for 106descriptions of these programs. Notably, the `ncurses' utility is designed to 107help you systematically exercise the library functions. 108 109AUTHORS: 110 111Pavel Curtis: 112 wrote the original ncurses 113 114Zeyd M. Ben-Halim: 115 port of original to Linux and many enhancements. 116 117Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0): 118 configuration scripts, porting, mods to adhere to XSI Curses in the 119 areas of background color, terminal modes. Also memory leak testing, 120 the wresize, default colors and key definition extensions and numerous 121 bug fixes (more than half of those enumerated in NEWS beginning with 122 the internal release 1.8.9). 123 124Florian La Roche (official maintainer for FSF's ncurses 4.2) 125 Beginning with release 4.2, ncurses is distributed under an MIT-style 126 license. 127 128Eric S. Raymond: 129 the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1), 130 toe(1), most of tic(1), trace levels, the HTML intro, wgetnstr() and 131 many other entry points, the cursor-movement optimization, the 132 scroll-pack optimizer for vertical motions, the mouse interface and 133 xterm mouse support, and the ncurses test program. 134 135Juergen Pfeifer 136 The menu and form libraries, C++ bindings for ncurses, menus, forms and 137 panels, as well as the Ada95 binding. Ongoing support for panel. 138 139CONTRIBUTORS: 140 141Alexander V. Lukyanov 142 for numerous fixes and improvements to the optimization logic. 143 144David MacKenzie 145 for first-class bug-chasing and methodical testing. 146 147Ross Ridge 148 for the code that hacks termcap parameterized strings into terminfo. 149 150Warren Tucker and Gerhard Fuernkranz, 151 for writing and sending the panel library. 152 153Hellmuth Michaelis, 154 for many patches and testing the optimization code. 155 156Eric Newton, Ulrich Drepper, and Anatoly Ivasyuk: 157 the C++ code. 158 159Jonathan Ross, 160 for lessons in using sed. 161 162Keith Bostic (maintainer of 4.4BSD curses) 163 for help, criticism, comments, bug-finding, and being willing to 164 deep-six BSD curses for this one when it grew up. 165 166Richard Stallman, 167 for his commitment to making ncurses free software. 168 169Countless other people have contributed by reporting bugs, sending fixes, 170suggesting improvements, and generally whining about ncurses :-) 171 172BUGS: 173 See the INSTALL file for bug and developer-list addresses. 174 The Hacker's Guide in the doc directory includes some guidelines 175 on how to report bugs in ways that will get them fixed most quickly. 176