README revision 66963
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