10e3d5408SPeter Wemm 215589c42SPeter Wemm Announcing ncurses 5.1 30e3d5408SPeter Wemm 40e3d5408SPeter Wemm The ncurses (new curses) library is a free software emulation of 50e3d5408SPeter Wemm curses in System V Release 4.0, and more. It uses terminfo format, 60e3d5408SPeter Wemm supports pads and color and multiple highlights and forms characters 70e3d5408SPeter Wemm and function-key mapping, and has all the other SYSV-curses 80e3d5408SPeter Wemm enhancements over BSD curses. 90e3d5408SPeter Wemm 100e3d5408SPeter Wemm In mid-June 1995, the maintainer of 4.4BSD curses declared that he 110e3d5408SPeter Wemm considered 4.4BSD curses obsolete, and is encouraging the keepers of 120e3d5408SPeter Wemm Unix releases such as BSD/OS, freeBSD and netBSD to switch over to 130e3d5408SPeter Wemm ncurses. 140e3d5408SPeter Wemm 150e3d5408SPeter Wemm The ncurses code was developed under GNU/Linux. It should port easily 160e3d5408SPeter Wemm to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 170e3d5408SPeter Wemm Warp! 180e3d5408SPeter Wemm 190e3d5408SPeter Wemm The distribution includes the library and support utilities, including 200e3d5408SPeter Wemm a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), 210e3d5408SPeter Wemm tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full 220e3d5408SPeter Wemm manual pages are provided for the library and tools. 230e3d5408SPeter Wemm 240e3d5408SPeter Wemm The ncurses distribution is available via anonymous FTP at the GNU 251759abf3SPeter Wemm distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses. It is also 2615589c42SPeter Wemm available at [2]ftp://dickey.his.com/ncurses. 270e3d5408SPeter Wemm 280e3d5408SPeter Wemm Release Notes 290e3d5408SPeter Wemm 3015589c42SPeter Wemm This release is designed to be upward compatible from ncurses 5.0; 3115589c42SPeter Wemm very few applications will require recompilation, depending on the 3215589c42SPeter Wemm platform. These are the highlights from the change-log since ncurses 3315589c42SPeter Wemm 5.0 release. 340e3d5408SPeter Wemm 350e3d5408SPeter Wemm Interface changes: 3615589c42SPeter Wemm * made the extended terminal capabilities 3715589c42SPeter Wemm (configure --enable-tcap-names) a standard feature (though the 3815589c42SPeter Wemm configure script can disable it, it is built by default). 3915589c42SPeter Wemm * removed the trace() function and related trace support from the 4015589c42SPeter Wemm production library. This is the only interface change that may 4115589c42SPeter Wemm cause problems with existing applications linked to shared 4215589c42SPeter Wemm libraries, since not all platforms use the minor version number. 4315589c42SPeter Wemm * explicitly initialized to zero several data items which were 4415589c42SPeter Wemm implicitly initialized, e.g., cur_term. If not explicitly 4515589c42SPeter Wemm initialized, their storage type is C (common), and causes problems 4615589c42SPeter Wemm linking on some platforms. 4715589c42SPeter Wemm * modified curses.h.in, undef'ing some symbols to avoid conflict 4815589c42SPeter Wemm with C++ STL. 490e3d5408SPeter Wemm 500e3d5408SPeter Wemm New features: 5115589c42SPeter Wemm * added a new extension, assume_default_colors() to provide better 5215589c42SPeter Wemm control over the use of default colors. This is the principal 5315589c42SPeter Wemm visible difference between ncurses 5.1 and preceding versions. The 5415589c42SPeter Wemm new extension allows an application to specify what colors pair 0 5515589c42SPeter Wemm uses. It defaults to white on black, unless you have invoked 5615589c42SPeter Wemm use_default_colors(). 5715589c42SPeter Wemm * made several fixes to the terminfo-to-termcap conversion, and have 5815589c42SPeter Wemm been using the generated termcaps without further hand-tuning. 5915589c42SPeter Wemm This builds on the extension use_extended_names() by adding 6015589c42SPeter Wemm "obsolete" termcap strings to terminfo.src 6115589c42SPeter Wemm + modified tic so that if extended names (i.e., 6215589c42SPeter Wemm configure --enable-tcap-names) are active, then tic -x will 6315589c42SPeter Wemm also write "obsolete" capabilities that are present in the 6415589c42SPeter Wemm terminfo source. 6515589c42SPeter Wemm + added screen's AX capability (for ECMA SGR 39 and 49) to 6615589c42SPeter Wemm applicable terminfo entries, use presence of this as a check 6715589c42SPeter Wemm for a small improvement in setting default colors. 6815589c42SPeter Wemm + add -a option to tic and infocmp, which retains commented-out 6915589c42SPeter Wemm capabilities during source translation/comparison, e.g., 7015589c42SPeter Wemm captoinfo and infotocap. 7115589c42SPeter Wemm * implemented limited support for UTF-8, useful with XFree86 xterm: 7215589c42SPeter Wemm + if the configure --enable-widec option is given, append 'w' 7315589c42SPeter Wemm to names of the generated libraries (e.g., libncursesw.so) to 7415589c42SPeter Wemm avoid conflict with existing ncurses libraries. 7515589c42SPeter Wemm + add a simple UTF-8 output driver to the experimental 7615589c42SPeter Wemm wide-character support. If any of the environment variables 7715589c42SPeter Wemm LC_ALL, LC_CTYPE or LANG contain the string "UTF-8", this 7815589c42SPeter Wemm driver will be used to translate the output to UTF-8. 7915589c42SPeter Wemm + modified view.c to make a rudimentary viewer of UTF-8 text. 8015589c42SPeter Wemm * modify raw() and noraw() to clear/restore IEXTEN flag which 8115589c42SPeter Wemm affects stty lnext on systems such as FreeBSD 8215589c42SPeter Wemm * reordered tests during mouse initialization to allow for gpm to 8315589c42SPeter Wemm run in xterm, or for xterm to be used under OS/2 EMX. Also dropped 8415589c42SPeter Wemm test for $DISPLAY in favor of kmous=\E[M or $TERM containing 8515589c42SPeter Wemm "xterm". 8615589c42SPeter Wemm * added configure option --with-manpage-symlinks, which provides for 8715589c42SPeter Wemm fully indexing manpage entries by making symbolic links for the 8815589c42SPeter Wemm aliases. 8915589c42SPeter Wemm * changed unctrl() to render C1 characters (128-159) as ~@, ~A, etc. 9015589c42SPeter Wemm * add experimental configure option --enable-colorfgbg to check for 9115589c42SPeter Wemm $COLORTERM variable as set by rxvt/aterm/Eterm. 9215589c42SPeter Wemm * made the infocmp -F option less verbose. 9315589c42SPeter Wemm * dropped support for gnat 3.10 (gnat 3.12 is current). 940e3d5408SPeter Wemm 950e3d5408SPeter Wemm Major bug fixes: 9615589c42SPeter Wemm * modified infocmp -e, -E options to ensure that generated 9715589c42SPeter Wemm fallback.c type for Booleans agrees with term.h 9815589c42SPeter Wemm * documented a special case of incompatiblity between ncurses 4.2 9915589c42SPeter Wemm and 5.0, added a section for this in INSTALL. 10015589c42SPeter Wemm * corrected tests for file-descriptors in OS/2 EMX mouse support. A 10115589c42SPeter Wemm negative value could be used by FD_SET, causing the select() call 10215589c42SPeter Wemm to wait indefinitely. 10315589c42SPeter Wemm * made 'tput flash' work properly for xterm by flushing output in 10415589c42SPeter Wemm delay_output() when using napms(), and modifying xterm's terminfo 10515589c42SPeter Wemm to specify no padding character. Otherwise, xterm's reported baud 10615589c42SPeter Wemm rate could mislead ncurses into producing too few padding 10715589c42SPeter Wemm characters. 10815589c42SPeter Wemm * modified lib_addch.c to allow repeated update to the lower-right 10915589c42SPeter Wemm corner, rather than displaying only the first character written 11015589c42SPeter Wemm until the cursor is moved. Recent versions of SVr4 curses can 11115589c42SPeter Wemm update the lower-right corner, and behave this way. 11215589c42SPeter Wemm * modified echo() behavior of getch() to match Solaris curses for 11315589c42SPeter Wemm carriage return and backspace (reported by Neil Zanella). 11415589c42SPeter Wemm * corrected offsets used for subwindows in wresize() 11515589c42SPeter Wemm * modified configure script so AC_MSG_ERROR is temporarily defined 11615589c42SPeter Wemm to a warning in AC_PROG_CXX to make it recover from a missing C++ 11715589c42SPeter Wemm compiler without requiring user to add --without-cxx option 11815589c42SPeter Wemm * corrected logic in lib_twait.c as used by lib_mouse.c for GPM 11915589c42SPeter Wemm mouse support when poll() is used rather than select(). 12015589c42SPeter Wemm * made several fixes for buffer overflows, unchecked recursion, 12115589c42SPeter Wemm improvements in performance, etc. See the NEWS file for details. 1220e3d5408SPeter Wemm 1230e3d5408SPeter Wemm Features of Ncurses 1240e3d5408SPeter Wemm 1250e3d5408SPeter Wemm The ncurses package is fully compatible with SVr4 (System V Release 4) 1260e3d5408SPeter Wemm curses: 1270e3d5408SPeter Wemm * All 257 of the SVr4 calls have been implemented (and are 1280e3d5408SPeter Wemm documented). 1290e3d5408SPeter Wemm * Full support for SVr4 curses features including keyboard mapping, 1300e3d5408SPeter Wemm color, forms-drawing with ACS characters, and automatic 1310e3d5408SPeter Wemm recognition of keypad and function keys. 1320e3d5408SPeter Wemm * An emulation of the SVr4 panels library, supporting a stack of 1330e3d5408SPeter Wemm windows with backing store, is included. 1340e3d5408SPeter Wemm * An emulation of the SVr4 menus library, supporting a uniform but 1350e3d5408SPeter Wemm flexible interface for menu programming, is included. 1360e3d5408SPeter Wemm * An emulation of the SVr4 form library, supporting data collection 1370e3d5408SPeter Wemm through on-screen forms, is included. 1380e3d5408SPeter Wemm * Binary terminfo entries generated by the ncurses tic(1) 1390e3d5408SPeter Wemm implementation are bit-for-bit-compatible with the entry format 1400e3d5408SPeter Wemm SVr4 curses uses. 1410e3d5408SPeter Wemm * The utilities have options to allow you to filter terminfo entries 1420e3d5408SPeter Wemm for use with less capable curses/terminfo versions such as the 1430e3d5408SPeter Wemm HP/UX and AIX ports. 1440e3d5408SPeter Wemm 1450e3d5408SPeter Wemm The ncurses package also has many useful extensions over SVr4: 1460e3d5408SPeter Wemm * The API is 8-bit clean and base-level conformant with the X/OPEN 1470e3d5408SPeter Wemm curses specification, XSI curses (that is, it implements all BASE 1480e3d5408SPeter Wemm level features, but not all EXTENDED features). Most 1490e3d5408SPeter Wemm EXTENDED-level features not directly concerned with wide-character 1500e3d5408SPeter Wemm support are implemented, including many function calls not 1510e3d5408SPeter Wemm supported under SVr4 curses (but portability of all calls is 1520e3d5408SPeter Wemm documented so you can use the SVr4 subset only). 1531759abf3SPeter Wemm * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost 1540e3d5408SPeter Wemm corner of the screen if your terminal has an insert-character 1550e3d5408SPeter Wemm capability. 1560e3d5408SPeter Wemm * Ada95 and C++ bindings. 1570e3d5408SPeter Wemm * Support for mouse event reporting with X Window xterm and OS/2 1580e3d5408SPeter Wemm console windows. 1590e3d5408SPeter Wemm * Extended mouse support via Alessandro Rubini's gpm package. 1600e3d5408SPeter Wemm * The function wresize() allows you to resize windows, preserving 1610e3d5408SPeter Wemm their data. 1620e3d5408SPeter Wemm * The function use_default_colors() allows you to use the terminal's 1630e3d5408SPeter Wemm default colors for the default color pair, achieving the effect of 1640e3d5408SPeter Wemm transparent colors. 1650e3d5408SPeter Wemm * The functions keyok() and define_key() allow you to better control 1660e3d5408SPeter Wemm the use of function keys, e.g., disabling the ncurses KEY_MOUSE, 1670e3d5408SPeter Wemm or by defining more than one control sequence to map to a given 1680e3d5408SPeter Wemm key code. 1690e3d5408SPeter Wemm * Support for 16-color terminals, such as aixterm and XFree86 xterm. 1700e3d5408SPeter Wemm * Better cursor-movement optimization. The package now features a 1710e3d5408SPeter Wemm cursor-local-movement computation more efficient than either BSD's 1720e3d5408SPeter Wemm or System V's. 1730e3d5408SPeter Wemm * Super hardware scrolling support. The screen-update code 1740e3d5408SPeter Wemm incorporates a novel, simple, and cheap algorithm that enables it 1750e3d5408SPeter Wemm to make optimal use of hardware scrolling, line-insertion, and 1760e3d5408SPeter Wemm line-deletion for screen-line movements. This algorithm is more 1770e3d5408SPeter Wemm powerful than the 4.4BSD curses quickch() routine. 1780e3d5408SPeter Wemm * Real support for terminals with the magic-cookie glitch. The 1790e3d5408SPeter Wemm screen-update code will refrain from drawing a highlight if the 1800e3d5408SPeter Wemm magic- cookie unattributed spaces required just before the 1810e3d5408SPeter Wemm beginning and after the end would step on a non-space character. 1820e3d5408SPeter Wemm It will automatically shift highlight boundaries when doing so 1830e3d5408SPeter Wemm would make it possible to draw the highlight without changing the 1840e3d5408SPeter Wemm visual appearance of the screen. 1850e3d5408SPeter Wemm * It is possible to generate the library with a list of pre-loaded 1860e3d5408SPeter Wemm fallback entries linked to it so that it can serve those terminal 1870e3d5408SPeter Wemm types even when no terminfo tree or termcap file is accessible 1880e3d5408SPeter Wemm (this may be useful for support of screen-oriented programs that 1890e3d5408SPeter Wemm must run in single-user mode). 1900e3d5408SPeter Wemm * The tic(1)/captoinfo utility provided with ncurses has the ability 1910e3d5408SPeter Wemm to translate many termcaps from the XENIX, IBM and AT&T extension 1920e3d5408SPeter Wemm sets. 1930e3d5408SPeter Wemm * A BSD-like tset(1) utility is provided. 1940e3d5408SPeter Wemm * The ncurses library and utilities will automatically read terminfo 1950e3d5408SPeter Wemm entries from $HOME/.terminfo if it exists, and compile to that 1960e3d5408SPeter Wemm directory if it exists and the user has no write access to the 1970e3d5408SPeter Wemm system directory. This feature makes it easier for users to have 1980e3d5408SPeter Wemm personal terminfo entries without giving up access to the system 1990e3d5408SPeter Wemm terminfo directory. 2000e3d5408SPeter Wemm * You may specify a path of directories to search for compiled 2010e3d5408SPeter Wemm descriptions with the environment variable TERMINFO_DIRS (this 2020e3d5408SPeter Wemm generalizes the feature provided by TERMINFO under stock System 2030e3d5408SPeter Wemm V.) 2040e3d5408SPeter Wemm * In terminfo source files, use capabilities may refer not just to 2050e3d5408SPeter Wemm other entries in the same source file (as in System V) but also to 2060e3d5408SPeter Wemm compiled entries in either the system terminfo directory or the 2070e3d5408SPeter Wemm user's $HOME/.terminfo directory. 2080e3d5408SPeter Wemm * A script (capconvert) is provided to help BSD users transition 2090e3d5408SPeter Wemm from termcap to terminfo. It gathers the information in a TERMCAP 2100e3d5408SPeter Wemm environment variable and/or a ~/.termcap local entries file and 2110e3d5408SPeter Wemm converts it to an equivalent local terminfo tree under 2120e3d5408SPeter Wemm $HOME/.terminfo. 2130e3d5408SPeter Wemm * Automatic fallback to the /etc/termcap file can be compiled in 2140e3d5408SPeter Wemm when it is not possible to build a terminfo tree. This feature is 2150e3d5408SPeter Wemm neither fast nor cheap, you don't want to use it unless you have 2160e3d5408SPeter Wemm to, but it's there. 2170e3d5408SPeter Wemm * The table-of-entries utility toe makes it easy for users to see 2180e3d5408SPeter Wemm exactly what terminal types are available on the system. 2190e3d5408SPeter Wemm * The library meets the XSI requirement that every macro entry point 2200e3d5408SPeter Wemm have a corresponding function which may be linked (and will be 2210e3d5408SPeter Wemm prototype-checked) if the macro definition is disabled with 2220e3d5408SPeter Wemm #undef. 2230e3d5408SPeter Wemm * An HTML "Introduction to Programming with NCURSES" document 2240e3d5408SPeter Wemm provides a narrative introduction to the curses programming 2250e3d5408SPeter Wemm interface. 2260e3d5408SPeter Wemm 2270e3d5408SPeter Wemm State of the Package 2280e3d5408SPeter Wemm 2290e3d5408SPeter Wemm Numerous bugs present in earlier versions have been fixed; the library 2300e3d5408SPeter Wemm is far more reliable than it used to be. Bounds checking in many 2310e3d5408SPeter Wemm `dangerous' entry points has been improved. The code is now type-safe 2320e3d5408SPeter Wemm according to gcc -Wall. The library has been checked for malloc leaks 2330e3d5408SPeter Wemm and arena corruption by the Purify memory-allocation tester. 2340e3d5408SPeter Wemm 2350e3d5408SPeter Wemm The ncurses code has been tested with a wide variety of applications 2360e3d5408SPeter Wemm including (versions starting with those noted): 2370e3d5408SPeter Wemm 2381759abf3SPeter Wemm cdk 23915589c42SPeter Wemm Curses Development Kit 24015589c42SPeter Wemm [3]Curses Development Kit [4]http://dickey.his.com/cdk. 2411759abf3SPeter Wemm 2420e3d5408SPeter Wemm ded 24315589c42SPeter Wemm directory-editor 24415589c42SPeter Wemm [5]http://dickey.his.com/ded. 2450e3d5408SPeter Wemm 2460e3d5408SPeter Wemm dialog 2470e3d5408SPeter Wemm the underlying application used in Slackware's setup, and the 2480e3d5408SPeter Wemm basis for similar applications on GNU/Linux. 24915589c42SPeter Wemm [6]http://dickey.his.com/dialog. 2500e3d5408SPeter Wemm 2511759abf3SPeter Wemm lynx 2520e3d5408SPeter Wemm the character-screen WWW browser 25315589c42SPeter Wemm [7]http://lynx.isc.org/release. 2540e3d5408SPeter Wemm 2550e3d5408SPeter Wemm Midnight Commander 4.1 2560e3d5408SPeter Wemm file manager 2570e3d5408SPeter Wemm 2581759abf3SPeter Wemm mutt 2590e3d5408SPeter Wemm mail utility 26015589c42SPeter Wemm [8]http://www.mutt.org. 2610e3d5408SPeter Wemm 2621759abf3SPeter Wemm ncftp 2630e3d5408SPeter Wemm file-transfer utility 2640e3d5408SPeter Wemm 2650e3d5408SPeter Wemm nvi 2660e3d5408SPeter Wemm New vi versions 1.50 are able to use ncurses versions 1.9.7 and 2670e3d5408SPeter Wemm later. 2680e3d5408SPeter Wemm 2691759abf3SPeter Wemm tin 2701759abf3SPeter Wemm newsreader, supporting color, MIME 27115589c42SPeter Wemm [9]http://www.tin.org. 2721759abf3SPeter Wemm 2730e3d5408SPeter Wemm taper 2740e3d5408SPeter Wemm tape archive utility 2750e3d5408SPeter Wemm 2760e3d5408SPeter Wemm vh-1.6 2770e3d5408SPeter Wemm Volks-Hypertext browser for the Jargon File 2780e3d5408SPeter Wemm 2790e3d5408SPeter Wemm as well as some that use ncurses for the terminfo support alone: 2800e3d5408SPeter Wemm 2811759abf3SPeter Wemm minicom 2820e3d5408SPeter Wemm terminal emulator 2830e3d5408SPeter Wemm 2840e3d5408SPeter Wemm vile 28515589c42SPeter Wemm vi-like-emacs 28615589c42SPeter Wemm [10]http://dickey.his.com/vile. 2870e3d5408SPeter Wemm 2880e3d5408SPeter Wemm The ncurses distribution includes a selection of test programs 2890e3d5408SPeter Wemm (including a few games). 2900e3d5408SPeter Wemm 2910e3d5408SPeter WemmWho's Who and What's What 2920e3d5408SPeter Wemm 29315589c42SPeter Wemm The original developers of ncurses are [11]Zeyd Ben-Halim and [12]Eric 29415589c42SPeter Wemm S. Raymond. Ongoing work is being done by [13]Thomas Dickey and 29515589c42SPeter Wemm [14]J�rgen Pfeifer. [15]Thomas Dickey acts as the maintainer for the 2960e3d5408SPeter Wemm Free Software Foundation, which holds the copyright on ncurses. 29715589c42SPeter Wemm Contact the current maintainers at [16]bug-ncurses@gnu.org. 2980e3d5408SPeter Wemm 2990e3d5408SPeter Wemm To join the ncurses mailing list, please write email to 3000e3d5408SPeter Wemm bug-ncurses-request@gnu.org containing the line: 3010e3d5408SPeter Wemm subscribe <name>@<host.domain> 3020e3d5408SPeter Wemm 3030e3d5408SPeter Wemm This list is open to anyone interested in helping with the development 3040e3d5408SPeter Wemm and testing of this package. 3050e3d5408SPeter Wemm 3060e3d5408SPeter Wemm Beta versions of ncurses and patches to the current release are made 30715589c42SPeter Wemm available at [17]ftp://dickey.his.com/ncurses. 3080e3d5408SPeter Wemm 3090e3d5408SPeter WemmFuture Plans 3100e3d5408SPeter Wemm 3110e3d5408SPeter Wemm * Extended-level XPG4 conformance, with internationalization 3120e3d5408SPeter Wemm support. 3130e3d5408SPeter Wemm * Ports to more systems, including DOS and Windows. 3140e3d5408SPeter Wemm 3150e3d5408SPeter Wemm We need people to help with these projects. If you are interested in 3160e3d5408SPeter Wemm working on them, please join the ncurses list. 3170e3d5408SPeter Wemm 3180e3d5408SPeter WemmOther Related Resources 3190e3d5408SPeter Wemm 3200e3d5408SPeter Wemm The distribution includes and uses a version of the terminfo-format 3210e3d5408SPeter Wemm terminal description file maintained by Eric Raymond. 32215589c42SPeter Wemm [18]http://earthspace.net/~esr/terminfo. 3230e3d5408SPeter Wemm 3240e3d5408SPeter Wemm You can find lots of information on terminal-related topics not 32515589c42SPeter Wemm covered in the terminfo file at [19]Richard Shuford's archive. 3260e3d5408SPeter Wemm 3270e3d5408SPeter WemmReferences 3280e3d5408SPeter Wemm 3291759abf3SPeter Wemm 1. ftp://ftp.gnu.org/pub/gnu/ncurses 33015589c42SPeter Wemm 2. ftp://dickey.his.com/ncurses 3311759abf3SPeter Wemm 3. http://www.vexus.ca/CDK.html 33215589c42SPeter Wemm 4. http://dickey.his.com/cdk/cdk.html 33315589c42SPeter Wemm 5. http://dickey.his.com/ded/ded.html 33415589c42SPeter Wemm 6. http://dickey.his.com/dialog/dialog.html 33515589c42SPeter Wemm 7. http://lynx.isc.org/release/ 33615589c42SPeter Wemm 8. http://www.mutt.org/ 33715589c42SPeter Wemm 9. http://www.tin.org/ 33815589c42SPeter Wemm 10. http://dickey.his.com/vile/vile.html 33915589c42SPeter Wemm 11. mailto:zmbenhal@netcom.com 34015589c42SPeter Wemm 12. http://www.ccil.org/~esr/home.html 34115589c42SPeter Wemm 13. mailto:dickey@herndon4.his.com 34215589c42SPeter Wemm 14. mailto:juergen.pfeifer@gmx.net 34315589c42SPeter Wemm 15. mailto:dickey@herndon4.his.com 34415589c42SPeter Wemm 16. mailto:bug-ncurses@gnu.org 34515589c42SPeter Wemm 17. ftp://dickey.his.com/ncurses 34615589c42SPeter Wemm 18. http://earthspace.net/~esr/terminfo 34715589c42SPeter Wemm 19. http://www.cs.utk.edu/~shuford/terminal_index.html 348