aboutsummaryrefslogtreecommitdiff
path: root/contrib/ncurses/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/INSTALL')
-rw-r--r--contrib/ncurses/INSTALL216
1 files changed, 208 insertions, 8 deletions
diff --git a/contrib/ncurses/INSTALL b/contrib/ncurses/INSTALL
index 5033c44bab7e..9814990daf1c 100644
--- a/contrib/ncurses/INSTALL
+++ b/contrib/ncurses/INSTALL
@@ -1,7 +1,8 @@
--- $Id: INSTALL,v 1.33 1999/09/18 23:04:36 tom Exp $
+-- $Id: INSTALL,v 1.36 2000/05/06 17:30:14 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
+
************************************************************
* READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
************************************************************
@@ -40,7 +41,9 @@ If you are using anything but (a) Linux, or (b) one of the 4.4BSD-based
i386 Unixes, go read the Portability section in the TO-DO file before you
do anything else.
+
REQUIREMENTS:
+------------
You will need the following in order to build and install ncurses under UNIX:
@@ -52,7 +55,9 @@ You will need the following in order to build and install ncurses under UNIX:
Ncurses has been also built in the OS/2 EMX environment.
+
INSTALLATION PROCEDURE:
+----------------------
1. First, decide whether you want ncurses to replace your existing library (in
which case you'll need super-user privileges) or be installed in parallel
@@ -137,7 +142,7 @@ INSTALLATION PROCEDURE:
verify that ncurses functions correctly before doing an install that
may overwrite system files. Read the file test/README for details on
the test programs.
-
+
NOTE: You must have installed the terminfo database, or set the
environment variable $TERMINFO to point to a SVr4-compatible terminfo
database before running the test programs. Not all vendors' terminfo
@@ -205,7 +210,7 @@ INSTALLATION PROCEDURE:
the configure script to not attempt to determine the type of 'bool'
which may be supported by C++. IF YOU USE THIS OPTION, BE ADVISED THAT
YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
-
+
7. If you're running an older Linux, you must either (a) tell Linux that the
console terminal type is `linux' or (b) make a link to or copy of the
linux entry in the appropriate place under your terminfo directory, named
@@ -226,7 +231,193 @@ INSTALLATION PROCEDURE:
and you'll have to redo it. There is no need to have entries for all
possible screen sizes, ncurses will figure out the size automatically.
+
+COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
+--------------------------------------------
+
+ Because ncurses implements the X/Open Curses Specification, its interface
+ is fairly stable. That does not mean the interface does not change.
+ Changes are made to the documented interfaces when we find differences
+ between ncurses and X/Open or implementations which they certify (such as
+ Solaris). We add extensions to those interfaces to solve problems not
+ addressed by the original curses design, but those must not conflict with
+ the X/Open documentation.
+
+ Here are some of the major interface changes, and related problems which
+ you may encounter when building a system with different versions of
+ ncurses:
+
+ 5.0
+ Interface changes:
+
+ + implemented the wcolor_set() and slk_color() functions.
+
+ + move macro winch to a function, to hide details of struct ldat
+
+ + corrected prototypes for slk_* functions, using chtype rather than
+ attr_t.
+
+ + the slk_attr_{set,off,on} functions need an additional void*
+ parameter according to XSI.
+
+ + modified several prototypes to correspond with 1997 version of X/Open
+ Curses: [w]attr_get(), [w]attr_set(), border_set() have different
+ parameters. Some functions were renamed or misspelled:
+ erase_wchar(), in_wchntr(), mvin_wchntr(). Some developers have used
+ attr_get().
+
+ Added extensions: keybound(), curses_version().
+
+ Terminfo database changes:
+
+ + change translation for termcap 'rs' to terminfo 'rs2', which is
+ the documented equivalent, rather than 'rs1'.
+
+ The problems are subtler in recent releases.
+
+ a) This release provides users with the ability to define their own
+ terminal capability extensions, like termcap. To accomplish this,
+ we redesigned the TERMTYPE struct (in term.h). Very few
+ applications use this struct. They must be recompiled to work with
+ the 5.0 library.
+
+ a) If you use the extended terminfo names (i.e., you used configure
+ --enable-tcap-names), the resulting terminfo database can have some
+ entries which are not readable by older versions of ncurses. This
+ is a bug in the older versions:
+
+ + the terminfo database stores booleans, numbers and strings in
+ arrays. The capabilities that are listed in the arrays are
+ specified by X/Open. ncurses recognizes a number of obsolete and
+ extended names which are stored past the end of the specified
+ entries.
+
+ + a change to read_entry.c in 951001 made the library do an lseek()
+ call incorrectly skipping data which is already read from the
+ string array. This happens when the number of strings in the
+ terminfo data file is greater than STRCOUNT, the number of
+ specified and obsolete or extended strings.
+
+ + as part of alignment with the X/Open final specification, in the
+ 990109 patch we added two new terminfo capabilities:
+ set_a_attributes and set_pglen_inch). This makes the indices for
+ the obsolete and extended capabilities shift up by 2.
+
+ + the last two capabilities in the obsolete/extended list are memu
+ and meml, which are found in most terminfo descriptions for xterm.
+
+ When trying to read this terminfo entry, the spurious lseek()
+ causes the library to attempt to read the final portion of the
+ terminfo data (the text of the string capabilities) 4 characters
+ past its starting point, and reads 4 characters too few. The
+ library rejects the data, and applications are unable to
+ initialize that terminal type.
+
+ FIX: remove memu and meml from the xterm description. They are
+ obsolete, not used by ncurses. (It appears that the feature was
+ added to xterm to make it more like hpterm).
+
+ This is not a problem if you do not use the -x option of tic to
+ create a terminfo database with extended names. Note that the
+ user-defined terminal capabilities are not affected by this bug,
+ since they are stored in a table after the older terminfo data ends,
+ and are invisible to the older libraries.
+
+ c) Some developers did not wish to use the C++ binding, and used the
+ configure --without-cxx option. This causes problems if someone
+ uses the ncurses library from C++ because that configure test
+ determines the type for C++'s bool and makes ncurses match it, since
+ both C++ and curses are specified to declare bool. Calling ncurses
+ functions with the incorrect type for bool will cause execution
+ errors. In 5.0 we added a configure option "--without-cxx-binding"
+ which controls whether the binding itself is built and installed.
+
+ 4.2
+ Interface changes:
+
+ + correct prototype for termattrs() as per XPG4 version 2.
+
+ + add placeholder prototypes for color_set(), erasewchar(),
+ term_attrs(), wcolor_set() as per XPG4 version 2.
+
+ + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
+ SVr4 headers.
+
+ New extensions: keyok() and define_key().
+
+ Terminfo database changes:
+
+ + corrected definition in curses.h for ACS_LANTERN, which was 'I'
+ rather than 'i'.
+
+ 4.1 (May 15, 1997)
+
+ We added these extensions: use_default_colors(). Also added
+ configure option --enable-const, to support the use of const where
+ X/Open should have, but did not, specify.
+
+ The terminfo database content changed the representation of color for
+ most entries that use ANSI colors. SVr4 curses treats the setaf/setab
+ and setf/setb capabilities differently, interchanging the red/blue
+ colors in the latter.
+
+ 4.0 (December 24, 1996)
+
+ We bumped to version 4.0 because the newly released dynamic loader
+ (ld.so.1.8.5) on Linux did not load shared libraries whose ABI and REL
+ versions were inconsistent. At that point, ncurses ABI was 3.4 and the
+ REL was 1.9.9g, so we made them consistent.
+
+ 1.9.9g (December 1, 1996)
+
+ This fixed most of the problems with 1.9.9e, and made these interface
+ changes:
+
+ + remove tparam(), which had been provided for compatibility with
+ some termcap. tparm() is standard, and does not conflict with
+ application's fallback for missing tparam().
+
+ + turn off hardware echo in initscr(). This changes the sense of the
+ echo() function, which was initialized to echoing rather than
+ nonechoing (the latter is specified). There were several other
+ corrections to the terminal I/O settings which cause applications to
+ behave differently.
+
+ + implemented several functions (such as attr_on()) which were
+ available only as macros.
+
+ + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
+
+ + corrected prototypes for delay_output(),
+ has_color, immedok() and idcok().
+
+ + corrected misspelled getbkgd(). Some applications used the
+ misspelled name.
+
+ + added _yoffset to WINDOW. The size of WINDOW does not impact
+ applications, since they use only pointers to WINDOW structs.
+
+ These changes were made to the terminfo database:
+
+ + removed boolean 'getm' which was available as an extended name.
+
+ We added these extensions: wresize(), resizeterm(), has_key() and
+ mcprint().
+
+ 1.9.9e (March 24, 1996)
+
+ not recommended (a last-minute/untested change left the forms and
+ menus libraries unusable since they do not repaint the screen).
+ Foreground/background colors are combined incorrectly, working properly
+ only on a black background. When this was released, the X/Open
+ specification was available only in draft form.
+
+ Some applications (such as lxdialog) were "fixed" to work with the
+ incorrect color scheme.
+
+
IF YOU ARE A SYSTEM INTEGRATOR:
+------------------------------
Beginning with 1.9.9, the ncurses distribution includes both a tset
utility and /usr/share/tabset directory. If you are installing ncurses,
@@ -297,7 +488,10 @@ IF YOU ARE A SYSTEM INTEGRATOR:
to us explaining why you don't want to, so we can work out nomenclature
that will make users' lives easier rather than harder.
-RECENT XTERM VERSIONS
+
+RECENT XTERM VERSIONS:
+---------------------
+
The terminfo database file included with this distribution assumes you
are running an XFree86 xterm based on X11R6 (i.e., xterm-r6). The
earlier X11R5 entry (xterm-r5) is provided as well.
@@ -311,7 +505,10 @@ RECENT XTERM VERSIONS
applications that assume these capabilities will produce incorrect
output on the older xterm (e.g., highlighting is not cleared).
-CONFIGURING FALLBACK ENTRIES
+
+CONFIGURING FALLBACK ENTRIES:
+----------------------------
+
In order to support operation of ncurses programs before the terminfo
tree is accessible (that is, in single-user mode or at OS installation
time) the ncurses library can be compiled to include an array of
@@ -348,7 +545,10 @@ CONFIGURING FALLBACK ENTRIES
fallbacks. A good rule of thumb for modern vt100-like entries is that
each one will cost about 2.5K of text space.
+
BSD CONVERSION NOTES:
+--------------------
+
If you need to support really ancient BSD programs, you probably
want to configure with the --enable-bsdpad option. What this does
is enable code in tputs() that recognizes a numeric prefix on a
@@ -441,7 +641,7 @@ USING NCURSES WITH GPM:
but the linker may not cooperate, producing mysterious errors.
A patched version of gpm is available:
- ftp.clark.net:/pub/dickey/ncurses/gpm-1.10-970125.tgz
+ dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz
This patch is incorporated in gpm 1.12; however some integrators
are slow to update this library.
@@ -478,8 +678,8 @@ an offset of -11 lines.
BUGS:
Send any feedback to the ncurses mailing list at
- bug-ncurses@gnu.org. To subscribe send mail to
- bug-ncurses-request@gnu.org with body that reads:
+ bug-ncurses@gnu.org. To subscribe send mail to
+ bug-ncurses-request@gnu.org with body that reads:
subscribe ncurses <your-email-address-here>
The Hacker's Guide in the misc directory includes some guidelines