aboutsummaryrefslogtreecommitdiff
path: root/ANNOUNCE
diff options
context:
space:
mode:
Diffstat (limited to 'ANNOUNCE')
-rw-r--r--ANNOUNCE1412
1 files changed, 1246 insertions, 166 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index 11933c5f6d55..8bda60e2f074 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,78 +1,942 @@
- Announcing ncurses 5.9
+ Announcing ncurses 6.1
+
+Overview
The ncurses (new curses) library is a free software emulation of
- curses in System V Release 4.0, 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 SYSV-curses
- enhancements over BSD curses.
+ 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
+ considered 4.4BSD curses obsolete, and encouraged the keepers of unix
releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
- The ncurses code was developed under GNU/Linux. It has been in use for
- some time with OpenBSD as the system curses library, and on FreeBSD
- and NetBSD as an external package. It should port easily to any
- ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
+ 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.
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 the GNU
- distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ .
- It is also available at [2]ftp://invisible-island.net/ncurses/ .
-
- Release Notes
-
- This release is designed to be upward compatible from ncurses 5.0
- through 5.8; very few applications will require recompilation,
- depending on the platform. These are the highlights from the
- change-log since ncurses 5.8 release.
-
- This is a bug-fix release, correcting a small number of urgent
- problems in the ncurses library from the 5.8 release.
-
- It also improves the Ada95 binding:
- * fixes a longstanding portability problem with its use of the
- [3]set_field_type function. Because that function uses
- variable-length argument lists, its interface with gnat does not
- work with certain platforms.
- * improves configurability and portability, particularly when built
- separately from the main ncurses tree. The 5.8 release introduced
- scripts which can be used to construct separate tarballs for the
- Ada95 and ncurses examples.
- Those were a proof of concept. For the 5.9 release, those scripts
- are augmented with rpm- and dpkg-scripts used in test builds
- against a variety of gnat- and system ncurses versions as old as
- gnat 3.15 and ncurses 5.4 (see snapshots and systems tested
- [4]here.
- * additional improvements were made for portability of the ncurses
- examples, adding rpm- and dpkg-scripts for test-builds. See
- [5]this page for snapshots and other information.
-
- Features of Ncurses
-
- The ncurses package is fully compatible with SVr4 (System V Release 4)
- 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 SVr4 panels library, supporting a stack of
- windows with backing store, is included.
- * An emulation of the SVr4 menus library, supporting a uniform but
- flexible interface for menu programming, is included.
- * An emulation of the SVr4 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 <term.h> 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 <term.h>
+ * 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 <curses.h>
+ * 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
+ "<bsd/string.h>" 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
@@ -96,8 +960,7 @@
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, when
- configured using the --enable-ext-colors option.
+ * 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
@@ -119,10 +982,10 @@
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
@@ -137,152 +1000,369 @@
other entries in the same source file (as in System V) but also to
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
#undef.
- * An HTML "Introduction to Programming with NCURSES" document
- provides a narrative introduction to the curses programming
- interface.
+ * 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
- State of the Package
+ The ncurses library has been tested with a wide variety of
+ applications including:
- 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.
+ aptitude
+ FrontEnd to Apt, the debian package manager
- The ncurses code has been tested with a wide variety of applications
- including (versions starting with those noted):
+ [105]https://wiki.debian.org/Aptitude
cdk
Curses Development Kit
- [6]http://invisible-island.net/cdk/
- [7]http://www.vexus.ca/products/CDK/
+
+ [106]https://invisible-island.net/cdk/
ded
directory-editor
- [8]http://invisible-island.net/ded/
+
+ [107]https://invisible-island.net/ded/
dialog
the underlying application used in Slackware's setup, and the
- basis for similar applications on GNU/Linux.
- [9]http://invisible-island.net/dialog/
+ basis for similar install/configure applications on many
+ systems.
+
+ [108]https://invisible-island.net/dialog/
lynx
- the character-screen WWW browser
- [10]http://lynx.isc.org/release/
+ the text WWW browser
- Midnight Commander
- file manager
- [11]http://www.midnight-commander.org/
+ [109]https://lynx.invisible-island.net/
mutt
mail utility
- [12]http://www.mutt.org/
+
+ [110]http://www.mutt.org/
ncftp
file-transfer utility
- [13]http://www.ncftp.com/
+
+ [111]https://www.ncftp.com/
nvi
- New vi versions 1.50 are able to use ncurses versions 1.9.7 and
- later.
- [14]https://sites.google.com/a/bostic.com/keithbostic/nvi
+ 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.
- pinfo
- Lynx-like info browser.
- [15]https://alioth.debian.org/projects/pinfo/
+ [113]https://ranger.github.io/
tin
- newsreader, supporting color, MIME [16]http://www.tin.org/
+ 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
- terminal emulator
- [17]http://alioth.debian.org/projects/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
- [18]http://invisible-island.net/vile/
+ vi-like-emacs may be built to use the terminfo, termcap or
+ curses interfaces.
- The ncurses distribution includes a selection of test programs
- (including a few games).
+ [120]https://invisible-island.net/vile/
+
+ and finally, those which use only the termcap interface:
-Who's Who and What's What
+ emacs
+ text editor
- Zeyd Ben-Halim started it 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 work is being done
- by [19]Thomas Dickey. Thomas Dickey acts as the maintainer for the
- Free Software Foundation, which holds the copyright on ncurses.
- Contact the current maintainers at [20]bug-ncurses@gnu.org.
+ [121]https://www.gnu.org/software/emacs/
- To join the ncurses mailing list, please write email to
- bug-ncurses-request@gnu.org containing the line:
- subscribe <name>@<host.domain>
+ 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 <name>@<host.domain>
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 [21]ftp://invisible-island.net/ncurses/ .
+ available at
+
+ [129]ftp://ftp.invisible-island.net/ncurses/ and
+ [130]https://invisible-mirror.net/archives/ncurses/ .
-Future Plans
+ There is an archive of the mailing list here:
- * Extended-level XPG4 conformance, with internationalization
- support.
- * Ports to more systems, including DOS and Windows.
+ [131]http://lists.gnu.org/archive/html/bug-ncurses (also
+ [132]https)
- We need people to help with these projects. If you are interested in
- working on them, please join the ncurses list.
+Related resources
-Other 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 [22]Eric Raymond . Unlike
- the older version, the termcap and terminfo data are provided in the
- same file, and provides several user-definable extensions beyond the
- X/Open specification.
+ 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 [23]Richard Shuford's archive .
+ 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.gnu.org/gnu/ncurses/
- 2. ftp://invisible-island.net/ncurses/
- 3. http://invisible-island.net/ncurses/man/form_fieldtype.3x
- 4. http://invisible-island.net/ncurses/ncurses-Ada95.html
- 5. http://invisible-island.net/ncurses/ncurses-examples.html
- 6. http://invisible-island.net/cdk/
- 7. http://www.vexus.ca/products/CDK/
- 8. http://invisible-island.net/ded/
- 9. http://invisible-island.net/dialog/
- 10. http://lynx.isc.org/release/
- 11. http://www.midnight-commander.org/
- 12. http://www.mutt.org/
- 13. http://www.ncftp.com/
- 14. https://sites.google.com/a/bostic.com/keithbostic/nvi
- 15. https://alioth.debian.org/projects/pinfo/
- 16. http://www.tin.org/
- 17. http://alioth.debian.org/projects/minicom/
- 18. http://invisible-island.net/vile/
- 19. mailto:dickey@invisible-island.net
- 20. mailto:bug-ncurses@gnu.org
- 21. ftp://invisible-island.net/ncurses/
- 22. http://www.catb.org/~esr/terminfo/
- 23. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal
+ 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