1*21817992SBaptiste Daroussin Announcing ncurses 6.5 2aae38d10SBaptiste Daroussin 3aae38d10SBaptiste DaroussinOverview 40e3d5408SPeter Wemm 50e3d5408SPeter Wemm The ncurses (new curses) library is a free software emulation of 6aae38d10SBaptiste Daroussin curses in System V Release 4.0 (SVr4), and more. It uses terminfo 7aae38d10SBaptiste Daroussin format, supports pads and color and multiple highlights and forms 8aae38d10SBaptiste Daroussin characters and function-key mapping, and has all the other SVr4-curses 9aae38d10SBaptiste Daroussin enhancements over BSD curses. SVr4 curses became the basis of X/Open 10aae38d10SBaptiste Daroussin Curses. 110e3d5408SPeter Wemm 120e3d5408SPeter Wemm In mid-June 1995, the maintainer of 4.4BSD curses declared that he 13aae38d10SBaptiste Daroussin considered 4.4BSD curses obsolete, and encouraged the keepers of unix 144a1a9510SRong-En Fan releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. 150e3d5408SPeter Wemm 16aae38d10SBaptiste Daroussin Since 1995, ncurses has been ported to many systems: 17aae38d10SBaptiste Daroussin * It is used in almost every system based on the Linux kernel (aside 18aae38d10SBaptiste Daroussin from some embedded applications). 19aae38d10SBaptiste Daroussin * It is used as the system curses library on OpenBSD, FreeBSD and 20e1865124SBaptiste Daroussin MacOS. 21aae38d10SBaptiste Daroussin * It is used in environments such as Cygwin and MinGW. The first of 22aae38d10SBaptiste Daroussin these was EMX on OS/2 Warp. 23aae38d10SBaptiste Daroussin * It is used (though usually not as the system curses) on all of the 24aae38d10SBaptiste Daroussin vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris, 25aae38d10SBaptiste Daroussin Tru64. 26aae38d10SBaptiste Daroussin * It should work readily on any ANSI/POSIX-conforming unix. 270e3d5408SPeter Wemm 280e3d5408SPeter Wemm The distribution includes the library and support utilities, including 29e1865124SBaptiste Daroussin * captoinfo, a termcap conversion tool 30e1865124SBaptiste Daroussin * clear, utility for clearing the screen 31e1865124SBaptiste Daroussin * infocmp, the terminfo decompiler 32e1865124SBaptiste Daroussin * tabs, set tabs on a terminal 33e1865124SBaptiste Daroussin * tic, the terminfo compiler 34e1865124SBaptiste Daroussin * toe, list (table of) terminfo entries 35e1865124SBaptiste Daroussin * tput, utility for retrieving terminal capabilities in shell 36aae38d10SBaptiste Daroussin scripts 37e1865124SBaptiste Daroussin * tset, to initialize the terminal 380e3d5408SPeter Wemm 39aae38d10SBaptiste Daroussin Full manual pages are provided for the library and tools. 40aae38d10SBaptiste Daroussin 41e1865124SBaptiste Daroussin The ncurses distribution is available at ncurses' homepage: 42aae38d10SBaptiste Daroussin 43*21817992SBaptiste Daroussin https://invisible-island.net/archives/ncurses/ or 44e1865124SBaptiste Daroussin https://invisible-mirror.net/archives/ncurses/ . 45aae38d10SBaptiste Daroussin 46*21817992SBaptiste Daroussin It is also available at the GNU distribution site 47aae38d10SBaptiste Daroussin 48*21817992SBaptiste Daroussin https://ftp.gnu.org/gnu/ncurses/ . 490e3d5408SPeter Wemm 500e3d5408SPeter WemmRelease Notes 510e3d5408SPeter Wemm 52*21817992SBaptiste Daroussin These notes are for ncurses 6.5, released April 27, 2024. 530e3d5408SPeter Wemm 54aae38d10SBaptiste Daroussin This release is designed to be source-compatible with ncurses 5.0 55*21817992SBaptiste Daroussin through 6.4; providing extensions to the application binary interface 56aae38d10SBaptiste Daroussin (ABI). Although the source can still be configured to support the 57e1865124SBaptiste Daroussin ncurses 5 ABI, the reason for the release is to reflect improvements 58e1865124SBaptiste Daroussin to the ncurses 6 ABI and the supporting utility programs. 590e3d5408SPeter Wemm 60aae38d10SBaptiste Daroussin There are, of course, numerous other improvements, listed in this 61aae38d10SBaptiste Daroussin announcement. 620e3d5408SPeter Wemm 63*21817992SBaptiste Daroussin The most important bug-fixes/improvements dealt with robustness 64*21817992SBaptiste Daroussin issues. The release notes also mention some other bug-fixes, but are 65*21817992SBaptiste Daroussin focused on new features and improvements to existing features since 66*21817992SBaptiste Daroussin ncurses 6.4 release. 670e3d5408SPeter Wemm 68aae38d10SBaptiste Daroussin Library improvements 69aae38d10SBaptiste Daroussin 70aae38d10SBaptiste Daroussin New features 71aae38d10SBaptiste Daroussin 72*21817992SBaptiste Daroussin These are new features: 73*21817992SBaptiste Daroussin * The low-level terminfo and termcap interfaces are used both by the 74*21817992SBaptiste Daroussin higher-level curses library, as well as by many applications. 75*21817992SBaptiste Daroussin The functions which convert parameterized terminal capability 76*21817992SBaptiste Daroussin strings for output to the terminal (tiparm and tparm) analyze the 77*21817992SBaptiste Daroussin capability string to determine which parameters are strings (i.e., 78*21817992SBaptiste Daroussin addresses), versus numbers (not addresses). 79*21817992SBaptiste Daroussin The library's analysis of a capability string may differ from the 80*21817992SBaptiste Daroussin calling application's design if environment variables are used to 81*21817992SBaptiste Daroussin point to an invalid terminal database. This is a longstanding 82*21817992SBaptiste Daroussin problem with all implementations of terminfo, dating from the 83*21817992SBaptiste Daroussin early 1980s. 84*21817992SBaptiste Daroussin Two new functions address this problem: by providing a function 85*21817992SBaptiste Daroussin which allows the calling application to tell ncurses how many 86*21817992SBaptiste Daroussin string-parameters to expect: 87*21817992SBaptiste Daroussin + tiscan_s helps applications check formatting capabilities 88*21817992SBaptiste Daroussin that would be passed to tiparm_s. 89*21817992SBaptiste Daroussin + tiparm_s provides applications a way to tell ncurses what the 90*21817992SBaptiste Daroussin expected parameters are for a capability. 91*21817992SBaptiste Daroussin * The ncurses library supports a compile-time feature (enabled with 92*21817992SBaptiste Daroussin the configure --enable-check-size option) which simplifies 93*21817992SBaptiste Daroussin initialization with terminals which do not negotiate window 94*21817992SBaptiste Daroussin (screen) size. This is done in setupterm, by providing for using 95*21817992SBaptiste Daroussin ANSI cursor-position report (in user6/user7 terminfo capabilities) 96*21817992SBaptiste Daroussin to obtain the screen size if neither environment variables or 97*21817992SBaptiste Daroussin ioctl is used. 98*21817992SBaptiste Daroussin The ncurses test-program with options "-E -T" demonstrates this 99*21817992SBaptiste Daroussin feature. 100*21817992SBaptiste Daroussin * add functions to query tty-flags in SCREEN 101aae38d10SBaptiste Daroussin 102*21817992SBaptiste Daroussin This release drops compatibility with obsolete versions of tack, e.g., 103*21817992SBaptiste Daroussin pre-1.08 104aae38d10SBaptiste Daroussin 105aae38d10SBaptiste Daroussin Other improvements 106aae38d10SBaptiste Daroussin 107aae38d10SBaptiste Daroussin These are improvements to existing features: 108*21817992SBaptiste Daroussin * In addition to the new, safer function tiparm_s, ncurses adds 109*21817992SBaptiste Daroussin checks to make the older tiparm, tparm and tgoto functions safer: 110*21817992SBaptiste Daroussin + the terminfo functions tiparm and tparm ensure that the 111*21817992SBaptiste Daroussin capability string comes from the terminal description which 112*21817992SBaptiste Daroussin ncurses loads, rather than from random data which the 113*21817992SBaptiste Daroussin application happens to have. 114*21817992SBaptiste Daroussin + the tgoto function disallows capabilities which its analysis 115*21817992SBaptiste Daroussin shows will attempt to use string parameters. 116*21817992SBaptiste Daroussin + ncurses uses internal functions which correspond to tiparm, 117*21817992SBaptiste Daroussin and tgoto which ensure that the capability strings which are 118*21817992SBaptiste Daroussin passed to these functions come from the loaded terminal 119*21817992SBaptiste Daroussin description. 120*21817992SBaptiste Daroussin * improve check in lib_tparm.c, ensuring that a char* fits into a 121*21817992SBaptiste Daroussin TPARM_ARG 122*21817992SBaptiste Daroussin * modify _nc_syserr_abort to use _nc_env_access, rather than only 123*21817992SBaptiste Daroussin checking root uid 124*21817992SBaptiste Daroussin * improve thread lock in lib_trace.c 125*21817992SBaptiste Daroussin * modify flushinp to use file descriptors in SCREEN, rather than 126*21817992SBaptiste Daroussin from TERMINAL, and check if they are for a terminal, like SVr4 127*21817992SBaptiste Daroussin * modify mcprint to use file descriptor in SCREEN, for consistency 128*21817992SBaptiste Daroussin * modify internal function _nc_read_file_entry to show relevant 129*21817992SBaptiste Daroussin filename in warnings 130*21817992SBaptiste Daroussin * improve checks in internal function convert_string for corrupt 131*21817992SBaptiste Daroussin terminfo entry 132*21817992SBaptiste Daroussin * review/improve handling of out-of-memory conditions 133*21817992SBaptiste Daroussin * limit delays to 30 seconds, i.e., padding delays in terminfo, as 134*21817992SBaptiste Daroussin well as napms and delay_output functions 135*21817992SBaptiste Daroussin * fix reallocation loop for vsnprintf in _nc_sprintf_string by 136*21817992SBaptiste Daroussin copying the va_list variable 137*21817992SBaptiste Daroussin * modify delscreen to limit the windows which it creates to just 138*21817992SBaptiste Daroussin those associated with the screen 139*21817992SBaptiste Daroussin * modify endwin to return an error if it is called again without an 140*21817992SBaptiste Daroussin intervening screen update 141*21817992SBaptiste Daroussin * modify wenclose to handle pads 142*21817992SBaptiste Daroussin * eliminate use of PATH_MAX in lib_trace.c 143*21817992SBaptiste Daroussin * provide for any CCHARW_MAX greater than 1 144aae38d10SBaptiste Daroussin 145aae38d10SBaptiste Daroussin These are corrections to existing features: 146*21817992SBaptiste Daroussin * correct loop termination condition in waddnstr and waddnwstr 147*21817992SBaptiste Daroussin * improve parsing in internal function _nc_msec_cost, allowing a 148*21817992SBaptiste Daroussin single decimal point 149*21817992SBaptiste Daroussin * amend parameter check for entire string versus specific length in 150*21817992SBaptiste Daroussin winsnstr and wins_nwstr to match Solaris; make similar correction 151*21817992SBaptiste Daroussin to wins_nwstr 152*21817992SBaptiste Daroussin * correct internal function wadd_wch_literal when adding a 153*21817992SBaptiste Daroussin non-spacing character to a double-width character 154*21817992SBaptiste Daroussin * correct definition of Charable macro for non-wide ncurses library 155*21817992SBaptiste Daroussin . 156aae38d10SBaptiste Daroussin 157aae38d10SBaptiste Daroussin Program improvements 158aae38d10SBaptiste Daroussin 159*21817992SBaptiste Daroussin Several improvements were made to the utility programs. Some were done 160*21817992SBaptiste Daroussin to make the infocmp option "-u" option help refactor the terminal 161*21817992SBaptiste Daroussin database. 162aae38d10SBaptiste Daroussin 163e1865124SBaptiste Daroussin infocmp 164aae38d10SBaptiste Daroussin 165*21817992SBaptiste Daroussin + add limit checks for processing extended capabilities with 166*21817992SBaptiste Daroussin the "-u" option 167*21817992SBaptiste Daroussin + correct initial alignment of extended capabilities, so that 168*21817992SBaptiste Daroussin the "-u" option can be used for more than two terminal types 169*21817992SBaptiste Daroussin + modify "-u" option to not report cancels for strings which 170*21817992SBaptiste Daroussin were already cancelled in a use'd chunk. 171*21817992SBaptiste Daroussin + correct an assignment "-u" for detecting if a boolean is 172*21817992SBaptiste Daroussin unset in a base entry and set in a use'd chunk, i.e., if it 173*21817992SBaptiste Daroussin was cancelled. 174aae38d10SBaptiste Daroussin 175e1865124SBaptiste Daroussin tic 176aae38d10SBaptiste Daroussin 177*21817992SBaptiste Daroussin + correct limit-check when dumping tc/use clause via "-I" 178*21817992SBaptiste Daroussin + check return value of _nc_save_str, in special case where 179*21817992SBaptiste Daroussin extended capabilities are processed but the terminal 180*21817992SBaptiste Daroussin description was not initialized 181*21817992SBaptiste Daroussin + modify check for multiply defined aliases to report problems 182*21817992SBaptiste Daroussin within the current runtime rather than for conflicts with 183*21817992SBaptiste Daroussin pre-existing terminal descriptions. 184*21817992SBaptiste Daroussin + disallow using $TERMINFO or $HOME/.terminfo when "-o" option 185*21817992SBaptiste Daroussin is used 186e1865124SBaptiste Daroussin 187*21817992SBaptiste Daroussin tput and tset 188e1865124SBaptiste Daroussin 189*21817992SBaptiste Daroussin + add "-v" option to tput, to show warnings 190*21817992SBaptiste Daroussin + modify reset command to avoid altering clocal if the terminal 191*21817992SBaptiste Daroussin uses a modem 192*21817992SBaptiste Daroussin + modify reset feature to avoid 1-second sleep if running in a 193*21817992SBaptiste Daroussin pseudo-terminal 194aae38d10SBaptiste Daroussin 195aae38d10SBaptiste Daroussin Examples 196aae38d10SBaptiste Daroussin 197e1865124SBaptiste Daroussin Along with the library and utilities, improvements were made to the 198*21817992SBaptiste Daroussin ncurses-examples: 199*21817992SBaptiste Daroussin * modify test_tparm to account for extended capabilities 200*21817992SBaptiste Daroussin * corrected mouse mask in test/testcurs.c 201*21817992SBaptiste Daroussin * modify test/clip_printw.c to optionally test non-wrapped updates 202*21817992SBaptiste Daroussin * modify test/test_mouse.c to use curses api for raw/noraw 203*21817992SBaptiste Daroussin * modify test/clip_printw.c to optionally test non-wrapped updates 204aae38d10SBaptiste Daroussin 205*21817992SBaptiste Daroussin There is one new demo/test programs: 206aae38d10SBaptiste Daroussin 207*21817992SBaptiste Daroussin test/test_endwin.c 208*21817992SBaptiste Daroussin This program shows the return-status from endwin with different 209*21817992SBaptiste Daroussin combinations of endwin (repeated), initscr, newterm. 210aae38d10SBaptiste Daroussin 211aae38d10SBaptiste Daroussin Terminal database 212aae38d10SBaptiste Daroussin 213aae38d10SBaptiste Daroussin There are several new terminal descriptions: 214*21817992SBaptiste Daroussin * ansi+apparrows 215*21817992SBaptiste Daroussin * contour 216*21817992SBaptiste Daroussin * linux+kbs for terminals which imitate xterm's behavior with Linux 217*21817992SBaptiste Daroussin * rio, rio-direct 218*21817992SBaptiste Daroussin * mostlike 219*21817992SBaptiste Daroussin * ms-vt100-16color, winconsole 220*21817992SBaptiste Daroussin * vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from 221*21817992SBaptiste Daroussin xterm #389 222*21817992SBaptiste Daroussin * putty+cursor to reflect amending of modified cursor-keys in 2021 223*21817992SBaptiste Daroussin * wezterm 224aae38d10SBaptiste Daroussin 225aae38d10SBaptiste Daroussin There are many changes to existing terminal descriptions. Some were 226*21817992SBaptiste Daroussin updates to several descriptions, using the infocmp "-u" option in a 227*21817992SBaptiste Daroussin script to determine which building-block entries could be used to 228*21817992SBaptiste Daroussin replace multiple capability settings (and trim redundant information). 229aae38d10SBaptiste Daroussin 230*21817992SBaptiste Daroussin Other changes include: 231*21817992SBaptiste Daroussin * document XF, kxIN and kxOUT 232*21817992SBaptiste Daroussin * add note on sun regarding wscons/cmdtool/shelltool 233*21817992SBaptiste Daroussin * remove DECCOLM+DECSCLM from foot 234*21817992SBaptiste Daroussin * add xterm+focus to foot+base 235*21817992SBaptiste Daroussin * add ecma+strikeout to putty 236*21817992SBaptiste Daroussin * use CSI 3J in vte-2017 237*21817992SBaptiste Daroussin * use oldxterm+sm+1006 in vte-2014 238*21817992SBaptiste Daroussin * modify xgterm to work around line-drawing bug 239*21817992SBaptiste Daroussin * add xterm focus mode 1004 to xterm+focus as fe/fd capabilities, 240*21817992SBaptiste Daroussin like vim. 241*21817992SBaptiste Daroussin * add xterm+focus to alacritty+common 242*21817992SBaptiste Daroussin * add XR/xr, to work with vim, and use RV/rv to denote DA2 and its 243*21817992SBaptiste Daroussin response 244*21817992SBaptiste Daroussin * add XF flag to xterm+focus so that termcap applications can be 245*21817992SBaptiste Daroussin aware of terminals which may support focus in/out 246*21817992SBaptiste Daroussin * use xterm+focus in xterm-p370 and tmux 247*21817992SBaptiste Daroussin * remove xterm+sm+1006 from tmux 248*21817992SBaptiste Daroussin * NetBSD-related fixes for x68k and wsvt25 249aae38d10SBaptiste Daroussin 250aae38d10SBaptiste Daroussin Documentation 251aae38d10SBaptiste Daroussin 252aae38d10SBaptiste Daroussin As usual, this release 253aae38d10SBaptiste Daroussin * improves documentation by describing new features, 254aae38d10SBaptiste Daroussin * attempts to improve the description of features which users have 255aae38d10SBaptiste Daroussin found confusing 256aae38d10SBaptiste Daroussin * fills in overlooked descriptions of features which were described 257e1865124SBaptiste Daroussin in the NEWS file but treated sketchily in manual pages. 258aae38d10SBaptiste Daroussin 259aae38d10SBaptiste Daroussin In addition to providing background information to explain these 260aae38d10SBaptiste Daroussin features and show how they evolved, there are corrections, 261aae38d10SBaptiste Daroussin clarifications, etc.: 262e1865124SBaptiste Daroussin * Corrections: 263*21817992SBaptiste Daroussin + add assignment in CF_MAN_PAGES to fill in value for 264*21817992SBaptiste Daroussin TERMINFO_DIRS in ncurses, terminfo and tic manpages. 265*21817992SBaptiste Daroussin + clarify interaction of -R option versus -C, -I and -r in 266*21817992SBaptiste Daroussin infocmp manpage. 267*21817992SBaptiste Daroussin + correct manpage description of panel_hidden. 268*21817992SBaptiste Daroussin + improve manpage description for addch versus unctrl format 269*21817992SBaptiste Daroussin used for non-printable characters. 270*21817992SBaptiste Daroussin + improve manpages discussing file descriptors in low-level 271*21817992SBaptiste Daroussin functions. 272*21817992SBaptiste Daroussin + improve description of search rules for terminal descriptions 273*21817992SBaptiste Daroussin in terminfo manpage. 274*21817992SBaptiste Daroussin + modify dist.mk to avoid passing developer's comments in 275*21817992SBaptiste Daroussin manpages into the generated html documentation. 276*21817992SBaptiste Daroussin + modify test-package "ncurses6-doc" to use manpage-aliases, 277*21817992SBaptiste Daroussin which in turn required a change to the configure script to 278*21817992SBaptiste Daroussin factor in the extra-suffix option when deriving alias names. 279e1865124SBaptiste Daroussin * New/improved history and portability sections: 280*21817992SBaptiste Daroussin + add information about "ttycap", termcap's forerunner, to 281*21817992SBaptiste Daroussin tset.1 282*21817992SBaptiste Daroussin + document limitations of tparm, and error-returns in 283*21817992SBaptiste Daroussin curs_terminfo.3x 284*21817992SBaptiste Daroussin + document limitations of tgoto, and error-returns in 285*21817992SBaptiste Daroussin curs_termcap.3x 286e1865124SBaptiste Daroussin * Other improvements: 287*21817992SBaptiste Daroussin + This release has many changes to improve the formatting and 288*21817992SBaptiste Daroussin style of the manpages. 289*21817992SBaptiste Daroussin + Manpages now use consistent section-naming, page headers and 290*21817992SBaptiste Daroussin footers (including the modification date for each page). 291*21817992SBaptiste Daroussin + Table layout has been revised. 292aae38d10SBaptiste Daroussin 293e1865124SBaptiste Daroussin There are no new manual pages (all of the manual page updates are to 294e1865124SBaptiste Daroussin existing pages). 295aae38d10SBaptiste Daroussin 296aae38d10SBaptiste Daroussin Interesting bug-fixes 297aae38d10SBaptiste Daroussin 298*21817992SBaptiste Daroussin The changes to tparm, tgoto which improve the design of the low-level 299*21817992SBaptiste Daroussin interfaces are interesting, but are not bug-fixes per se. 300aae38d10SBaptiste Daroussin 301aae38d10SBaptiste Daroussin Configuration changes 302aae38d10SBaptiste Daroussin 303aae38d10SBaptiste Daroussin Major changes 304aae38d10SBaptiste Daroussin 305*21817992SBaptiste Daroussin These are the major changes (aside from introducing tiparm_s): 306*21817992SBaptiste Daroussin * use wide-character (ncursesw) by default 307*21817992SBaptiste Daroussin * use opaque typedefs by default 308*21817992SBaptiste Daroussin 309*21817992SBaptiste Daroussin However, most of the work on configure scripts was done to reduce 310*21817992SBaptiste Daroussin warnings within the configure script: 311*21817992SBaptiste Daroussin * intrusive warnings from GNU grep regarding fgrep and egrep 312*21817992SBaptiste Daroussin * fatal errors in compile-checks, arising from recent "Modern C" 313*21817992SBaptiste Daroussin efforts by some developers which caused longstanding configure 314*21817992SBaptiste Daroussin checks to fail. 315*21817992SBaptiste Daroussin After repairing the configure script, none of that activity 316*21817992SBaptiste Daroussin affected ncurses because stricter warnings are used routinely in 317*21817992SBaptiste Daroussin development. 318*21817992SBaptiste Daroussin 319*21817992SBaptiste Daroussin Other improvements made to configure checks include 320*21817992SBaptiste Daroussin * use string-hacks in alloc_entry.c, alloc_type.c and hardscroll.c, 321*21817992SBaptiste Daroussin overlooked due to compiler changes in recent OpenBSD releases 322*21817992SBaptiste Daroussin * revise progs.priv.h to provide for NC_ISATTY reuse 323*21817992SBaptiste Daroussin * configure check for MB_LEN_MAX provides warning as needed 324*21817992SBaptiste Daroussin * trim a space after some "-R" options, fixing builds for 325*21817992SBaptiste Daroussin applications built using clang and ncurses on Solaris 326*21817992SBaptiste Daroussin * work around misconfiguration of MacPorts gcc13, which exposes 327*21817992SBaptiste Daroussin invalid definition of MB_LEN_MAX in gcc's fallback copy of 328*21817992SBaptiste Daroussin limits.h 329*21817992SBaptiste Daroussin * modified experimental Windows driver works with xterm mouse 330*21817992SBaptiste Daroussin protocol 331aae38d10SBaptiste Daroussin 332aae38d10SBaptiste Daroussin Configuration options 333aae38d10SBaptiste Daroussin 334*21817992SBaptiste Daroussin There are a few new configure options: 335aae38d10SBaptiste Daroussin 336*21817992SBaptiste Daroussin --disable-setuid-environ 337*21817992SBaptiste Daroussin Compile with environment restriction, so certain environment 338*21817992SBaptiste Daroussin variables are not available when running via a setuid/setgid 339*21817992SBaptiste Daroussin application. These are (for example $TERMINFO) those that allow 340*21817992SBaptiste Daroussin the search path for the terminfo or termcap entry to be 341*21817992SBaptiste Daroussin customized. 342e1865124SBaptiste Daroussin 343*21817992SBaptiste Daroussin A setuid/setgid application inherits its environment variables 344*21817992SBaptiste Daroussin from the current user, in contrast to sudo which may limit the 345*21817992SBaptiste Daroussin environment variables that ncurses uses. 346e1865124SBaptiste Daroussin 347*21817992SBaptiste Daroussin --enable-check-size 348*21817992SBaptiste Daroussin Compile-in feature to detect screensize for terminals which do 349*21817992SBaptiste Daroussin not advertise their screensize, e.g., serial terminals. 350e1865124SBaptiste Daroussin 351*21817992SBaptiste Daroussin --with-abi-altered=NUM 352*21817992SBaptiste Daroussin Override the displayed (rather than compiled-in) ABI. Only 353*21817992SBaptiste Daroussin packagers who have created configurations where the ABI differs 354*21817992SBaptiste Daroussin from ncurses should be interested in this option. 355e1865124SBaptiste Daroussin 356*21817992SBaptiste Daroussin --with-strip-program=XXX 357*21817992SBaptiste Daroussin When stripping executables during install, use the specified 358*21817992SBaptiste Daroussin program rather than "strip" overriding program chosen by the 359*21817992SBaptiste Daroussin install program for stripping executables. 360e1865124SBaptiste Daroussin 361*21817992SBaptiste Daroussin These configure options are modified: 362e1865124SBaptiste Daroussin 363*21817992SBaptiste Daroussin --with-pkg-config-libdir[=DIR] 364*21817992SBaptiste Daroussin The optional DIR parameter can now be "auto" to automatically 365*21817992SBaptiste Daroussin use pkg-config's library directory. 366*21817992SBaptiste Daroussin 367*21817992SBaptiste Daroussin The default is $(libdir). 368*21817992SBaptiste Daroussin 369*21817992SBaptiste Daroussin --with-xterm-kbs[=XXX] 370*21817992SBaptiste Daroussin The default is "auto" which tells the configure script to 371*21817992SBaptiste Daroussin choose BS or DEL according to platform defaults. 372aae38d10SBaptiste Daroussin 373aae38d10SBaptiste Daroussin Portability 374aae38d10SBaptiste Daroussin 375aae38d10SBaptiste Daroussin Many of the portability changes are implemented via the configure 376aae38d10SBaptiste Daroussin script: 377*21817992SBaptiste Daroussin * add/use configure check for clock_gettime, to supersede 378*21817992SBaptiste Daroussin gettimeofday. 379*21817992SBaptiste Daroussin * modify configure script check for pkg-config library directory to 380*21817992SBaptiste Daroussin take into account an older version 0.15.0 which used 381*21817992SBaptiste Daroussin PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR 382*21817992SBaptiste Daroussin * allow for MinGW32-/64-bit configurations to use _DEFAULT_SOURCE 383*21817992SBaptiste Daroussin * modify CF_XOPEN_SOURCE macro's amend default case to avoid 384*21817992SBaptiste Daroussin undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined 385*21817992SBaptiste Daroussin * updated configure script macro CF_XOPEN_SOURCE, for uClibc-ng 386*21817992SBaptiste Daroussin * modify version-check for gcc/g++, now works for msys2 387*21817992SBaptiste Daroussin * build-fixes related to configure-options and/or platform: 388*21817992SBaptiste Daroussin + fix for --enable-fvisibility 389*21817992SBaptiste Daroussin + fix for unusual values of --with-rel-version 390*21817992SBaptiste Daroussin + fix for unusual values of --with-abi-version 391*21817992SBaptiste Daroussin + fix for --disable-tcap-names 392*21817992SBaptiste Daroussin + fix for termcap in nc_access.h 393*21817992SBaptiste Daroussin * other configure-script improvements: 394*21817992SBaptiste Daroussin + recent msys2 headers work with _DEFAULT_SOURCE; amend check 395*21817992SBaptiste Daroussin + use $ac_includes_default in most cases where stdlib.h should 396*21817992SBaptiste Daroussin work 397*21817992SBaptiste Daroussin + use #error consistently vs "make an error" 398*21817992SBaptiste Daroussin + add configure macro for gettimeofday vs inline check 399e1865124SBaptiste Daroussin 400e1865124SBaptiste Daroussin Here are some of the other portability fixes: 401*21817992SBaptiste Daroussin * modify configure scripts/makefiles to omit KEY_RESIZE if the 402*21817992SBaptiste Daroussin corresponding SIGWINCH feature is disabled 403*21817992SBaptiste Daroussin * increase MB_CUR_MAX to 16, matching glibc's MB_LEN_MAX 404*21817992SBaptiste Daroussin * add BSD erase2 to characters handled by tset/reset 405*21817992SBaptiste Daroussin * use getauxval when available, to improve setuid/setgid checks 406*21817992SBaptiste Daroussin * set dwShareMode in calls to CreateConsoleScreenBuffer 407*21817992SBaptiste Daroussin * use CreateFile with "CONIN$", "CONOUT$" rather than GetStdHandle 408*21817992SBaptiste Daroussin to obtain a handle on the actual console, avoiding redirection in 409*21817992SBaptiste Daroussin the MinGW/Win32 configurations 410*21817992SBaptiste Daroussin * modify MinGW driver to return KEY_BACKSPACE when an unmodified 411*21817992SBaptiste Daroussin VK_BACK virtual key is entered 412*21817992SBaptiste Daroussin * modify MinGW configuration to provide for running in MSYS/MSYS2 413*21817992SBaptiste Daroussin shells, assuming ConPTY support 414aae38d10SBaptiste Daroussin _________________________________________________________________ 415aae38d10SBaptiste Daroussin 416aae38d10SBaptiste DaroussinFeatures of ncurses 417aae38d10SBaptiste Daroussin 418aae38d10SBaptiste Daroussin The ncurses package is fully upward-compatible with SVr4 (System V 419aae38d10SBaptiste Daroussin Release 4) curses: 420aae38d10SBaptiste Daroussin * All of the SVr4 calls have been implemented (and are documented). 421*21817992SBaptiste Daroussin * ncurses supports the features of SVr4 curses including keyboard 422*21817992SBaptiste Daroussin mapping, color, form drawing with ACS characters, and automatic 423*21817992SBaptiste Daroussin recognition of keypad and function keys. 424*21817992SBaptiste Daroussin * ncurses provides work-alike replacements of SVr4 supplemental 425*21817992SBaptiste Daroussin libraries based on curses, but which were not specified by X/Open 426*21817992SBaptiste Daroussin Curses: 427*21817992SBaptiste Daroussin + the panel library, supporting a stack of windows with backing 428*21817992SBaptiste Daroussin store 429*21817992SBaptiste Daroussin + the menu library, supporting a uniform but flexible interface 430*21817992SBaptiste Daroussin for menu programming 431aae38d10SBaptiste Daroussin + the form library, supporting data collection through 432*21817992SBaptiste Daroussin on-screen forms 433aae38d10SBaptiste Daroussin * ncurses's terminal database is fully compatible with that used by 434aae38d10SBaptiste Daroussin SVr4 curses. 435*21817992SBaptiste Daroussin + ncurses supports user-defined capabilities that it can see, 436aae38d10SBaptiste Daroussin but which are hidden from SVr4 curses applications using the 437aae38d10SBaptiste Daroussin same terminal database. 438aae38d10SBaptiste Daroussin + It can be optionally configured to match the format used in 439aae38d10SBaptiste Daroussin related systems such as AIX and Tru64. 440aae38d10SBaptiste Daroussin + Alternatively, ncurses can be configured to use hashed 441aae38d10SBaptiste Daroussin databases rather than the directory of files used by SVr4 442aae38d10SBaptiste Daroussin curses. 443aae38d10SBaptiste Daroussin * The ncurses utilities have options to allow you to filter terminfo 444aae38d10SBaptiste Daroussin entries for use with less capable curses/terminfo versions such as 445*21817992SBaptiste Daroussin the HP-UX and AIX ports. 4460e3d5408SPeter Wemm 4470e3d5408SPeter Wemm The ncurses package also has many useful extensions over SVr4: 448*21817992SBaptiste Daroussin * The API is 8-bit clean and base-level conformant with the X/Open 449*21817992SBaptiste Daroussin Curses specification, XSI curses (that is, it implements all BASE 450*21817992SBaptiste Daroussin level features, and almost all EXTENDED features). It includes 451*21817992SBaptiste Daroussin many function calls not supported under SVr4 curses (but 452*21817992SBaptiste Daroussin portability of all calls is documented so you can use the SVr4 453*21817992SBaptiste Daroussin subset only). 4541759abf3SPeter Wemm * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost 4550e3d5408SPeter Wemm corner of the screen if your terminal has an insert-character 4560e3d5408SPeter Wemm capability. 4570e3d5408SPeter Wemm * Ada95 and C++ bindings. 4584a1a9510SRong-En Fan * Support for mouse event reporting with X Window xterm and FreeBSD 4594a1a9510SRong-En Fan and OS/2 console windows. 4600e3d5408SPeter Wemm * Extended mouse support via Alessandro Rubini's gpm package. 46106bfebdeSXin LI * The function wresize allows you to resize windows, preserving 4620e3d5408SPeter Wemm their data. 46306bfebdeSXin LI * The function use_default_colors allows you to use the terminal's 4640e3d5408SPeter Wemm default colors for the default color pair, achieving the effect of 4650e3d5408SPeter Wemm transparent colors. 46606bfebdeSXin LI * The functions keyok and define_key allow you to better control the 46706bfebdeSXin LI use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by 46806bfebdeSXin LI defining more than one control sequence to map to a given key 46906bfebdeSXin LI code. 470*21817992SBaptiste Daroussin * Support for direct-color terminals, such as modern xterm. 471aae38d10SBaptiste Daroussin * Support for 256-color terminals, such as modern xterm. 4724a1a9510SRong-En Fan * Support for 16-color terminals, such as aixterm and modern xterm. 4730e3d5408SPeter Wemm * Better cursor-movement optimization. The package now features a 4740e3d5408SPeter Wemm cursor-local-movement computation more efficient than either BSD's 4750e3d5408SPeter Wemm or System V's. 4760e3d5408SPeter Wemm * Super hardware scrolling support. The screen-update code 4770e3d5408SPeter Wemm incorporates a novel, simple, and cheap algorithm that enables it 4780e3d5408SPeter Wemm to make optimal use of hardware scrolling, line-insertion, and 4790e3d5408SPeter Wemm line-deletion for screen-line movements. This algorithm is more 48006bfebdeSXin LI powerful than the 4.4BSD curses quickch routine. 4810e3d5408SPeter Wemm * Real support for terminals with the magic-cookie glitch. The 4820e3d5408SPeter Wemm screen-update code will refrain from drawing a highlight if the 4830e3d5408SPeter Wemm magic- cookie unattributed spaces required just before the 4840e3d5408SPeter Wemm beginning and after the end would step on a non-space character. 4850e3d5408SPeter Wemm It will automatically shift highlight boundaries when doing so 4860e3d5408SPeter Wemm would make it possible to draw the highlight without changing the 4870e3d5408SPeter Wemm visual appearance of the screen. 4880e3d5408SPeter Wemm * It is possible to generate the library with a list of pre-loaded 4890e3d5408SPeter Wemm fallback entries linked to it so that it can serve those terminal 4900e3d5408SPeter Wemm types even when no terminfo tree or termcap file is accessible 4910e3d5408SPeter Wemm (this may be useful for support of screen-oriented programs that 4920e3d5408SPeter Wemm must run in single-user mode). 493e1865124SBaptiste Daroussin * The tic/captoinfo utility provided with ncurses has the ability to 494e1865124SBaptiste Daroussin translate many termcaps from the XENIX, IBM and AT&T extension 495e1865124SBaptiste Daroussin sets. 496e1865124SBaptiste Daroussin * A BSD-like tset utility is provided. 4970e3d5408SPeter Wemm * The ncurses library and utilities will automatically read terminfo 4980e3d5408SPeter Wemm entries from $HOME/.terminfo if it exists, and compile to that 4990e3d5408SPeter Wemm directory if it exists and the user has no write access to the 5000e3d5408SPeter Wemm system directory. This feature makes it easier for users to have 5010e3d5408SPeter Wemm personal terminfo entries without giving up access to the system 5020e3d5408SPeter Wemm terminfo directory. 5030e3d5408SPeter Wemm * You may specify a path of directories to search for compiled 5040e3d5408SPeter Wemm descriptions with the environment variable TERMINFO_DIRS (this 5050e3d5408SPeter Wemm generalizes the feature provided by TERMINFO under stock System 5060e3d5408SPeter Wemm V.) 5070e3d5408SPeter Wemm * In terminfo source files, use capabilities may refer not just to 5080e3d5408SPeter Wemm other entries in the same source file (as in System V) but also to 5090e3d5408SPeter Wemm compiled entries in either the system terminfo directory or the 5100e3d5408SPeter Wemm user's $HOME/.terminfo directory. 511e1865124SBaptiste Daroussin * The table-of-entries utility toe makes it easy for users to see 512e1865124SBaptiste Daroussin exactly what terminal types are available on the system. 513*21817992SBaptiste Daroussin * X/Open Curses permits most functions it specifies to be made 514*21817992SBaptiste Daroussin available as macros as well. ncurses does this 515*21817992SBaptiste Daroussin + to improve performance, e.g., for operations composed of 516*21817992SBaptiste Daroussin simpler functions such as cursor movement following by adding 517*21817992SBaptiste Daroussin text to the screen, 518*21817992SBaptiste Daroussin + to simplify the implementation by reusing functions which use 519*21817992SBaptiste Daroussin common parameters, e.g., the standard screen stdscr, and 520*21817992SBaptiste Daroussin + to provide functions that return values via their parameters 521*21817992SBaptiste Daroussin Except for the last case, ncurses provides a non-macro 522*21817992SBaptiste Daroussin implementation of the function. If the macro definition is 523*21817992SBaptiste Daroussin disabled with #undef, or by defining NCURSES_NOMACROS the function 524*21817992SBaptiste Daroussin may be linked (and its calls will be checked against the 525*21817992SBaptiste Daroussin prototype). 526e1865124SBaptiste Daroussin * Extensive documentation is provided (see the Additional Reading 527e1865124SBaptiste Daroussin section of the ncurses FAQ for online documentation). 5280e3d5408SPeter Wemm 529aae38d10SBaptiste DaroussinApplications using ncurses 5300e3d5408SPeter Wemm 531aae38d10SBaptiste Daroussin The ncurses distribution includes a selection of test programs 532aae38d10SBaptiste Daroussin (including a few games). These are available separately as 533e1865124SBaptiste Daroussin ncurses-examples 5340e3d5408SPeter Wemm 535aae38d10SBaptiste Daroussin The ncurses library has been tested with a wide variety of 536aae38d10SBaptiste Daroussin applications including: 537aae38d10SBaptiste Daroussin 538aae38d10SBaptiste Daroussin aptitude 539aae38d10SBaptiste Daroussin FrontEnd to Apt, the debian package manager 540aae38d10SBaptiste Daroussin 541e1865124SBaptiste Daroussin https://wiki.debian.org/Aptitude 5420e3d5408SPeter Wemm 5431759abf3SPeter Wemm cdk 54415589c42SPeter Wemm Curses Development Kit 545aae38d10SBaptiste Daroussin 546e1865124SBaptiste Daroussin https://invisible-island.net/cdk/ 5471759abf3SPeter Wemm 5480e3d5408SPeter Wemm ded 54915589c42SPeter Wemm directory-editor 550aae38d10SBaptiste Daroussin 551e1865124SBaptiste Daroussin https://invisible-island.net/ded/ 5520e3d5408SPeter Wemm 5530e3d5408SPeter Wemm dialog 5540e3d5408SPeter Wemm the underlying application used in Slackware's setup, and the 555aae38d10SBaptiste Daroussin basis for similar install/configure applications on many 556aae38d10SBaptiste Daroussin systems. 557aae38d10SBaptiste Daroussin 558e1865124SBaptiste Daroussin https://invisible-island.net/dialog/ 5590e3d5408SPeter Wemm 5601759abf3SPeter Wemm lynx 561aae38d10SBaptiste Daroussin the text WWW browser 5620e3d5408SPeter Wemm 563e1865124SBaptiste Daroussin https://lynx.invisible-island.net/ 5640e3d5408SPeter Wemm 5651759abf3SPeter Wemm mutt 5660e3d5408SPeter Wemm mail utility 567aae38d10SBaptiste Daroussin 568e1865124SBaptiste Daroussin http://www.mutt.org/ 5690e3d5408SPeter Wemm 5701759abf3SPeter Wemm ncftp 5710e3d5408SPeter Wemm file-transfer utility 572aae38d10SBaptiste Daroussin 573e1865124SBaptiste Daroussin https://www.ncftp.com/ 5740e3d5408SPeter Wemm 5750e3d5408SPeter Wemm nvi 576aae38d10SBaptiste Daroussin New vi uses ncurses. 5774a1a9510SRong-En Fan 578*21817992SBaptiste Daroussin https://sites.google.com/a/bostic.com/keithbostic/the-berkeley- 579*21817992SBaptiste Daroussin vi-editor-home-page 580aae38d10SBaptiste Daroussin 581aae38d10SBaptiste Daroussin ranger 582aae38d10SBaptiste Daroussin A console file manager with VI key bindings in Python. 583aae38d10SBaptiste Daroussin 584e1865124SBaptiste Daroussin https://ranger.github.io/ 5850e3d5408SPeter Wemm 5861759abf3SPeter Wemm tin 587aae38d10SBaptiste Daroussin newsreader, supporting color, MIME 588aae38d10SBaptiste Daroussin 589e1865124SBaptiste Daroussin http://www.tin.org/ 590aae38d10SBaptiste Daroussin 591aae38d10SBaptiste Daroussin vifm 592aae38d10SBaptiste Daroussin File manager with vi like keybindings 593aae38d10SBaptiste Daroussin 594e1865124SBaptiste Daroussin https://vifm.info/ 5950e3d5408SPeter Wemm 5960e3d5408SPeter Wemm as well as some that use ncurses for the terminfo support alone: 5970e3d5408SPeter Wemm 5981759abf3SPeter Wemm minicom 599aae38d10SBaptiste Daroussin terminal emulator for serial modem connections 600aae38d10SBaptiste Daroussin 601*21817992SBaptiste Daroussin https://salsa.debian.org/minicom-team/minicom 602aae38d10SBaptiste Daroussin 603aae38d10SBaptiste Daroussin mosh 604aae38d10SBaptiste Daroussin a replacement for ssh. 605aae38d10SBaptiste Daroussin 606*21817992SBaptiste Daroussin https://mosh.org/ 607aae38d10SBaptiste Daroussin 608aae38d10SBaptiste Daroussin tack 609aae38d10SBaptiste Daroussin terminfo action checker 610aae38d10SBaptiste Daroussin 611e1865124SBaptiste Daroussin https://invisible-island.net/ncurses/tack.html 612aae38d10SBaptiste Daroussin 613aae38d10SBaptiste Daroussin tmux 614aae38d10SBaptiste Daroussin terminal multiplexor 615aae38d10SBaptiste Daroussin 616e1865124SBaptiste Daroussin https://github.com/tmux/tmux/wiki 6170e3d5408SPeter Wemm 6180e3d5408SPeter Wemm vile 619aae38d10SBaptiste Daroussin vi-like-emacs may be built to use the terminfo, termcap or 620aae38d10SBaptiste Daroussin curses interfaces. 6210e3d5408SPeter Wemm 622e1865124SBaptiste Daroussin https://invisible-island.net/vile/ 6230e3d5408SPeter Wemm 624aae38d10SBaptiste Daroussin and finally, those which use only the termcap interface: 6250e3d5408SPeter Wemm 626aae38d10SBaptiste Daroussin emacs 627aae38d10SBaptiste Daroussin text editor 628aae38d10SBaptiste Daroussin 629e1865124SBaptiste Daroussin https://www.gnu.org/software/emacs/ 630aae38d10SBaptiste Daroussin 631aae38d10SBaptiste Daroussin less 632aae38d10SBaptiste Daroussin The most commonly used pager (a program that displays text 633aae38d10SBaptiste Daroussin files). 634aae38d10SBaptiste Daroussin 635e1865124SBaptiste Daroussin http://www.greenwoodsoftware.com/less/ 636aae38d10SBaptiste Daroussin 637aae38d10SBaptiste Daroussin screen 638aae38d10SBaptiste Daroussin terminal multiplexor 639aae38d10SBaptiste Daroussin 640e1865124SBaptiste Daroussin https://www.gnu.org/software/screen/ 641aae38d10SBaptiste Daroussin 642aae38d10SBaptiste Daroussin vim 643aae38d10SBaptiste Daroussin text editor 644aae38d10SBaptiste Daroussin 645e1865124SBaptiste Daroussin https://www.vim.org/ 646aae38d10SBaptiste Daroussin 647aae38d10SBaptiste DaroussinDevelopment activities 648aae38d10SBaptiste Daroussin 649aae38d10SBaptiste Daroussin Zeyd Ben-Halim started ncurses from a previous package pcurses, 650aae38d10SBaptiste Daroussin written by Pavel Curtis. Eric S. Raymond continued development. 651e1865124SBaptiste Daroussin Juergen Pfeifer wrote most of the form and menu libraries. 652e1865124SBaptiste Daroussin 653e1865124SBaptiste Daroussin Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey 654e1865124SBaptiste Daroussin has acted as the maintainer for the Free Software Foundation, which 655*21817992SBaptiste Daroussin held a copyright on ncurses for releases 4.2 through 6.1. Following 656e1865124SBaptiste Daroussin the release of ncurses 6.1, effective as of release 6.2, copyright for 657e1865124SBaptiste Daroussin ncurses reverted to Thomas E. Dickey (see the ncurses FAQ for 658e1865124SBaptiste Daroussin additional information). 659aae38d10SBaptiste Daroussin 660aae38d10SBaptiste Daroussin Contact the current maintainers at 661aae38d10SBaptiste Daroussin 662e1865124SBaptiste Daroussin bug-ncurses@gnu.org 6630e3d5408SPeter Wemm 6640e3d5408SPeter Wemm To join the ncurses mailing list, please write email to 665aae38d10SBaptiste Daroussin 666e1865124SBaptiste Daroussin bug-ncurses-request@gnu.org 667aae38d10SBaptiste Daroussin 668aae38d10SBaptiste Daroussin containing the line: 669aae38d10SBaptiste Daroussin 6700e3d5408SPeter Wemm subscribe <name>@<host.domain> 6710e3d5408SPeter Wemm 6720e3d5408SPeter Wemm This list is open to anyone interested in helping with the development 6730e3d5408SPeter Wemm and testing of this package. 6740e3d5408SPeter Wemm 675e1865124SBaptiste Daroussin Beta versions of ncurses are made available at 6760e3d5408SPeter Wemm 677*21817992SBaptiste Daroussin https://invisible-island.net/archives/ncurses/current/ and 678e1865124SBaptiste Daroussin https://invisible-mirror.net/archives/ncurses/current/ . 679e1865124SBaptiste Daroussin 680e1865124SBaptiste Daroussin Patches to the current release are made available at 681e1865124SBaptiste Daroussin 682*21817992SBaptiste Daroussin https://invisible-island.net/archives/ncurses/6.4/ and 683*21817992SBaptiste Daroussin https://invisible-mirror.net/archives/ncurses/6.4/ . 6840e3d5408SPeter Wemm 685aae38d10SBaptiste Daroussin There is an archive of the mailing list here: 6860e3d5408SPeter Wemm 687*21817992SBaptiste Daroussin https://lists.gnu.org/archive/html/bug-ncurses . 6880e3d5408SPeter Wemm 689aae38d10SBaptiste DaroussinRelated resources 690aae38d10SBaptiste Daroussin 691aae38d10SBaptiste Daroussin The release notes make scattered references to these pages, which may 692aae38d10SBaptiste Daroussin be interesting by themselves: 693e1865124SBaptiste Daroussin * ncurses licensing 694e1865124SBaptiste Daroussin * Symbol versioning in ncurses 695e1865124SBaptiste Daroussin * Comments on ncurses versus slang (S-Lang) 696*21817992SBaptiste Daroussin * Comments on OpenBSD 697e1865124SBaptiste Daroussin * tack - terminfo action checker 698e1865124SBaptiste Daroussin * tctest - termcap library checker 699e1865124SBaptiste Daroussin * Terminal Database 700aae38d10SBaptiste Daroussin 701aae38d10SBaptiste DaroussinOther resources 7020e3d5408SPeter Wemm 7034a1a9510SRong-En Fan The distribution provides a newer version of the terminfo-format 704e1865124SBaptiste Daroussin terminal description file once maintained by Eric Raymond . Unlike the 705e1865124SBaptiste Daroussin older version, the termcap and terminfo data are provided in the same 706e1865124SBaptiste Daroussin file, which also provides several user-definable extensions beyond the 707*21817992SBaptiste Daroussin X/Open Curses specification. 7080e3d5408SPeter Wemm 7090e3d5408SPeter Wemm You can find lots of information on terminal-related topics not 710*21817992SBaptiste Daroussin covered in the terminfo file in Richard Shuford's archive (original). 711*21817992SBaptiste Daroussin The collection of computer manuals at bitsavers.org has also been 712*21817992SBaptiste Daroussin useful. 713aae38d10SBaptiste Daroussin 714e1865124SBaptiste Daroussin * Overview 715e1865124SBaptiste Daroussin * Release Notes 716e1865124SBaptiste Daroussin + Library improvements 717e1865124SBaptiste Daroussin o New features 718e1865124SBaptiste Daroussin o Other improvements 719e1865124SBaptiste Daroussin + Program improvements 720e1865124SBaptiste Daroussin o Utilities 721e1865124SBaptiste Daroussin o Examples 722e1865124SBaptiste Daroussin + Terminal database 723e1865124SBaptiste Daroussin + Documentation 724e1865124SBaptiste Daroussin + Interesting bug-fixes 725e1865124SBaptiste Daroussin + Configuration changes 726e1865124SBaptiste Daroussin o Major changes 727e1865124SBaptiste Daroussin o Configuration options 728e1865124SBaptiste Daroussin + Portability 729e1865124SBaptiste Daroussin * Features of ncurses 730e1865124SBaptiste Daroussin * Applications using ncurses 731e1865124SBaptiste Daroussin * Development activities 732e1865124SBaptiste Daroussin * Related resources 733e1865124SBaptiste Daroussin * Other resources 734