diff options
Diffstat (limited to 'contrib/ncurses/INSTALL')
-rw-r--r-- | contrib/ncurses/INSTALL | 216 |
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 |