📄 install
字号:
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 (March 2, 1998) 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:------------------------------ Configuration and Installation: On platforms where ncurses is assumed to be installed in /usr/lib, the configure script uses "/usr" as a default: Linux, FreeBSD, NetBSD, OpenBSD, Cygwin For other platforms, the default is "/usr/local". See the discussion of the "--disable-overwrite" option. The location of the terminfo is set indirectly by the "--datadir" configure option, e.g., /usr/share/terminfo, given a datadir of /usr/share. You may want to override this if you are installing ncurses libraries in nonstandard locations, but wish to share the terminfo database. Normally the ncurses library is configured in a pure-terminfo mode; that is, with the --disable-termcap option. This makes the ncurses library smaller and faster. The ncurses library includes a termcap emulation that queries the terminfo database, so even applications that use raw termcap to query terminal characteristics will win (providing you recompile and relink them!). If you must configure with termcap fallback enabled, you may also wish to use the --enable-getcap option. This speeds up termcap-based startups, at the expense of not allowing personal termcap entries to reference the terminfo tree. See comments in ncurses/tinfo/read_termcap.c for further details. Note that if you have $TERMCAP set, ncurses will use that value to locate termcap data. In particular, running from xterm will set $TERMCAP to the contents of the xterm's termcap entry. If ncurses sees that, it will not examine /etc/termcap. Keyboard Mapping: The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48 reverse-tabulation sequence) rather than ^I. Here are the loadkeys -d mappings that will set this up: keycode 15 = Tab Tab alt keycode 15 = Meta_Tab shift keycode 15 = F26 string F26 ="\033[Z" Naming the Console Terminal In various systems there has been a practice of designating the system console driver type as `console'. Please do not do this! It complicates peoples' lives, because it can mean that several different terminfo entries from different operating systems all logically want to be called `console'. Please pick a name unique to your console driver and set that up in the /etc/inittab table or local equivalent. Send the entry to the terminfo maintainer (listed in the misc/terminfo file) to be included in the terminfo file, if it's not already there. See the term(7) manual page included with this distribution for more on conventions for choosing type names. Here are some recommended primary console names: linux -- Linux console driver freebsd -- FreeBSD netbsd -- NetBSD bsdos -- BSD/OS If you are responsible for integrating ncurses for one of these distribution, please either use the recommended name or get back 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:--------------------- The terminfo database file included with this distribution assumes you are running a modern xterm based on XFree86 (i.e., xterm-new). The earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided as well. See the --without-xterm-new configure script option if you are unable to update your system.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 pre-fetched fallback entries. This must be done on a machine which has ncurses' infocmp and terminfo database installed. These entries are checked by setupterm() only when the conventional fetches from the terminfo tree and the termcap fallback (if configured) have been tried and failed. Thus, the presence of a fallback will not shadow modifications to the on-disk entry for the same type, when that entry is accessible. By default, there are no entries on the fallback list. After you have built the ncurses suite for the first time, you can change the list (the process needs infocmp(1)). To do so, use the script ncurses/tinfo/MKfallback.sh. A configure script option --with-fallbacks does this (it accepts a comma-separated list of the names you wish, and does not require a rebuild). If you wanted (say) to have linux, vt100, and xterm fallbacks, you would use the commands cd ncurses; tinfo/MKfallback.sh linux vt100 xterm >fallback.c Then just rebuild and reinstall the library as you would normally. You can restore the default empty fallback list with tinfo/MKfallback.sh >fallback.c The overhead for an empty fallback list is one trivial stub function. Any non-empty fallback list is const-ed and therefore lives in sharable text space. You can look at the comment trailing each initializer in the generated ncurses/fallback.c file to see the core cost of the 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 capability as a request for that much trailing padding in milliseconds. There are old BSD programs that do things like tputs("50"). (If you are distributing ncurses as a support-library component of an application you probably want to put the remainder of this section in the package README file.) The following note applies only if you have configured ncurses with --enable-termcap.------------------------------- CUT HERE --------------------------------If you are installing this application privately (either because youhave no root access or want to experiment with it before doing a rootinstallation), there are a couple of details you need to be aware of.They have to do with the ncurses library, which uses terminfo ratherthan termcap for describing terminal characteristics.Though the ncurses library is terminfo-based, it will interpret yourTERMCAP variable (if present), any local termcap files you referencethrough it, and the system termcap file. However, in order to avoidslowing down your application startup, it will only do this once perterminal type!The first time you load a given terminal type from your termcapdatabase, the library initialization code will automatically write itin terminfo format to a subdirectory under $HOME/.terminfo. Afterthat, the initialization code will find it there and do a (muchfaster) terminfo fetch.Usually, all this means is that your home directory will silently growan invisible .terminfo subdirectory which will get filled in withterminfo descriptions of terminal types as you invoke them. If anyoneever installs a global terminfo tree on your system, this will quietlystop happening and your $HOME/.terminfo will become redundant.The objective of all this logic is to make converting from BSD termcapas painless as possible without slowing down your application (termcapcompilation is expensive).If you don't have a TERMCAP variable or custom personal termcap file,you can skip the rest of this dissertation.If you *do* have a TERMCAP variable and/or a custom personal termcap filethat defines a terminal type, that definition will stop being visibleto this application after the first time you run it, because it willinstead see the terminfo entry that it wrote to $HOME/terminfo thefirst time around.Subsequently, editing the TERMCAP variable or personal TERMCAP filewill have no effect unless you explicitly remove the terminfo entryunder $HOME/terminfo. If you do that, the entry will be recompiledfrom your termcap resources the next time it is invoked.To avoid these complications, use infocmp(1) and tic(1) to edit theterminfo directory directly.------------------------------- CUT HERE --------------------------------USING NCURSES WITH AFS: AFS treats each directory as a separate logical filesystem, you can't hard-link across them. The --enable-symlinks option copes with this by making tic use symbolic links.USING NCURSES WITH GPM: Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse) which is used on Linux console. Be aware that GPM is commonly installed as a shared library which contains a wrapper for the curses wgetch() function (libcurses.o). Some integrators have simplified linking applications by combining all or part of libcurses.so into the libgpm.so file, producing symbol conflicts with ncurses (specifically the wgetch function). This was originally the BSD curses, but generally whatever curses library exists on the system. You may be able to work around this problem by linking as follows: cc -o foo foo.o -lncurses -lgpm -lncurses but the linker may not cooperate, producing mysterious errors. See the FAQ, as well as the discussion under the --with-gpm option: http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_libBUILDING NCURSES WITH A CROSS-COMPILER Ncurses can be built with a cross-compiler. Some parts must be built with the host's compiler since they are used for building programs (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables that are compiled into the ncurses library. The essential thing to do is set the BUILD_CC environment variable to your host's compiler, and run the configure script configuring for the cross-compiler. The configure options --with-build-cc, etc., are provided to make this simpler. Since make_hash and make_keys use only ANSI C features, it is normally not necessary to provide the other options such as --with-build-libs, but they are provided for completeness. Note that all of the generated source-files which are part of ncurses will be made if you use make sources This would be useful in porting to an environment which has little support for the tools used to generate the sources, e.g., sed, awk and Bourne-shell. When ncurses has been successfully cross-compiled, you may want to use "make install" (with a suitable target directory) to construct an install tree. Note that in this case (as with the --with-fallbacks option), ncurses uses the development platform's tic to do the "make install.data" portion.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: subscribe ncurses <your-email-address-here> The Hacker's Guide in the doc directory includes some guidelines on how to report bugs in ways that will get them fixed most quickly.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -