mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2025-03-07 16:16:53 +08:00
171 lines
6.6 KiB
Plaintext
171 lines
6.6 KiB
Plaintext
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 misc/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.d,
|
|
where d.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', and `Ada95'.
|
|
|
|
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_g.a (debug and trace code enabled)
|
|
|
|
libmenu.a (normal)
|
|
libmenu_g.a (debug enabled)
|
|
|
|
libform.a (normal)
|
|
libform_g.a (debug enabled)
|
|
|
|
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 and panels library packaged as a C++ class, and a demo program in C++
|
|
to test it. These class definition modules are not installed anywhere by
|
|
default; it's up to you what you do with them.
|
|
|
|
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.05 or above). It is not installed automatically.
|
|
See the Ada95 directory for more build and installation instructions and
|
|
for documentation of the binding.
|
|
|
|
In order 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
|
|
--with-termcap option enabled, and the ncurses library can't 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.
|
|
tset -- terminal-initialization utility
|
|
toe -- table of entries utility
|
|
|
|
The first two are used for manipulating terminfo descriptions; the next two
|
|
are for use in shell scripts. The last 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' directory. An HTML introduction to ncurses, panels, and
|
|
menus programming lives in the `misc' directory.
|
|
|
|
The `test' directory contains programs that can be used to verify 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.
|
|
|
|
RELATED RESOURCES:
|
|
|
|
This distribution now includes (and uses) a copy of the master terminfo
|
|
database maintained by Eric Raymond. This database (which is the
|
|
official descendant of the 4.4BSD termcap file) changes faster than this
|
|
code does.
|
|
|
|
You can surf to a WWW page that carries the current terminfo master file,
|
|
and news about ncurses, at
|
|
|
|
http://www.ccil.org/~esr/ncurses.html
|
|
|
|
AUTHORS:
|
|
|
|
Pavel Curtis:
|
|
wrote the original ncurses
|
|
|
|
Zeyd M. Ben-Halim:
|
|
port of original to Linux and many enhancements.
|
|
|
|
Thomas Dickey (maintainer since 1.9.9e):
|
|
configuration scripts, porting, mods to adhere to XSI Curses in the
|
|
areas of background color, terminal modes. Also memory leak testing,
|
|
the wresize extension and numerous bug fixes (more than half of those
|
|
enumerated in NEWS since release 1.9.2d)
|
|
|
|
Eric S. Raymond:
|
|
the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1),
|
|
toe(1), most of tic(1), src/lib_twait.c, 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 code, and the Ada95 binding. Ongoing support for
|
|
panel.
|
|
|
|
CONTRIBUTORS:
|
|
|
|
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.
|
|
|
|
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 misc directory includes some guidelines
|
|
on how to report bugs in ways that will get them fixed most quickly.
|