path: root/contrib/ncurses/INSTALL
diff options
authorPeter Wemm <peter@FreeBSD.org>2000-07-03 09:24:12 +0000
committerPeter Wemm <peter@FreeBSD.org>2000-07-03 09:24:12 +0000
commit15589c42fa2774d2f8ee650f4f31eb8d3a861316 (patch)
tree27e79485df3c9195e6fe58960df47f675f41f1e9 /contrib/ncurses/INSTALL
parent6b9085fd58b7602b14be0cd2059285baa764a7ee (diff)
Import the most recent ncurses 5.1 prerelease (20000701).
Mostly this is intended to resolve the trace() badness once and for all. Obtained from: ftp://dickey.his.com/ncurses/
Notes: svn path=/vendor/ncurses/dist/; revision=62449
Diffstat (limited to 'contrib/ncurses/INSTALL')
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
@@ -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.
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.
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
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.
+ 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.
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.
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).
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
fallbacks. A good rule of thumb for modern vt100-like entries is that
each one will cost about 2.5K of text space.
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.
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