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