X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ANNOUNCE;h=8bda60e2f074cc2ab7ca9afa82649525f969f0c5;hp=95ae5be25603f8da267c560fe068c19ceeb7df22;hb=8f6d94b8d6211a2323caef53fa4c96c475ec9a62;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c;ds=sidebyside diff --git a/ANNOUNCE b/ANNOUNCE index 95ae5be2..8bda60e2 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,231 +1,1368 @@ + Announcing ncurses 6.1 + +Overview + + The ncurses (new curses) library is a free software emulation of + curses in System V Release 4.0 (SVr4), and more. It uses terminfo + format, supports pads and color and multiple highlights and forms + characters and function-key mapping, and has all the other SVr4-curses + enhancements over BSD curses. SVr4 curses became the basis of X/Open + Curses. + + In mid-June 1995, the maintainer of 4.4BSD curses declared that he + considered 4.4BSD curses obsolete, and encouraged the keepers of unix + releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. + + Since 1995, ncurses has been ported to many systems: + * It is used in almost every system based on the Linux kernel (aside + from some embedded applications). + * It is used as the system curses library on OpenBSD, FreeBSD and + OSX. + * It is used in environments such as Cygwin and MinGW. The first of + these was EMX on OS/2 Warp. + * It is used (though usually not as the system curses) on all of the + vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris, + Tru64. + * It should work readily on any ANSI/POSIX-conforming unix. - Announcing ncurses 4.1 - - The ncurses (new curses) library is a freeware emulation of System V - Release 4.0 curses. It uses terminfo format, supports pads and color - and multiple highlights and forms characters and function-key mapping, - and has all the other SYSV-curses enhancements over BSD curses. - - In mid-June 1995, the maintainer of 4.4BSD curses declared that he - considered 4.4BSD curses obsolete, and is encouraging the keepers of - Unix releases such as BSD/OS, freeBSD and netBSD to switch over to - ncurses. - - The ncurses code was developed under Linux. It should port easily to - any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp! - The distribution includes the library and support utilities, including - a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), - tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full - manual pages are provided for the library and tools. - - The ncurses distribution is available via anonymous FTP at: - [1]ftp://ftp.clark.net/pub/dickey/ncurses. and - [2]ftp://ftp.netcom.com/pub/zm/zmbenhal/ncurses. It is also carried on - the GNU distribution site at [3]ftp://prep.ai.mit.edu/pub/gnu. - - Features of ncurses - - The ncurses package is fully compatible with SVr4 curses: - - * All 257 of the SVr4 calls have been implemented (and are - documented). - * Full support for SVr4 curses features including keyboard mapping, - color, forms-drawing with ACS characters, and automatic - recognition of keypad and function keys. - * An emulation of the System V Release 4 panels library, supporting - a stack of windows with backing store, is included. - * An emulation of the System V Release 4 menus library, supporting a - uniform but flexible interface for menu programming, is included. - * An emulation of the System V Release 4 form library, supporting - data collection through on-screen forms, is included. - * Binary terminfo entries generated by the ncurses tic(1) - implementation are bit-for-bit-compatible with the entry format - SVr4 curses uses. - * The utilities have options to allow you to filter terminfo entries - for use with less capable curses/terminfo versions such as the - HP/UX and AIX ports. - + * [1]captoinfo, a termcap conversion tool + * [2]clear, utility for clearing the screen + * [3]infocmp, the terminfo decompiler + * [4]tabs, set tabs on a terminal + * [5]tic, the terminfo compiler + * [6]toe, list (table of) terminfo entries + * [7]tput, utility for retrieving terminal capabilities in shell + scripts + * [8]tset, to initialize the terminal + + Full manual pages are provided for the library and tools. + + The ncurses distribution is available at ncurses' [9]homepage: + + [10]ftp://ftp.invisible-island.net/ncurses/ or + [11]https://invisible-mirror.net/archives/ncurses/ . + + It is also available via anonymous FTP at the GNU distribution site + + [12]ftp://ftp.gnu.org/gnu/ncurses/ . + +Release Notes + + These notes are for ncurses 6.1, released January 27, 2018. + + This release is designed to be source-compatible with ncurses 5.0 + through 6.0; providing extensions to the application binary interface + (ABI). Although the source can still be configured to support the + ncurses 5 ABI, the intent of the release is to provide extensions to + the ncurses 6 ABI: + * improve integration of tput and tset + * provide support for extended numeric capabilities. + + There are, of course, numerous other improvements, listed in this + announcement. + + The release notes also mention some bug-fixes, but are focused on new + features and improvements to existing features since ncurses 6.0 + release. + + Library improvements + + New features + + The improved integration of tput and tset made only small changes to + the libraries. However, supporting extended numeric capabilities + required a few changes: + * The TERMINAL structure in is now opaque. Doing that + allowed making the structure larger, to hold the extended numeric + data. + A few applications required changes during development of + ncurses 6.1 because those applications misused the members of that + structure, e.g., directly modifying it rather than using + [13]def_prog_mode. + * Having made TERMINAL opaque (and because none of the library + functions use anything except a pointer to TERMINAL), it was + possible to increase the size of the structure, adding to the end. + Existing applications which were linked to the ncurses 6.0 + high-level (ncurses, ncursesw) and low-level (tinfo, tinfo) + libraries should not require re-linking since the binary interface + did not change, nor did the structure offsets with TERMINAL + change. + A few applications use the inner TERMTYPE structure's offsets to + refer to terminfo capabilities within that structure. Again, those + do not require modification because their offsets within TERMINAL + did not change. + * When configured for wide-characters, i.e., "ncursesw" the TERMINAL + structure is extended. + The new data in TERMINAL holds the same information as TERMTYPE, + but with larger numbers ("int" versus "short"). It is named + TERMTYPE2. + The library uses this structure internally in preference to + TERMTYPE, referring to TERMTYPE only to initialize it for + applications that use the capabilities defined in + * When configured for 8-bit (narrow) characters, the TERMTYPE2 + structure is not used. + * The updated application binary interface is 6.1.20171230 (used for + new [14]versioned symbols), although the interface changes were + developed several months previously. + + The motivation for making this extension came from noticing that + [15]termcap applications could (though not [16]realistically) use + larger numbers than would fit in 16-bits, and the fact that the number + of color pairs for a 256-color xterm could not be expressed in + terminfo (i.e., 32767 versus 65536). Also, a few terminals support + direct-colors, which could use the extension. + + Generally speaking, applications that use internal details of a + library are unsupported. There was exactly one exception for ncurses: + the tack program used the internal details of TERMINAL, because it + provides an ncurses-specific feature for interactively modifying a + terminfo description and writing the updated description to a + text-file. It was possible to not only separate tack from these + [17]internal details of ncurses, but to generalize it so that the + program works with Unix curses (omitting the ncurses-specific + feature). That was released as [18]tack 1.08 in July 2017. + + While making changes to tack to eliminate its dependency upon ncurses + internals, the publicly-visible details of those internals were + reviewed, and some symbols were moved to private header files, while + others were marked explicitly as ncurses internals. Future releases of + ncurses may eliminate some of those symbols (such as those used by + tack 1.07) because they are neither part of the API or the ABI. + + Using the TERMTYPE2 extended numeric capabilities, it is possible to + support both color pair values and color values past 32767. Taking + compatibility into account, developers readily understand that neither + function signatures nor structure offsets change. Also, existing + functions have to operate with the extended numbers. Most of that work + is internal to the library. For the external interfaces, a hybrid + approach was used: + * X/Open Curses defined function prototypes such as wattr_set with + an unused parameter, for "future" use. After 25 years, the future + is here: ncurses uses the parameter to augment color pair values + as described in the [19]manual page. + * Other functions such as those defining color pairs did not have a + corresponding reserved parameter. For those, ncurses defines + extended versions such as init_extended_pair (versus init_pair), + init_extended_color (versus init_color). + + Additionally, to improve performance other changes (and extensions) + are provided in this release: + * Several new functions simplify management of large sets of color + pairs: reset_color_pairs, alloc_pair, find_pair and free_pair. + * New "RGB" extension capability for direct-color support is used to + improve performance of color_content. + * The internal colorpair_t is now a struct, eliminating an internal + 8-bit limit on colors + * Allocation for SCREEN's color-pair table starts small, grows on + demand up to the limit given in the terminal description. + * setcchar and getcchar now treat a negative color-pair as an error. + + Other improvements + + These are new or revised features: + * modify c++/etip.h.in to accommodate deprecation of throw and + throws in c++17 + * add new function unfocus_current_field + * add option to preserve leading whitespace in form fields + * add a macro for is_linetouched and adjust the function's return + value to make it possible for most applications to check for an + error-return. + * add build-time utility report_offsets to help show when the + various configurations of tinfo library are compatible or not. + + These were done to limit or ultimately deprecate features: + * drop two symbols obsoleted in 2004: _nc_check_termtype, and + _nc_resolve_uses + * move _nc_tracebits, _tracedump and _tracemouse to curses.priv.h, + since they are not part of the suggested ABI6. + * mark some structs in form/menu/panel libraries as potentially + opaque without modifying API/ABI. + * ifdef'd header-file definition of mouse_trafo with + NCURSES_NOMACROS + * remove initialization-check for calling napms in the term-driver + configuration; none is needed. + * modify trace to avoid overwriting existing file + + These are improvements to existing features: + * modify make_hash to allow building with address-sanitizer, + assuming that --disable-leaks is configured. + * move SCREEN field for use_tioctl data before the ncursesw fields, + and limit that to the sp-funcs configuration to improve termlib + compatibility + * modify db-iterator: + + ignore zero-length files in db-iterator; these are useful for + instance to suppress $HOME/.terminfo when not wanted. + + modify update_getenv to ensure that environment variables + which are not initially set will be checked later if an + application happens to set them + * modify _nc_outc_wrapper to use the standard output if the screen + was not initialized, rather than returning an error. + * improve checks for low-level terminfo functions when the terminal + has not been initialized. + * modify set_curterm to update ttytype[] data used by longname/p> + * modify _nc_get_screensize to allow for use_env and use_tioctl + state to be per-screen when sp-funcs are configured, better + matching the behavior when using the term-driver configuration. + * remove an early-return from _nc_do_color, which can interfere with + data needed by bkgd when ncurses is configured with extended + colors + * incorporate A_COLOR mask into COLOR_PAIR, in case user application + provides an out-of-range pair number + * modify logic for endwin-state to be able to detect the case where + the screen was never initialized, using that to trigger a flush of + ncurses' buffer for mvcur, e.g., in the sample program dots_mvcur + for the term-driver configuration. + + These are corrections to existing features: + * fixes for writing extended color pairs in putwin. + * modify no-leaks code for lib_cur_term.c to account for the tgetent + cache. + * amend handling of the repeat_char capability in EmitRange to avoid + scope creep: translate the character to the alternate character + set when the alternate character set is enabled, and do not use + repeat_char for characters past 255. + * improve wide-character implementation of myADDNSTR in + frm_driver.c, which was inconsistent with the normal + implementation. + * modify winnstr and winchnstr to return error if the output pointer + is null, as well as adding a null pointer check of the window + pointer for better compatibility with other implementations. + * modify setupterm to save original tty-modes so that erasechar + works as expected. Also modify _nc_setupscreen to avoid redundant + calls to get original tty-modes. + * modify wattr_set and wattr_get to return ERR if win-parameter is + null, as documented. + * correct order of initialization for traces in use_env and + use_tioctl versus first _tracef calls. + * correct parameters for copywin call in _nc_Synchronize_Attributes + * flush the standard output in _nc_flush for the case where SP is + zero, e.g., when called via putp. This fixes a scenario where + "tput flash" did not work after changes in 20130112. + * amend internal use of tputs to consistently use the number of + lines affected, e.g., for insert/delete character operations. + While merging terminfo source early in 1995, several descriptions + used the "*" proportional delay for these operations, prompting a + change in doupdate. + * correct return-value of extended putwin. + * double-width multibyte characters were not counted properly in + winsnstr and wins_nwstr. + * amend fix for _nc_ripoffline from 20091031 to make test/ditto.c + work in threaded configuration. + * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as + a whole rather than their multibyte equivalents. + * minor fix in wadd_wchnstr to ensure that each cell has nonzero + width. + * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of + error status when processing Unicode values which are not mapped. + * add missing assignment in lib_getch.c to make notimeout work + + Program improvements + + While reviewing user feedback, it became apparent that the differences + between [20]reset (an alias for tset) and "tput reset" were confusing: + * one ([21]tset) updated the terminal modes, but used only part of + the terminfo capabilities for initialization, while + * the other ([22]tput) used all of the terminal capabilities while + neglecting the terminal modes. + + On further investigation, it turned out that the differences were + largely an accident due to the way those programs had evolved. + + This release eliminates the unnecessary differences, using the same + approach for tput's init (initialization), reset and clear operations + as the separate [23]reset and [24]clear programs. Doing this does not + change the command-line options; existing scripts are unaffected. + + These are the user-visible changes for the three programs (tput, tset + and clear): + * add the terminal-mode parts of "reset" (aka tset) to the "tput + reset" command, making the two almost the same except for + window-size. + * improve tput's check for being called as "init" or "reset" to + allow for transformed names. + * add "clear" as a possible link/alias to tput. + * amend changes for tput to reset tty modes to "sane" if the program + is run as "reset", like tset. Likewise, ensure that tset sends + either reset- or init-strings. + * add -x option to clear/tput to make the E3 extension optional + * add functionality of "tset -w" to tput, like the "-c" feature this + is not optional in tput. + * add options -T and -V to clear command for compatibility with + tput. + * drop long-obsolete "-n" option from tset. + * modify tset's assignment to TERM in its output to reflect the name + by which the terminal description is found, rather than the + primary name. That was an unnecessary part from the initial + conversion of tset from termcap to terminfo. The termcap library + in 4.3BSD did this to avoid using the short 2-character name + * remove a restriction in tput's support for termcap names which + omitted capabilities normally not shown in termcap translations + * add usage message to clear command + * improve usage messages for tset and tput. + + Other user-visible improvements and new features include: + * modify tic/infocmp display of numeric values to use hexadecimal + when they are "close" to a power of two, making the result more + readable. + * add "-W" option to tic/infocmp to force long strings to wrap. + + This is in addition to the "-w" option which attempts to fit + capabilities into a given line-length. + + If "-f" option splits line, do not further split it with + "-W". + + Begin a new line when adding "use=" after a wrapped line. + * add "-q" option to infocmp to suppress the "Reconstructed from" + comment from the header, and a corresponding option to tic to + suppress all comments from the "tic -I" output. + * Sorted options in usage message for infocmp, to make it simpler to + see unused letters. + * Updated usage message for tic, adding "-0" option. + * add infocmp/tic "-Q" option, which allows one to dump the compiled + form of the terminal entry, in hexadecimal or base64: + + A "b64:" prefix in the TERMINFO variable tells the terminfo + reader to use base64 according to RFC-3548 as well as + RFC-4648 url/filename-safe format. + + A "hex:" prefix tells the terminfo reader to accept + hexadecimal data as generated by "infocmp -0qQ1". + + Other less-visible improvements and new features include: + * modify utility headers such as tic.h to make it clearer which are + externals that are used by tack. + * add "reset" to list of programs whose names might change in + manpages due to program-transformation configure options. + * modify "-T" option of clear and tput to call use_tioctl to obtain + the operating system's notion of the screensize if possible. + * add check in tput for init/reset operands to ensure those use a + terminal. + * modify programs clear, tabs, tput and tset to pass the actual tty + file descriptor to setupterm rather than the standard output or + error, making padding work. + * change tset's initialization to allow it to get settings from the + standard input as well as /dev/tty, to be more effective when + output or error are redirected. + * amend check in tput, tabs and clear to allow those to use the + database-only features in cron if a "-T" option gives a suitable + terminal name. + * improve error message from tset/reset when both stderr/stdout are + redirected to a file or pipe. + + Several of the less apparent features deal with translation of + terminfo to termcap (and the reverse), with corresponding checks by + tic: + * modify check in fmt_entry to handle a cancelled reset string. Make + similar fixes in other parts of dump_entry.c and tput.c + * correct read of terminfo entry in which all strings are absent or + explicitly cancelled. Before this fix, the result was that all + were treated as only absent. + * modify infocmp to suppress mixture of absent/cancelled + capabilities that would only show as "NULL, NULL", unless the "-q" + option is used, e.g., to show "-, @" or "@, -". + * correct a warning from tic about keys which are the same, to skip + over missing/cancelled values. + * add check in tic for use of bold, etc., video attributes in the + color capabilities, accounting whether the feature is listed in + ncv. + * add check in tic for unnecessary use of "2" to denote a shifted + special key. + * improve check in tic for delays by also warning about beep/flash + when a delay is not embedded, or if those use the VT100 reverse + video escape without using a delay. + * improve checks in trim_sgr0, comp_parse.c and parse_entry.c, for + cancelled string capabilities. + * add check in tic for some syntax errors of delays, as well as use + of proportional delays for non-line capabilities. + * add check in tic for conflict between ritm, rmso, rmul versus + sgr0. + * add check in _nc_parse_entry for invalid entry name, setting the + name to "invalid" to avoid problems storing entries. + * improve _nc_tparm_analyze, using that to extend the checks made by + tic for reporting inconsistencies between the expected number of + parameters for a capability and the actual. + * remove tic warning about "^?" in string capabilities, which was + marked as an extension; however all Unix implementations support + this and X/Open Curses does not address it. On the other hand, + [25]BSD termcap did not support this feature (until the + [26]mid-1990s). + in _nc_infotocap, added a check to ensure that terminfo "^?" is + not written to termcap. + * modify sscanf calls in _nc_infotocap for patterns "%{number}%+%c" + and "%'char'%+%c" to check that the final character is really "c", + avoiding a case in icl6404 which cannot be converted to termcap. + * in _nc_tic_expand and _nc_infotocap, improved string-length check + when deciding whether to use "^X" or "\xxx" format for control + characters, to make the output of tic/infocmp more predictable. + * limited termcap "%d" width to 2 digits on input, and use "%2" in + preference to "%02" on output. + * correct terminfo/termcap conversion of "%02" and "%03" into "%2" + and "%3"; the result repeated the last character. + + Examples + + Along with the library and utilities, many improvements were made to + the [27]ncurses-examples. + + These changes were made to demonstrate new extensions in ncurses: + * add demo_new_pair program, to demonstrate [28]alloc_pair, + [29]find_pair and [30]free_pair functions. + This program iterates over the possible color combinations, + allocating or initializing color pairs. For best results, choose + screen-width dividing evenly into the number of colors. e.g., + + 32x64,32x128 256 colors + 24x44,24x88 88 colors + 32x64,24x128 16 colors + + * add extended_color program, like the older color_set program, but + using the extended color functions, with and without the + SP-functions interface. + * add picsmap program to fill in some testing issues not met by + dots, using this as the third example in a comparison of the + [31]ncurses versus slang libraries. + The program can directly read X bitmap and pixmap files, + displaying a picture. It can read other image files using + ImageMagick's convert program to translate the image into text. + For 16-, 88- and 256-color terminal descriptions, picsmap can load + a palette file which tells it which color palette entries to use. + For direct-colors, the terminal descriptions use the RGB extension + capability. + + There are other new example programs and a few scripts: + * add dots_xcurses program to illustrate a different approach used + for extended colors which can be contrasted with dots_curses. + * add list_keys program show function keys for one or more terminal + descriptions. It uses ncurses's convention of modifiers for + special keys, based on xterm. + * add padview program, to compare pads with direct updates in the + view program. + * add sp_tinfo program to exercise the SP-functions extension of the + low-level terminfo library. + * add test-programs for termattrs and term_attrs functions. + * add test_sgr program to exercise all combinations of the sgr + capability. + * add tput-colorcube demo script, imitating xterm's 88- and + 256-color scripts using tput. + * add tput-initc script to demonstrate how tput may be used to + initialize a color palette from a data file. + + A variety of improvements were made to existing programs, both new + features as well as options added to make the set of programs more + consistent. + + The ncurses program is the largest; a proportionately large number of + changes were made to it: + * modify a/A screens to make exiting on an escape character depend + on the start of keypad and timeout modes, to allow better testing + of function-keys. + add "t" toggle for notimeout function. + * modify layout of b/B screens to allow for additional annotation on + the right margin; some terminals with partial support did not + display well. + * modify c/C screens to allow for extended color pairs. + add z/Z zoom feature to make extended color pairs easier to test. + modify test-screens to take advantage of wide screens, reducing + the number of lines used for 88- and 256-colors. + * modify "d" edit-color screen to optionally read xterm color + palette directly from terminal, as well as handling KEY_RESIZE and + screen-repainting with control/L and control/R. + * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS. + * improve "g" screen, correcting ifdef which made the legend not + reflect changes to keypad- and scroll-modes. Added check for + return-value of putwin. + * make "s" test easier to understand which subtests are available + add a corresponding "S" wide-character overlap test-screen. + * add "v" screen to show baudrate and other values. + + These changes were made to the other examples: + * modify blue program to use Unicode values for card-glyphs when + available, as well as improving the check for CP437 and CP850. + * improve demo_menus program, allowing mouse-click on the + menu-headers to switch the active menu. This requires a new + extension option O_MOUSE_MENU to tell the menu driver to put mouse + events which do not apply to the active menu back into the queue + so that the application can handle the event. + * correct logic in demo_terminfo program for "-f" option + * modify ditto program to allow $XTERM_PROG environment variable to + override "xterm" as the name of the program to run in the threaded + configuration. + * add several options to the "dots" test-programs. + * modify filter program: + + illustrate an alternative to getnstr, that polls for input + while updating a clock on the right margin as well as + responding to window size-changes. + + adapt logic used in [32]dialog [33]"--keep-tite" option for + filter program as the "-a" option. When set, filter attempts + to suppress the alternate screen. + * modify knight program to provide the "slow" solution for small + screens using "R", noting that Warnsdorf's method is easily done + with "a". + * modify the savescreen program to add test patterns that exercise + 88-, 256-, etc., colors. + * add options to test_arrays, for selecting termcap vs terminfo, + etc. + * modify the view program: + + expand tabs using the ncurses library rather than in the + test-program. + + eliminate the "-n" option by simply reading the whole file. + + implement page up/down commands. + + remove the very old SIGWINCH example; just use KEY_RESIZE. + * improve animation in xmas program by adding a time-delay in + blinkit. + * modify several test-programs which call use_default_colors to + consistently do this only if the "-d" option is given. + * modify the install-rule for ncurses-examples to put the data files + in the data directory, e.g., /usr/share/ncurses-examples. + * modify several test programs to use new popup_msgs function, + adapted from the help-screen used in the edit_field program. + * modify test data for xterm palettes to use the newer + color4/color12 values. + * improve the tracemunch script: + + show screenXX pointers and thread identifiers as names. + + chang address-parameters of add_wch, color_content and + pair_content to dummy parameters. + + Terminal database + + There are several new terminal descriptions: + + dumb-emacs-ansi, dvtm, dvtm-256color, fbterm, iterm2, linux-m1 + minitel entries, putty-noapp, viewdata, and vt100+4bsd + building-block. + + xterm+noalt, xterm+titlestack, xterm+alt1049, xterm+alt+title + building blocks and xterm+direct, xterm+indirect, xterm-direct. + from [34]xterm patch #331. + + several other "-direct" descriptions to address the differences of + other terminal emulators versus xterm-direct. + + There are many changes to existing terminal descriptions. Some were + updates to several descriptions: + * use xterm+sm+1006 in several terminal descriptions which were + validated as supporting the extended mouse feature for their + respective terminal emulators. + * corrected sgr/sgr0 strings in a few cases reported by tic, making + those correspond to the non-sgr settings where they differ, but + otherwise use ECMA-48 consistently. + * add 0.1sec mandatory delay to flash capabilities using the VT100 + reverse-video control + + while others affected specific descriptions. These were retested, to + take into account new/undocumented changes by their developers: + + iterm, minitel, st, viewdata, nsterm + + while these are specific fixes based on user reports, or warnings from + tic: + + [35]ansi building blocks + + + restored rmir/smir in ansi+idc to better match original + ansiterm+idc, add alias ansiterm + + [36]icl6402 + + + corrected missing comma-separator between string capabilities + in icl6402 and m2-nam + + [37]interix + + + updated using tack and SFU with Windows 7 Ultimate. + + used ^? for kdch1 + + [38]linux + + + made linux3.0 entry the default linux entry + + modify linux2.6 entry to improve line-drawing so that the + linux3.0 entry can be used in non-UTF-8 mode + + omitted selection of ISO-8859-1 for G0 in enacs capability + from linux2.6 entry, to avoid conflict with the user-defined + mapping. The reset feature uses ISO-8859-1 in any case. + + modify flash capability for linux and wyse entries to put the + delay between the reverse/normal escapes rather than after + + modify linux-16color to not mask dim, standout or reverse + with the ncv capability + + [39]pccon entries + + + fixed some inconsistencies in the pccon* entries + + add bold to pccon+sgr+acs and pccon-base + + add keys f12-f124 to pccon+keys + + [40]tmux + + + corrected sgr string, which used screen's "standout" code + rather than the standard code. + + add settings corresponding to xterm-keys option to reflect + upcoming change to make that option "on" by default + + uncanceled Ms + + [41]vt100 + + + modify vt100 rs2 string to reset vt52 mode and scrolling + regions + + corrected rs2 string for vt100-nam + + made minor fixes for vt100+4bsd, e.g., delay in sgr for + consistency + + [42]vte + + + moved SGR 24 and 27 from vte-2014 to vte-2012 + + add a few capabilities fixed in recent VTE development + + [43]xterm + + + add rep to xterm-new, available since [44]late 1996. + + modify xterm+256color and xterm+256setaf to use correct + number of color pairs. + + modify rs1 for xterm-16color, xterm-88color and + xterm-256color to reset palette using oc string as in linux + entry. + + add rs1 capability to xterm-256color + + add oc capability to xterm+256color, allowing palette reset + for xterm + + add op to xterm+256setaf + + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs + to match [45]xterm #272, reflecting packager's changes + + used ANSI reply for u8 in xterm-new, to reflect vt220-style + responses that could be returned. + + made xterm-pcolor sgr consistent with other capabilities + + A few entries use extensions (user-defined terminal capabilities): + * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic + * used RGB capability in new *-direct entries to denote direct-color + feature. + + Documentation + + As usual, this release + * improves documentation by describing new features, + * attempts to improve the description of features which users have + found confusing + * fills in overlooked descriptions of features which were described + in the [46]NEWS file but treated sketchily in manual pages. + + In particular, + * Since the underlying features for [47]tset, [48]tput, and + [49]clear have been better integrated, the documentation now + includes information on how those tools evolved. + In addition to explaining the improved integration of the tools, + the manual pages made it easier to see how the tools are similar + and how they are different. + * The addch manual page has additional information on + [50]portability and differences from other implementations. + * The discussion of color-pairs in the attributes manual page is + improved in its [51]history section. + * The documentation of the chtype, cchar_t types and the attribute + values which can be stored in those types, in particular the + [52]history and [53]portability sections of the attributes manual + page, has been improved. + * improve discussion of [54]portability in the mouse manual. + * The pad manual page has a section on the [55]origin and + portability of pads. + * Differences between SVr4 and X/Open Curses soft-keys are discussed + in a new section on [56]portability. + * There are updated/improved notes on portability in the + [57]resizeterm and [58]wresize manual pages. + + In addition to providing background information to explain these + features and show how they evolved, there are corrections, + clarifications, etc.: + * add note in the [59]addch manual about line-drawing when it + depends upon UTF-8. + * improve discussion of line-drawing characters in the [60]add_wch + manual. + * explain in [61]clear's manual page that it writes to the standard + output. + * improve description of [62]endwin. + * improve discussion of field validation in the [63]form driver + manual page. + * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page. + * clarify in the [65]getch manual that the keypad mode affects an + application's ability to read KEY_MOUSE codes, but does not affect + KEY_RESIZE. + trim some obsolete/incorrect wording about EINTR from the getch + manual page + improve manual pages for [66]getch and [67]get_wch to point out + that they might return user-defined values which have no + predefined names in + * improve description of the -R option in the [68]infocmp manual + page + * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed + onto the input stream. + * document return value of [70]use_extended_names + * document differences in [71]ESCDELAY versus AIX's implementation + in the variables manual page. + * The _nc_free_tinfo function is now documented in the + [72]memory-leaks manual page, because it could be used in tack for + memory-leak checking. + * add a note to the [73]tic manual page about -W versus -f options. + * improve terminfo manual description of [74]terminfo syntax. + improve terminfo manual page discussion of [75]control- and + graphics- characters. + improve [76]color-handling section in terminfo manual page + * clarify description in [77]tput manual page regarding support for + termcap names + update [78]tput manual page to reflect changes to manipulate + terminal modes by sharing functions with tset. + * clarify in manual pages that the optional verbose option level of + [79]tic and [80]infocmp is available only when ncurses is + configured for tracing. + * improve manual page description of [81]tset/reset versus + window-size. + * improve description of [82]tgoto parameters + + There are new manual pages: + * [83]user_caps documents the terminfo extensions used by ncurses. + * [84]scr_dump documents the screen-dump format. + + Some of the improvements are more subtle, relating to the way the + information is presented: + * Made minor fixes to manpage NAME/SYNOPSIS sections to consistently + use rule that either all functions which are prototyped in + SYNOPSIS are listed in the NAME section, or the manual-page name + is the sole item listed in the NAME section. The latter is used to + reduce clutter, e.g., for the top-level library manual pages as + well as for certain feature-pages such as [85]SP-funcs and + [86]threading. + * improve manual pages for utilities with respect to POSIX versus + X/Open Curses. + * improve organization of the [87]attributes and [88]color manual + pages. + + Interesting bug-fixes + + * modify toe to not exit if unable to read a terminal description, + e.g., if there is a permission problem. + * correct 20100515 change for weak signals versus sigprocmask + * work around Ada tool-breakage in Debian 9 and later by invoking + gprconfig to specify the C compiler to be used by gnatmake, and + conditionally suppressing Library_Options line for static + libraries. + * There were, as well, several bug-fixes to handle illegal input for + tic. Because those did not correspond to useful terminal + descriptions, most users are unaffected. + + Configuration changes + + Major changes + + This release provides a new binary format for terminal descriptions + that use extended numeric capabilities. Applications built with the + wide-character ncursesw library can use these extended numbers. + * This includes utilities such as tic and infocmp, because (as noted + in [89]New features), the feature relies upon an extension to the + low-level tinfo library. + * A few software packagers use a configuration option of ncurses + which allows the low-level tinfo library to be shared between the + high-level ncurses and ncursesw libraries. This new feature was + designed to work in that configuration as well. + + Other applications (i.e., using the 8-bit ncurses library) which read + the extended terminal descriptions see those numeric capabilities set + to the maximum value for a signed 16-bit number. + + Older versions of ncurses' tic accept out-of-range numeric + capabilities, storing those as the maximum value for a signed 16-bit + number. Other implementations of curses (mentioned in the discussion + of [90]picsmap) give zero for these out-of-range capabilities. + + Configuration options + + These changes provide support for tack 1.08, released in [91]July + 2017: + * add --without-tack configure option to refine --with-progs + configure option. Normally tack is built outside the ncurses tree, + but a few packagers combine it during the build. If term_entry.h + is installed, there is no advantage to in-tree builds. + * adjust configure-script to define HAVE_CURSES_DATA_BOOLNAMES + symbol needed for tack 1.08 when built in-tree. Rather than + relying upon internal "_nc_" functions, tack now uses the boolean, + number and string capability name-arrays provided by ncurses and + SVr4 Unix curses. It still uses term_entry.h for the definitions + of the extended capability arrays. + * add dependency upon ncurses_cfg.h to tic's header-files; any + program using tic-library will have to supply this file. Legacy + tack versions supply this file; ongoing tack development has + dropped the dependency upon tic-library and new releases will not + be affected. + + Other changes to the configure-script and generated files include + * add configure options to disable checks for form, menu and panel + libraries so that ncurses-examples can be built with non-SVr4 + curses implementations. + * add configure option --enable-opaque-curses for ncurses library + and similar options for the other libraries. + * add configure option --disable-wattr-macros for use in cases where + one wants to use the same headers for ncurses5/ncurses6 + development, by suppressing the wattr* macros which differ due to + the introduction of extended colors + * modify configure macro for shared-library rules to use -Wl,-rpath + rather than -rpath to work around a bug in scons + * improve ncurses-examples' configure script to define as needed + NCURSES_WIDECHAR for platforms where _XOPEN_SOURCE_EXTENDED does + not work. Also modified the test program to ensure that if + building with ncurses, that the cchar_t type is checked, since + that is normally (since [92]20111030) ifdef'd depending on this + test. + * modify configure script to handle the case where tic-library is + renamed, but the --with-debug option is used by itself without + normal or shared libraries + * modify editing script which generates resulting.map to work with + the clang configuration on recent FreeBSD, which gives an error on + an empty "local" section. + * improve configure check for setting the WILDCARD_SYMS variable; on + ppc64 the variable is in the Data section rather than Text. + * correct result of configure option --without-fallbacks, which + caused FALLBACK_LIST to be set to "no" + * modify --with-pkg-config-libdir option to make it possible to + install ".pc" files even if pkg-config is not found. Limit this + change, to suppress the actual install if it is not overridden to + a valid directory at install time. + * disallow "no" as a possible value for --with-shlib-version option, + overlooked in cleanup-changes for [93]20000708. + + Portability + + Many of the portability changes are implemented via the configure + script: + * improve configure script's CF_CC_ENV_FLAGS macro to allow for + compiler wrappers such as ccache. This change moves only the + preprocessor, optimization and warning flags to CPPFLAGS and + CFLAGS, leaving the residue in CC. That happens to work for gcc's + various "model" options, but may require tuning for other + compilers. + * modify ncurses-examples' configure script to use pkg-config for + the extra form/menu/panel libraries, to be more consistent with + the handling of the curses/ncurses library. + * add configuration checks to build with [94]NetBSD curses, which + for example lacks [95]use_env. + * change ncurses-examples to use attr_t vs chtype to follow X/Open + documentation more closely since Solaris xpg4-curses uses + different values for WA_xxx vs A_xxx that rely on attr_t being an + unsigned short. Tru64 aka OSF1, HPUX, AIX did as ncurses does, + equating the two sets. + * modify several test programs to reflect that ncurses honors + existing signal handlers in initscr, while other implementations + do not. + * add configure check for openpty to ncurses-examples' configure + script, for ditto. + * improve check for working poll function by using posix_openpt as a + fallback in case there is no valid terminal on the standard input + * modify ncurses-examples' configure script to check for pthread + dependency of ncursest or ncursestw library when building the + ncurses examples, e.g., in case weak symbols are used. + * add checks in ncurses-examples' configure script for some + functions neither in 4.3BSD curses, nor based on X/Open Curses: + + modify a loop limit in firework.c to work around absense of + limit checks in some libraries. + + fill the last row of a window with "?" in firstlast if waddch + does not return ERR on the lower-right corner. + * build-fixes for the Portland Group (PGI) compilers + + accept whitespace in sed expression for generating expanded.c + + modify configure check that g++ compiler warnings are not + used. + + add configure check for -fPIC option needed for shared + libraries. + * modify configure script for clang as used on FreeBSD, to work + around clang's differences in exit codes vs gcc. + * fixes for configure/build using clang on OSX + + do not redefine "inline" in ncurses_cfg.h; this was + originally to solve a problem with gcc/g++, but is aggravated + by clang's misuse of symbols to pretend it is gcc. + + add braces to configure script to prevent unwanted addition + of "-lstdc++" option to the CXXLIBS symbol. + + improve/update test-program used for checking existence of + stdc++ library. + + if $CXXLIBS is set, the linkage test uses that in addition to + $LIBS. + * fixes for OS/2: + + use button instead of kbuf[0] in EMX-specific part of + lib_mouse.c + + support building with libtool on OS/2 + + use stdc++ library with OS/2 kLIBC + + clear configure script's cf_XOPEN_SOURCE for OS/2, to work + with its header files + * add "newer" baudrate symbols to the [96]baudrate function in the + ncurses library as well as to a corresponding table in tset. + * modify ncurses-examples savescreen to work with AIX and HPUX. + * define WIN32_LEAN_AND_MEAN for MinGW port, making builds faster. + * add a configure check for wcwidth versus the ncurses line-drawing + characters, to use in special-casing systems such as Solaris. + Solaris, however, requires a special case that maps Unicode + line-drawing characters into the acsc string for non-Unicode + locales. Solaris also has a misconfigured wcwidth which marks all + of the line drawing characters as double-width. + * string-hacks (non-standard): + + fix configure script to record when strlcat is found on + OpenBSD. + + add --enable-string-hacks option to ncurses-examples' + configure script. + + completed string-hacks for sprintf, etc., including the + ncurses-examples programs. + + make --enable-string-hacks option work with Debian by + checking for the "bsd" library and its associated + "" header. + * workaround for Debian's antique/unmaintained version of mawk: + + see Debian #65617, which was fixed in mawk's upstream + releases in [97]2009. + + related fixes when building link_test. + _________________________________________________________________ + +Features of ncurses + + The ncurses package is fully upward-compatible with SVr4 (System V + Release 4) curses: + * All of the SVr4 calls have been implemented (and are documented). + * ncurses supports all of the for SVr4 curses features including + keyboard mapping, color, forms-drawing with ACS characters, and + automatic recognition of keypad and function keys. + * ncurses provides these SVr4 add-on libraries (not part of X/Open + Curses): + + the panels library, supporting a stack of windows with + backing store. + + the menus library, supporting a uniform but flexible + interface for menu programming. + + the form library, supporting data collection through + on-screen forms. + * ncurses's terminal database is fully compatible with that used by + SVr4 curses. + + ncurses supports user-defined capabilities which it can see, + but which are hidden from SVr4 curses applications using the + same terminal database. + + It can be optionally configured to match the format used in + related systems such as AIX and Tru64. + + Alternatively, ncurses can be configured to use hashed + databases rather than the directory of files used by SVr4 + curses. + * The ncurses utilities have options to allow you to filter terminfo + entries for use with less capable curses/terminfo versions such as + the HP/UX and AIX ports. + The ncurses package also has many useful extensions over SVr4: - - * The API is 8-bit clean and base-level conformant with the X/OPEN - curses specification, XSI Curses (that is, it implements all BASE - level features, but not all EXTENDED features). Most - EXTENDED-level features not directly concerned with wide-character - support are implemented, including many function calls not - supported under SVr4 curses (but portability of all calls is - documented so you can use the SVr4 subset only). - * Unlike SVr4 curses, ncurses can write to the rightmost-bottommost - corner of the screen if your terminal has an insert-character + * The API is 8-bit clean and base-level conformant with the X/OPEN + curses specification, XSI curses (that is, it implements all BASE + level features, and most EXTENDED features). It includes many + function calls not supported under SVr4 curses (but portability of + all calls is documented so you can use the SVr4 subset only). + * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost + corner of the screen if your terminal has an insert-character capability. - * (PC-clone boxes only) Support for access to the IBM PC ROM - characters 0-32 through the highlight A_ALTCHARSET. - * Support for mouse event reporting under xterm. - * The function wresize() allows you to resize windows, preserving + * Ada95 and C++ bindings. + * Support for mouse event reporting with X Window xterm and FreeBSD + and OS/2 console windows. + * Extended mouse support via Alessandro Rubini's gpm package. + * The function wresize allows you to resize windows, preserving their data. - * Better cursor-movement optimization. The package now features a + * The function use_default_colors allows you to use the terminal's + default colors for the default color pair, achieving the effect of + transparent colors. + * The functions keyok and define_key allow you to better control the + use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by + defining more than one control sequence to map to a given key + code. + * Support for 256-color terminals, such as modern xterm. + * Support for 16-color terminals, such as aixterm and modern xterm. + * Better cursor-movement optimization. The package now features a cursor-local-movement computation more efficient than either BSD's or System V's. - * Super hardware scrolling support. The screen-update code - incorporates a novel, simple, and cheap algorithm that enables it - to make optimal use of hardware scrolling, line-insertion, and - line-deletion for screen-line movements. This algorithm is more - powerful than the 4.4BSD curses quickch() routine. - * Real support for terminals with the magic-cookie glitch. The - screen-update code will refrain from drawing a highlight if the - magic- cookie unattributed spaces required just before the - beginning and after the end would step on a non-space character. - It will automatically shift highlight boundaries when doing so - would make it possible to draw the highlight without changing the + * Super hardware scrolling support. The screen-update code + incorporates a novel, simple, and cheap algorithm that enables it + to make optimal use of hardware scrolling, line-insertion, and + line-deletion for screen-line movements. This algorithm is more + powerful than the 4.4BSD curses quickch routine. + * Real support for terminals with the magic-cookie glitch. The + screen-update code will refrain from drawing a highlight if the + magic- cookie unattributed spaces required just before the + beginning and after the end would step on a non-space character. + It will automatically shift highlight boundaries when doing so + would make it possible to draw the highlight without changing the visual appearance of the screen. - * It is possible to generate the library with a list of pre-loaded - fallback entries linked to it so that it can serve those terminal - types even when no terminfo tree or termcap file is accessible - (this may be useful for support of screen-oriented programs that + * It is possible to generate the library with a list of pre-loaded + fallback entries linked to it so that it can serve those terminal + types even when no terminfo tree or termcap file is accessible + (this may be useful for support of screen-oriented programs that must run in single-user mode). - * The tic(1)/captoinfo utility provided with ncurses has the ability - to translate many termcaps from the XENIX, IBM and AT&T extension - sets. - * A BSD-like tset(1) utility is provided. + * The [98]tic/[99]captoinfo utility provided with ncurses has the + ability to translate many termcaps from the XENIX, IBM and AT&T + extension sets. + * A BSD-like [100]tset utility is provided. * The ncurses library and utilities will automatically read terminfo - entries from $HOME/.terminfo if it exists, and compile to that - directory if it exists and the user has no write access to the - system directory. This feature makes it easier for users to have - personal terminfo entries without giving up access to the system + entries from $HOME/.terminfo if it exists, and compile to that + directory if it exists and the user has no write access to the + system directory. This feature makes it easier for users to have + personal terminfo entries without giving up access to the system terminfo directory. - * You may specify a path of directories to search for compiled - descriptions with the environment variable TERMINFO_DIRS (this - generalizes the feature provided by TERMINFO under stock System + * You may specify a path of directories to search for compiled + descriptions with the environment variable TERMINFO_DIRS (this + generalizes the feature provided by TERMINFO under stock System V.) - * In terminfo source files, use capabilities may refer not just to + * In terminfo source files, use capabilities may refer not just to other entries in the same source file (as in System V) but also to - compiled entries in either the system terminfo directory or the + compiled entries in either the system terminfo directory or the user's $HOME/.terminfo directory. - * A script (capconvert) is provided to help BSD users transition - from termcap to terminfo. It gathers the information in a TERMCAP - environment variable and/or a ~/.termcap local entries file and - converts it to an equivalent local terminfo tree under - $HOME/.terminfo. - * Automatic fallback to the /etc/termcap file can be compiled in - when it is not possible to build a terminfo tree. This feature is - neither fast nor cheap, you don't want to use it unless you have - to, but it's there. - * The table-of-entries utility toe makes it easy for users to see - exactly what terminal types are available on the system. + * The table-of-entries utility [101]toe makes it easy for users to + see exactly what terminal types are available on the system. * The library meets the XSI requirement that every macro entry point - have a corresponding function which may be linked (and will be - prototype-checked) if the macro definition is disabled with + have a corresponding function which may be linked (and will be + prototype-checked) if the macro definition is disabled with #undef. - * An HTML "Introduction to Programming with NCURSES" document - provides a narrative introduction to the curses programming - interface. - - State of the Package - - Numerous bugs present in earlier versions have been fixed; the library - is far more reliable than it used to be. Bounds checking in many - `dangerous' entry points has been improved. The code is now type-safe - according to gcc -Wall. The library has been checked for malloc leaks - and arena corruption by the Purify memory-allocation tester. - - The ncurses code has been tested with a wide variety of applications - including: - + * Extensive documentation is provided (see the [102]Additional + Reading section of the [103]ncurses FAQ for online documentation). + +Applications using ncurses + + The ncurses distribution includes a selection of test programs + (including a few games). These are available separately as + [104]ncurses-examples + + The ncurses library has been tested with a wide variety of + applications including: + + aptitude + FrontEnd to Apt, the debian package manager + + [105]https://wiki.debian.org/Aptitude + + cdk + Curses Development Kit + + [106]https://invisible-island.net/cdk/ + ded - directory-editor [4]ftp://ftp.clark.net/pub/dickey/ded. - + directory-editor + + [107]https://invisible-island.net/ded/ + dialog - the underlying application used in Slackware's setup, and the - basis for similar applications on Linux. - - lynx-2.7 - the character-screen WWW browser - - ncftp 2.0 + the underlying application used in Slackware's setup, and the + basis for similar install/configure applications on many + systems. + + [108]https://invisible-island.net/dialog/ + + lynx + the text WWW browser + + [109]https://lynx.invisible-island.net/ + + mutt + mail utility + + [110]http://www.mutt.org/ + + ncftp file-transfer utility - + + [111]https://www.ncftp.com/ + nvi - New vi versions 1.50 are able to use ncurses versions 1.9.7 and - later. - - taper - tape archive utility - - vh-1.6 - Volks-Hypertext browser for the Jargon File - + New vi uses ncurses. + + [112]https://sites.google.com/a/bostic.com/keithbostic/vi + + ranger + A console file manager with VI key bindings in Python. + + [113]https://ranger.github.io/ + + tin + newsreader, supporting color, MIME + + [114]http://www.tin.org/ + + vifm + File manager with vi like keybindings + + [115]https://vifm.info/ + as well as some that use ncurses for the terminfo support alone: - - minicom-1.75 - terminal emulator - - tin-unoff - tin (unofficial) newsreader, supporting color, MIME - [5]ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff. - + + minicom + terminal emulator for serial modem connections + + [116]https://alioth.debian.org/projects/minicom/ + + mosh + a replacement for ssh. + + [117]https://mosh.mit.edu/ + + tack + terminfo action checker + + [118]https://invisible-island.net/ncurses/tack.html + + tmux + terminal multiplexor + + [119]https://github.com/tmux/tmux/wiki + vile - vi-like-emacs [6]ftp://ftp.clark.net/pub/dickey/vile. - - The ncurses distribution includes a selection of test programs - (including a few games). - -Who's Who and What's What - - The original maintainer of ncurses is [7]Zeyd Ben-Halim. - Unfortunately, he can only work on the package part time. As a result, - since 1.8.1, much of the enhancement work and documentation has been - done by [8]Eric S. Raymond. The current primary maintainers are - [9]Thomas Dickey and [10]Juergen Pfeifer. - - There is an ncurses mailing list. It is a majordomo list; to join, - write to ncurses-request@mailgate.bsdi.com with a message containing - the line: - - subscribe @ + vi-like-emacs may be built to use the terminfo, termcap or + curses interfaces. + + [120]https://invisible-island.net/vile/ + + and finally, those which use only the termcap interface: + + emacs + text editor + + [121]https://www.gnu.org/software/emacs/ + + less + The most commonly used pager (a program that displays text + files). + + [122]http://www.greenwoodsoftware.com/less/ + + screen + terminal multiplexor + + [123]https://www.gnu.org/software/screen/ + + vim + text editor + + [124]https://www.vim.org/ + +Development activities + + Zeyd Ben-Halim started ncurses from a previous package pcurses, + written by Pavel Curtis. Eric S. Raymond continued development. + Juergen Pfeifer wrote most of the form and menu libraries. Ongoing + development work is done by [125]Thomas Dickey. Thomas Dickey also + acts as the maintainer for the Free Software Foundation, which holds + the [126]copyright on ncurses. + + Contact the current maintainers at + + [127]bug-ncurses@gnu.org + + To join the ncurses mailing list, please write email to + + [128]bug-ncurses-request@gnu.org + + containing the line: + + subscribe @ This list is open to anyone interested in helping with the development and testing of this package. - - Beta versions of ncurses and patches to the current release are made - available at [11]ftp://ftp.clark.net/pub/dickey/ncurses. - -Future Plans - * Extended mouse support via Alessandro Rubini's gpm package. - * Extended-level XPG4 conformance, with internationalization - support. - * Ports to more systems, including DOS and Windows. - - We need people to help with these projects. If you are interested in - working on them, please join the ncurses list. - -The terminfo/termcap Database - - The distribution includes and uses a copy of the terminfo-format - terminal description file maintained by Eric Raymond. You can download - either the [12]termcap or [13]terminfo versions of the terminal-type - database from Eric's ncurses page, - [14]http://www.ccil.org/~esr/ncurses.html. - -Other Related Resources - - You can find lots of information on terminal-related topics not - covered in the terminfo file at [15]Richard Shuford's archive. + Beta versions of ncurses and patches to the current release are made + available at + + [129]ftp://ftp.invisible-island.net/ncurses/ and + [130]https://invisible-mirror.net/archives/ncurses/ . + + There is an archive of the mailing list here: + + [131]http://lists.gnu.org/archive/html/bug-ncurses (also + [132]https) + +Related resources + + The release notes make scattered references to these pages, which may + be interesting by themselves: + * [133]ncurses licensing + * [134]Symbol versioning in ncurses + * [135]Comments on ncurses versus slang (S-Lang) + * [136]tack - terminfo action checker + * [137]tctest - termcap library checker + * [138]Terminal Database + +Other resources + + The distribution provides a newer version of the terminfo-format + terminal description file once maintained by [139]Eric Raymond . + Unlike the older version, the termcap and terminfo data are provided + in the same file, which also provides several user-definable + extensions beyond the X/Open specification. + + You can find lots of information on terminal-related topics not + covered in the terminfo file at [140]Richard Shuford's archive . + + * [141]Overview + * [142]Release Notes + + [143]Library improvements + o [144]New features + o [145]Other improvements + + [146]Program improvements + o [147]Utilities + o [148]Examples + + [149]Terminal database + + [150]Documentation + + [151]Interesting bug-fixes + + [152]Configuration changes + o [153]Major changes + o [154]Configuration options + + [155]Portability + * [156]Features of ncurses + * [157]Applications using ncurses + * [158]Development activities + * [159]Related resources + * [160]Other resources References - 1. ftp://ftp.clark.net/pub/dickey/ncurses - 2. ftp://ftp.netcom.com/pub/zm/zmbenhal/ncurses - 3. ftp://prep.ai.mit.edu/pub/gnu - 4. ftp://ftp.clark.net/pub/dickey/ded - 5. ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff - 6. ftp://ftp.clark.net/pub/dickey/vile - 7. mailto:zmbenhal@netcom.com - 8. http://www.ccil.org/~esr/home.html - 9. mailto:dickey@clark.net - 10. mailto:Juergen.Pfeifer@T-Online.de - 11. ftp://ftp.clark.net/pub/dickey/ncurses - 12. http://www.ccil.org/~esr/terminfo/termtypes.tc.gz - 13. http://www.ccil.org/~esr/terminfo/termtypes.ti.gz - 14. http://www.ccil.org/~esr/ncurses.html - 15. http://www.cs.utk.edu/~shuford/terminal_index.html + 1. https://invisible-island.net/ncurses/man/captoinfo.1m.html + 2. https://invisible-island.net/ncurses/man/clear.1.html + 3. https://invisible-island.net/ncurses/man/infocmp.1m.html + 4. https://invisible-island.net/ncurses/man/tabs.1.html + 5. https://invisible-island.net/ncurses/man/tic.1m.html + 6. https://invisible-island.net/ncurses/man/toe.1m.html + 7. https://invisible-island.net/ncurses/man/tput.1.html + 8. https://invisible-island.net/ncurses/man/tset.1.html + 9. https://invisible-island.net/ncurses/ + 10. ftp://ftp.invisible-island.net/ncurses/ + 11. https://invisible-mirror.net/archives/ncurses/ + 12. ftp://ftp.gnu.org/gnu/ncurses/ + 13. https://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-def_prog_mode_-def_shell_mode + 14. https://invisible-island.net/ncurses/ncurses-mapsyms.html + 15. https://invisible-island.net/ncurses/tctest.html#bsd42-numeric-caps + 16. https://invisible-island.net/ncurses/ncurses-slang.html#cause_numbers + 17. https://invisible-island.net/ncurses/tack.html#portable + 18. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726 + 19. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-EXTENSIONS + 20. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization + 21. https://invisible-island.net/ncurses/man/tset.1.html + 22. https://invisible-island.net/ncurses/man/tput.1.html + 23. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization + 24. https://invisible-island.net/ncurses/man/clear.1.html + 25. https://invisible-island.net/ncurses/tctest.html#bsd42-ctl-question + 26. https://invisible-island.net/ncurses/tctest.html#freebsd-ctl-question + 27. https://invisible-island.net/ncurses/ncurses-examples.html + 28. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-alloc_pair + 29. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-find_pair + 30. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-free_pair + 31. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap + 32. https://invisible-island.net/dialog/ + 33. https://invisible-island.net/dialog/manpage/dialog.html#h3-Common-Options + 34. https://invisible-island.net/xterm/xterm.log.html#xterm_331 + 35. https://invisible-island.net/ncurses/terminfo.src.html#toc-_A_N_S_I__S_Y_S__I_S_O_6429__E_C_M_A-48__Capabilities + 36. https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404 + 37. https://invisible-island.net/ncurses/terminfo.src.html#tic-interix + 38. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Linux_consoles + 39. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Open_B_S_D_consoles + 40. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Tmux + 41. https://invisible-island.net/ncurses/terminfo.src.html#toc-_D_E_C__V_T100_and_compatibles + 42. https://invisible-island.net/ncurses/terminfo.src.html#toc-_G_N_O_M_E__V_T_E_ + 43. https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M + 44. https://invisible-island.net/xterm/xterm.log.html#xterm_32 + 45. https://invisible-island.net/xterm/xterm.log.html#xterm_272 + 46. https://invisible-island.net/ncurses/NEWS.html + 47. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY + 48. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY + 49. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY + 50. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-PORTABILITY + 51. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY + 52. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY + 53. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY + 54. https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h2-PORTABILITY + 55. https://invisible-island.net/ncurses/man/curs_pad.3x.html#h2-PORTABILITY + 56. https://invisible-island.net/ncurses/man/curs_slk.3x.html#h2-PORTABILITY + 57. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-PORTABILITY + 58. https://invisible-island.net/ncurses/man/wresize.3x.html#h2-PORTABILITY + 59. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols + 60. https://invisible-island.net/ncurses/man/curs_add_wch.3x.html + 61. https://invisible-island.net/ncurses/man/clear.1.html#h2-DESCRIPTION + 62. https://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-endwin + 63. https://invisible-island.net/ncurses/man/form_driver.3x.html + 64. https://invisible-island.net/ncurses/man/curs_get_wstr.3x.html#h2-RETURN-VALUE + 65. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Predefined-key-codes + 66. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Keypad-Mode + 67. https://invisible-island.net/ncurses/man/curs_get_wch.3x.html#h2-DESCRIPTION + 68. https://invisible-island.net/ncurses/man/infocmp.1m.html + 69. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-NOTES + 70. https://invisible-island.net/ncurses/man/curs_extend.3x#h2-RETURN-VALUE + 71. https://invisible-island.net/ncurses/man/curs_variables.3x.html#h2-PORTABILITY + 72. https://invisible-island.net/ncurses/man/curs_memleaks.3x.html + 73. https://invisible-island.net/ncurses/man/tic.1m.html + 74. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Terminfo-Capabilities-Syntax + 75. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Line-Graphics + 76. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Color-Handling + 77. https://invisible-island.net/ncurses/man/tput.1.html#h2-PORTABILITY + 78. https://invisible-island.net/ncurses/man/tput.1.html#h3-Aliases + 79. https://invisible-island.net/ncurses/man/tic.1m.html#h2-OPTIONS + 80. https://invisible-island.net/ncurses/man/infocmp.1m.html#h3-Other-Options + 81. https://invisible-island.net/ncurses/man/tset.1.html + 82. https://invisible-island.net/ncurses/man/curs_termcap.3x.html#h3-FORMATTING-CAPABILITIES + 83. https://invisible-island.net/ncurses/man/user_caps.5.html + 84. https://invisible-island.net/ncurses/man/scr_dump.5.html + 85. https://invisible-island.net/ncurses/man/curs_sp_funcs.3x.html + 86. https://invisible-island.net/ncurses/man/curs_threads.3x.html + 87. https://invisible-island.net/ncurses/man/curs_attr.3x.html + 88. file:///ncurses/man/curs_color.3x.html + 89. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library + 90. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap + 91. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726 + 92. https://invisible-island.net/ncurses/NEWS.html#t20111030 + 93. https://invisible-island.net/ncurses/NEWS.html#t20000708 + 94. https://invisible-island.net/ncurses/ncurses-netbsd.html + 95. https://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env + 96. https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-baudrate + 97. https://invisible-island.net/mawk/CHANGES.html#t20090727 + 98. https://invisible-island.net/ncurses/man/tic.1m.html + 99. https://invisible-island.net/ncurses/man/captoinfo.1m.html + 100. https://invisible-island.net/ncurses/man/tset.1.html + 101. https://invisible-island.net/ncurses/man/toe.1m.html + 102. https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading + 103. https://invisible-island.net/ncurses/ncurses.faq.html + 104. https://invisible-island.net/ncurses/ncurses-examples.html + 105. https://wiki.debian.org/Aptitude + 106. https://invisible-island.net/cdk/ + 107. https://invisible-island.net/ded/ + 108. https://invisible-island.net/dialog/ + 109. https://lynx.invisible-island.net/ + 110. http://www.mutt.org/ + 111. https://www.ncftp.com/ + 112. https://sites.google.com/a/bostic.com/keithbostic/vi + 113. https://ranger.github.io/ + 114. http://www.tin.org/ + 115. https://vifm.info/ + 116. https://alioth.debian.org/projects/minicom/ + 117. https://mosh.mit.edu/ + 118. https://invisible-island.net/ncurses/tack.html + 119. https://github.com/tmux/tmux/wiki + 120. https://invisible-island.net/vile/ + 121. https://www.gnu.org/software/emacs/ + 122. http://www.greenwoodsoftware.com/less/ + 123. https://www.gnu.org/software/screen/ + 124. https://www.vim.org/ + 125. mailto:dickey@invisible-island.net + 126. https://invisible-island.net/ncurses/ncurses-license.html + 127. mailto:bug-ncurses@gnu.org + 128. mailto:bug-ncurses-request@gnu.org + 129. ftp://ftp.invisible-island.net/ncurses/ + 130. https://invisible-mirror.net/archives/ncurses/ + 131. http://lists.gnu.org/archive/html/bug-ncurses + 132. https://lists.gnu.org/archive/html/bug-ncurses + 133. https://invisible-island.net/ncurses/ncurses-license.html + 134. https://invisible-island.net/ncurses/ncurses-mapsyms.html + 135. https://invisible-island.net/ncurses/ncurses-slang.html + 136. https://invisible-island.net/ncurses/tack.html + 137. https://invisible-island.net/ncurses/tctest.html + 138. https://invisible-island.net/ncurses/ncurses.html#download_database + 139. http://www.catb.org/~esr/terminfo/ + 140. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal + 141. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-overview + 142. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-release-notes + 143. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-library + 144. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library + 145. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-fixes-library + 146. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-programs + 147. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-utilities + 148. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-examples + 149. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-database + 150. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-documentation + 151. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-bug-fixes + 152. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-config-config + 153. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-major + 154. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-options + 155. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-portability + 156. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-features + 157. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-who-uses + 158. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-development + 159. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-this-stuff + 160. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-other-stuff