X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fannounce.html;h=51433167009c0f15554f6c81a02ded012ae2b074;hb=HEAD;hp=694848a1e939642f9eda9a2143b928f7e5102bbc;hpb=02f02dcd4464143580e783ae32c822d8eb8cdcbf;p=ncurses.git diff --git a/doc/html/announce.html b/doc/html/announce.html index 694848a1..2aa03cfa 100644 --- a/doc/html/announce.html +++ b/doc/html/announce.html @@ -1,7 +1,7 @@ - - +
- -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 +
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 is better known today - as X/Open 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.
+ keepers of unix releases such as + BSD/OS, FreeBSD and NetBSD to switch over to ncurses. -Since 1995, ncurses has been +
Since 1995, ncurses has been ported to many systems:
The distribution includes the library and support utilities, including
Full manual pages are provided for the library and tools.
-The ncurses distribution is - available via anonymous FTP at the GNU distribution site
+The ncurses distribution is + available at ncurses' homepage:
-It is also available at + "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/ + or
It is also available at the GNU distribution site
+ "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/ .
These notes are for ncurses - 6.0, released August 8, 2015.
+These notes are for ncurses + 6.5, released April 27, 2024.
This release is designed to be source-compatible with - ncurses 5.0 through 5.9; providing a - new 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 which are generally useful, but - binary-incompatible with ncurses - 5:
+ ncurses 5.0 through 6.4; providing + extensions to the application binary interface (ABI). Although + the source can still be configured to support the ncurses 5 ABI, the reason for the release is + to reflect improvements to the ncurses 6 ABI and the supporting utility + programs. -Extend the cchar_t
structure to allow more
- than 16 colors to be encoded.
There are, of course, numerous other improvements, listed in + this announcement.
-Modify the encoding of mouse state to make room for a 5th - mouse button. That allows one to use ncurses with a wheel mouse with xterm or - similar X terminal emulators.
-The most important + bug-fixes/improvements dealt with robustness issues. The + release notes also mention some other bug-fixes, but are focused + on new features and improvements to existing features since + ncurses 6.4 release.
-There are, of course, numerous other improvements, - including
+These are new features:
fixes made based on the Clang and Coverity static - analyzers.
-The low-level terminfo and termcap interfaces are used + both by the higher-level curses library, as well as by many + applications.
-memory leak fixes using Valgrind
-The functions which convert parameterized terminal
+ capability strings for output to the terminal
+ (tiparm
and tparm
) analyze the
+ capability string to determine which parameters are strings
+ (i.e., addresses), versus numbers (not addresses).
The release notes mention some bug-fixes, but are focused on - new features and improvements to existing features log since - ncurses 5.9 release.
+The library's analysis of a capability string may differ + from the calling application's design if environment + variables are used to point to an invalid terminal database. + This is a longstanding problem with all + implementations of terminfo, dating from the early 1980s.
-While the intent of the release is to provide a new stable - ABI, there are other development activities which are summarized - below.
+Two new functions address this problem: by providing a + function which allows the calling application to tell ncurses + how many string-parameters to expect:
-The original release plan, e.g., for "5.10" was to improve
- the MinGW port. Ultimately that was completed (wide-character
- support, mouse, etc), but was deferred to focus on termcap
- support and performance issues. Also, pinpointing the
- problems with Console2
took a while.
tiscan_s
helps applications check
+ formatting capabilities that would be passed to
+ tiparm_s
.tiparm_s
provides applications a way to
+ tell ncurses what the expected parameters are for a
+ capability.A review of termcap compatibility in 2011 led to several - minor fixes in the library and improvements to utilities. To - do this properly, a review of the various extent termcap - implementations was needed.
+The ncurses library supports a compile-time feature
+ (enabled with the configure --enable-check-size
+ option) which simplifies initialization with terminals which
+ do not negotiate window (screen) size. This is done in
+ setupterm
, by providing for using ANSI
+ cursor-position report (in user6/user7 terminfo capabilities)
+ to obtain the screen size if neither environment variables or
+ ioctl is used.
The termcap - library checker (tctest) (not part of ncurses) was one result. A followup review - of performance using ncurses-examples - in 2014 led to additional improvements.
+The ncurses test-program with options
+ “-E -T
” demonstrates this
+ feature.
Output buffering provided a further, but worthwhile
- distraction. A bug report in 2012 regarding the use of signal
- handlers in ncurses) pointed out
-
- a problem with the use of unsafe functions for handling
- SIGTSTP
. Other signals could be addressed with
- workarounds; repairing SIGTSTP
required a
- different approach. The solution required changing internal
- behavior of the library: how it handles output buffering.
Now ncurses buffers its own - output, independently of the standard output. A few - applications relied upon the library's direct reuse of the - standard output buffering; however that is - unspecified behavior and has never been a - recommended practice. Identifying these applications as well - as refining the change to permit low-level applications to - work consistently took time.
-Since the introduction of the experimental support for 256 - colors early in 2005 - (released in ncurses - 5.5), there has been increased user interest. Almost all - packagers continue providing the ncurses ABI 5 which cannot - support 256 colors.
-Symbol versioning, or the lack of it in ncurses, is the - main reason why packagers would be reluctant to add a new - ncurses ABI.
- -This release provides the new ABI along with - script-generated lists of versioned symbols which can be used - for both ABI 5 and 6 (with distinct names to keep the two - separate). This took time to development, as reported in - Symbol - versioning in ncurses.
-SCREEN
This release drops compatibility with obsolete versions of + tack, e.g., pre-1.08
-X/Open curses provides more than one initialization - function:
+These are improvements to existing features:
In addition to the new, safer function
+ tiparm_s
, ncurses adds checks to make the older
+ tiparm
, tparm
and
+ tgoto
functions safer:
the terminfo functions tiparm
and
+ tparm
ensure that the capability string
+ comes from the terminal description which ncurses loads,
+ rather than from random data which the application
+ happens to have.
the tgoto
function disallows capabilities
+ which its analysis shows will attempt to use string
+ parameters.
They are documented in X/Open as if
- initscr
calls newterm
using
- stdout
for output stream, and in turn
- newterm
calls setupterm
using
- fileno(stdout)
for the file descriptor. As long as
- an implementation acts as if it does this, it conforms.
- In practice, implementations do what is implied. This creates a
- problem: the low-level setupterm
function's file
- descriptor is unbuffered, while newterm
implies
- buffered output. X/Open Curses says that all output is done
- through the file descriptor, and does not say how the output
- stream is actually used.
Initially, ncurses used the file
- descriptor (obtained from the output stream passed to
- newterm
) for changing the terminal modes, and relied
- upon the output parameter of newterm
for buffered
- output. Later (to avoid using unsafe buffered I/O in signal
- handlers), ncurses was modified to
- use the file descriptor (unbuffered output) when cleaning up on
- receipt of a signal. Otherwise (when not handling a signal), it
- continued to use the buffered output.
That approach worked reasonably well and as a side effect,
- using the same buffered output as an application might use for
- printf
meant that no flushing was needed when
- switching between normal- and screen-modes.
There were a couple of problems:
+ncurses uses internal functions which correspond to
+ tiparm
, and tgoto
which ensure
+ that the capability strings which are passed to these
+ functions come from the loaded terminal description.
to get good performance, curses (not only ncurses, but SVr4 curses in general) set an
- output buffer using setbuf
or similar function.
- There is no standard (or portable) way to turn that output
- buffer off, and revert to line-buffering. The
- NCURSES_NO_SETBUF
environment variable did make it
- optional.
improve check in lib_tparm.c
, ensuring that a
+ char* fits into a TPARM_ARG
to handle SIGTSTP
(the “stop”
- signal), ncurses relied upon
- unsafe functions. That is, due to the complexity of the
- feature, it relied upon reusing existing functions which
- should not have been called via the signal handler.
modify _nc_syserr_abort
to use
+ _nc_env_access
, rather than only checking root
+ uid
Conveniently, solving the second problem (by making ncurses do its own output buffering) - also fixed the first one. But there were special cases to - resolve: - low-level functions such as mvcur, putp, vidattr - explicitly use the standard output. Those functions were reused - internally, and required modification to distinguish whether they - were used by the high-level or low-level interfaces.
- -Finally, there may still be a few programs which should be - modified to improve their portability, e.g., adding an
- --- --fflush(stdout); --
when switching from “shell”
- mode to “program”
- (curses) mode. Those are fairly rare because most programmers
- have learned not to mix printf
and printw
.
This release introduces symbol-versioning to ncurses because without it, the change of ABI - would be less successful. A lengthy discussion will be presented - in Symbol - versioning in ncurses. These - notes summarize what has changed, and what can be done with the - new release.
- -Symbol-versioning allows the developers of a library to mark - each public symbol (both data and functions) with an identifier - denoting the library name and the version for which it was built. - By doing this, users of the library have a way to help ensure - that applications do not accidentally load an incompatible - library. In addition, private symbols can be hidden entirely.
- -This release provides sample files for the four principal
- configurations of ncurses libraries:
- ncurses
, ncursesw
,
- ncursest
and ncursestw
. Each sample is
- given in two forms:
-- --
-- “
- -.map
”- These list all public symbols, together with version - names.
- -- “
-.sym
”- These list all public symbols, without version - names.
-
The sample files are generated by scripts which take
- into account a few special cases such as tack to omit
- many of the ncurses private symbols
- (beginning with “_nc_
”). Here are
- counts of globals versus locals:
-- --
-- - -Config - -Symbols - -Globals - -Locals - -"_nc_" -- - -ncurses - -976 - -796 - -180 - -332 -- - -ncursesw - -1089 - -905 - -184 - -343 -- - -ncursest - -979 - -804 - -175 - -358 -- -ncursestw - -1098 - -914 - -184 - -372 -
Although only four sample configurations are presented, each - is formed by merging symbols from several combinations of - configure-script options, taking into account advice from - downstream packagers. Because they are formed by merging, the - sample files may list a symbol which is not in a given package. - That is expected. The samples have been tested and are working - with systems (such as Fedora, FreeBSD and Debian) which fully - support this feature. There are other systems which do - not support the feature, and a few (such as Solaris) - which provide incomplete support.
- -The version-naming convention used allows these sample files - to build distinct libraries for ABI 5 and 6. Version names - consist of
- -configuration name, e.g.,
- “NCURSESW
” for the wide-character
- libraries
improve thread lock in lib_trace.c
ABI version (if not 5)
+modify flushinp
to use file descriptors in
+ SCREEN
, rather than from TERMINAL
,
+ and check if they are for a terminal, like SVr4
library name for two special cases which have the same
- interface across configurations:
- “TINFO
” and
- “TIC
”
modify mcprint
to use file descriptor in
+ SCREEN
, for consistency
release version
+modify internal function _nc_read_file_entry
+ to show relevant filename in warnings
patch date (for the release version)
+improve checks in internal function
+ convert_string
for corrupt terminfo entry
For example, running nm -D
on the libraries in
- the ncurses6 test package shows these symbol-versions:
-- --0000000000000000 A NCURSES6_TIC_5.0.19991023 -0000000000000000 A NCURSES6_TIC_5.1.20000708 -0000000000000000 A NCURSES6_TIC_5.5.20051010 -0000000000000000 A NCURSES6_TIC_5.7.20081102 -0000000000000000 A NCURSES6_TIC_5.9.20150530 -0000000000000000 A NCURSES6_TINFO_5.0.19991023 -0000000000000000 A NCURSES6_TINFO_5.1.20000708 -0000000000000000 A NCURSES6_TINFO_5.2.20001021 -0000000000000000 A NCURSES6_TINFO_5.3.20021019 -0000000000000000 A NCURSES6_TINFO_5.4.20040208 -0000000000000000 A NCURSES6_TINFO_5.5.20051010 -0000000000000000 A NCURSES6_TINFO_5.6.20061217 -0000000000000000 A NCURSES6_TINFO_5.7.20081102 -0000000000000000 A NCURSES6_TINFO_5.8.20110226 -0000000000000000 A NCURSES6_TINFO_5.9.20150530 -0000000000000000 A NCURSESW6_5.1.20000708 -0000000000000000 A NCURSESW6_5.3.20021019 -0000000000000000 A NCURSESW6_5.4.20040208 -0000000000000000 A NCURSESW6_5.5.20051010 -0000000000000000 A NCURSESW6_5.6.20061217 -0000000000000000 A NCURSESW6_5.7.20081102 -0000000000000000 A NCURSESW6_5.8.20110226 -0000000000000000 A NCURSESW6_5.9.20150530 --
As a special case, this release (which makes the final change - for ABI 5) is marked with release version 5.9 and patch date - 20150530.
- -The new release has several improvements for performance and - building. For instance:
- -several files in ncurses- and progs-directories were
- modified to allow const
data used in internal
- tables to be put by the linker into the readonly text
- segment.
review/improve handling of out-of-memory conditions
various improvements were made to building the Ada95
- binding, both in simplifying the generated files as well as
- improving the way it uses gnatmake
limit delays to 30 seconds, i.e., padding delays in
+ terminfo, as well as napms
and
+ delay_output
functions
There are also new features in the libraries:
- -added - wgetdelay to retrieve _delay member of WINDOW if it - happens to be opaque, e.g., in the pthread configuration.
+fix reallocation loop for vsnprintf
in
+ _nc_sprintf_string
by copying the va_list
+ variable
added - A_ITALIC extension.
+modify delscreen
to limit the windows which
+ it creates to just those associated with the screen
added form library extension - O_DYNAMIC_JUSTIFY option which can be used to override - the different treatment of justification for static versus - dynamic fields .
+modify endwin
to return an error if it is
+ called again without an intervening screen update
rewrote - putwin and - getwin, making an extended version which is capable of - reading screen-dumps between the wide/normal ncurses configurations. These are text - files, except for a magic code at the beginning:
- --+-0 string \210\210 Screen-dump (ncurses) --
modify wenclose
to handle pads
several changes to mouse support include:
- -%u
” format to terminfo.eliminate use of PATH_MAX
in
+ lib_trace.c
provide for any CCHARW_MAX
greater than 1
There are a few new configure options dealing with library - customization:
+These are corrections to existing features:
add “--enable-ext-putwin
”
- configure option to turn on the extended putwin/getwin. By
- default, this is enabled for ABI 6 and disabled with ABI
- 5.
correct loop termination condition in
+ waddnstr
and waddnwstr
improve parsing in internal function
+ _nc_msec_cost
, allowing a single decimal
+ point
add “--enable-string-hacks
”
- option to control whether strlcat and strlcpy may be used.
- Because ncurses already does the
- requisite buffer-limit checks, this feature is mainly of
- interest to quiet compiler-warnings on a few systems.
amend parameter check for entire string versus specific
+ length in winsnstr
and wins_nwstr
+ to match Solaris; make similar correction to
+ wins_nwstr
add configure option
- “--with-tparm-arg
” to allow
- tparm's parameters to be something more likely to be the
- same size as a pointer, e.g., intptr_t
(again,
- the default is set for ABI 6).
correct internal function wadd_wch_literal
+ when adding a non-spacing character to a double-width
+ character
correct definition of Charable
macro for
+ non-wide ncurses library .
Most of the termcap-related changes based on development of
- tctest
- (termcap library checker) are implemented in the tic and
- infocmp programs rather than affecting the library. As noted in
- the
- discussion of tctest
, ncurses's ability to translate between terminfo
- and termcap formats has been improved at different times, but
- subject to feedback from "real" termcap users. There are very few
- of those. Nowadays, virtually all termcap users are
- using ncurses (or NetBSD, with its
- own terminfo library) and their programs are actually using
- terminfo rather than termcap data.
Still, there are a few. A comment about the translation of the
- ASCII NUL
character prompted a review:
Several improvements were made to the
+ utility programs. Some were done to make the infocmp
+ option “-u” option help refactor the
+ terminal database.
Both terminfo and termcap store string capabilities as
- NUL
-terminated strings.
In terminfo, a \0
in a terminal description
- is stored as \200
.
add limit checks for processing extended capabilities
+ with the “-u
” option
There are no (known) terminals which would behave
- differently when sent \0
or
- \200
.
correct initial alignment of extended capabilities, so
+ that the “-u
” option can be used
+ for more than two terminal types
When translating to terminfo format (or displaying a
- printable version of an entry using infocmp), ncurses shows \200
as
- \0
.
modify “-u
” option to not
+ report cancels for strings which were already cancelled
+ in a use'd chunk.
It has done this since 1998 (quoting from the NEWS - file):
+correct an assignment “-u
”
+ for detecting if a boolean is unset in a base entry and
+ set in a use'd chunk, i.e., if it was cancelled.
-- +-980103 -... - + modify _nc_tic_expand() to generate \0 rather than \200. -... - + correct translation of terminfo "^@", to \200, like \0. --
However, the _nc_tic_expand
function (which
- optionally produces terminfo or termcap format) did not
- address this special case for termcap. Even the later 4.4BSD
-
- cgetstr interprets a \0
literally, ending
- that string (rather than using the terminfo
- improvement).
correct limit-check when dumping tc/use clause via
+ “-I
”
As a result of the review, several improvements were made to - ncurses translation to/from termcap - format — and improving the checks made in tic for - consistency of entries. Most of these are not of general - interest, except for two new command-line options for tic and - infocmp:
+check return value of _nc_save_str
, in
+ special case where extended capabilities are processed
+ but the terminal description was not initialized
the “-0
” option generates
- termcap/terminfo source on a single line.
modify check for multiply defined aliases to report + problems within the current runtime rather than for + conflicts with pre-existing terminal descriptions.
+the “-K
” option provides stricter
- BSD-compatibility for termcap output.
disallow using $TERMINFO
or
+ $HOME/.terminfo
when
+ “-o
” option is used
add “-v
” option to tput, to
+ show warnings
modify reset command to avoid altering clocal + if the terminal uses a modem
+modify reset feature to avoid 1-second sleep + if running in a pseudo-terminal
+Other user-visible improvements and new features include:
+Along with the library and utilities, improvements were made + to the ncurses-examples:
added “-D
” option to tic and
- infocmp, to show the database locations that it could
- use.
modify test_tparm
to account for extended
+ capabilities
added “-s
” option to toe, to sort
- its output.
corrected mouse mask in test/testcurs.c
extended “-c
” and
- “-n
” options of infocmp to allow
- comparing more than two entries.
modify test/clip_printw.c
to optionally test
+ non-wrapped updates
modified toe's report when “-a
”
- and “-s
” options are combined, to
- add a column showing which entries belong to a given
- database.
modify test/test_mouse.c
to use curses api
+ for raw/noraw
modified the clear program to take into account the
- “E3
” extended capability to clear
- the terminal's scrollback buffer.
modify test/clip_printw.c
to optionally test
+ non-wrapped updates
There is one new demo/test programs:
-Along with the library and utilities, many improvements were - made to the ncurses-examples. - Some were made to allow building (and comparison-testing) against - NetBSD curses and PDCurses. Both lack some of the X/Open Curses - features, necessitating customization. But this activity was - useful because it showed some remaining performance issues (which - have been resolved in this release).
+These changes were made to verify compatibility or compare - performance of ncurses:
+This program shows the return-status from
+ endwin
with different combinations of
+ endwin
(repeated), initscr
,
+ newterm
.
made workarounds for compiling test-programs with NetBSD - curses, though it lacks some common functions such as - - use_env.
-added dots_termcap test-program
-There are several new terminal descriptions:
+added dots_curses test-program, for comparison with the - low-level examples.
+added test_setupterm test-proram to demonstrate - normal/error returns from the setupterm and restartterm - functions.
+added “-d
”,
- “-e
” and
- “-q
” options to the demo_terminfo
- and demo_termcap test-programs.
linux+kbs + for terminals which imitate xterm's behavior with Linux
added “-y
” option to demo_termcap
- and test/demo_terminfo test-programs to demonstrate behavior
- with/without extended capabilities.
rio, + rio-direct
modified demo_termcap and demo_terminfo test-programs to
- make their options more directly comparable, and add
- “-i
” option to specify a terminal
- description filename to parse for names to lookup.
rewrote the tests for - mvderwin and test for recursive - mvwin in the movewindow test-program.
+These changes were made to help with the MinGW port:
-added test-screens to the ncurses test-program to show - 256-characters at a time, to help with MinGW port.
+vt100+noapp, + vt100+noapp+pc, + xterm+app+pc, + xterm+decedit + from xterm + #389
modified the view test-program to load UTF-8 when built - with MinGW by using regular win32 API because the MinGW - functions mblen and mbtowc do not work.
+putty+cursor + to reflect amending of modified cursor-keys in 2021
added “-s
” option to the view
- test-program to allow it to start in single-step mode,
- reducing size of trace files when it is used for debugging
- MinGW changes.
These changes were made to verify new extensions in ncurses:
+There are many changes to existing terminal descriptions. Some
+ were updates to several descriptions, using the
+ infocmp
“-u
” option in a
+ script to determine which building-block entries could
+ be used to replace multiple capability settings (and trim
+ redundant information).
Other changes include:
added - form_driver_w entrypoint to wide-character forms library, - as well as form_driver_w test-program.
+document + XF, kxIN and kxOUT
modified ncurses test-program's b/B tests to display lines - only for the attributes which a given terminal supports, to - make room for an italics test.
+add note on sun + regarding wscons/cmdtool/shelltool
modified ncurses test-program, adding
- “-E
” and
- “-T
” options to demonstrate use_env
- versus use_tioctl.
remove DECCOLM+DECSCLM from foot
modified ncurses test-program's c/C tests to cycle through - subsets of the total number of colors, to better illustrate - 8/16/88/256-colors by providing directly comparable - screens.
+add xterm+focus to foot+base
modified the ncurses test-program to also show position - reports in 'a' test.
+add ecma+strikeout to putty
These changes were made to make the examples more useful:
- -added scripts for building dpkg and rpm test-packages
+use CSI 3J in vte-2017
modified the hanoi test-program to show the minimum number - of moves possible for the given number of tiles.
+use oldxterm+sm+1006 in vte-2014
modified the knight test-program to show the number of - choices possible for each position in automove option, e.g., - to allow user to follow Warnsdorff's rule to solve the - puzzle.
+modify xgterm + to work around line-drawing bug
This release provides improvements to tic's
- “-c
” checking option, which was used for
- example to
make sgr
in several entries agree with other
- caps.
add xterm focus mode 1004 to xterm+focus + as fe/fd capabilities, like vim.
correct padding in some entries where earlier versions had - miscounted the number of octal digits.
+add xterm+focus to alacritty+common
There are several new terminal descriptions:
- -A few entries use extensions (user-defined terminal - capabilities):
- -E3
, used in linux, putty and xterm-basic is
- tested in the clear
- program to erase a terminal's scrollback.
add XR/xr, to work with vim, and use RV/rv to denote DA2 + and its response
TS
is used in the
- xterm+sl building block to help deprecate the misuse of
- tsl
for xterm's title-string.
add XF flag to xterm+focus + so that termcap applications can be aware of terminals which + may support focus in/out
XT
is used in some terminfo entries to
- improve usefulness for other applications than screen, which
- would like to pretend that xterm's title is a
- status-line.
use xterm+focus in xterm-p370 + and tmux
xm
is used in examples
- xterm-1005 and
- xterm-1006 to illustrate a way to make mouse handling
- more general
remove xterm+sm+1006 from tmux
A few terminals support italics and/or dim capabilities. In
- particular, screen does not. Documented that, and accommodated
- the terminals where this feature works with the
- A_ITALIC
extension.
fills in overlooked descriptions of features which were - described in the NEWS file + described in the NEWS file but treated sketchily in manual pages.
In addition, the mechanism for producing HTML versions of the - documentation has been improved:
- -use an improved version of man2html - to generate html manpages.
-regenerated - NCURSES-Programming-HOWTO.html to fix some of the broken - html emitted by docbook.
-In addition to providing background information to explain + these features and show how they evolved, there are corrections, + clarifications, etc.:
Ada95 binding:
+Corrections:
modify makefile rules to ensure that the PIC option is - not used when building a static library
+add assignment in CF_MAN_PAGES
to fill in
+ value for TERMINFO_DIRS
in ncurses, terminfo
+ and tic manpages.
make Ada95 build-fix for big-endian architectures such
- as sparc. This undoes one of the fixes from
- 20110319, which added an
- “Unused
” member to
- representation clauses, replacing that with pragmas to
- suppress warnings about unused bits.
Color and attributes:
- -parenthesize parameter of COLOR_PAIR
and
- PAIR_NUMBER
in curses.h in case it happens
- to be a comma-expression.
clarify interaction of -R
option versus
+ -C
, -I
and -r
in
+ infocmp
manpage.
improve
- 20021221 workaround for broken acs, handling a case
- where that ACS_xxx character is not in the
- acsc
string but there is a known
- wide-character which can be used.
correct manpage description of panel_hidden.
modify - init_pair to accept -1's for color value after - - assume_default_colors has been called.
+improve manpage description for addch versus unctrl + format used for non-printable characters.
add a check in - start_color to limit color-pairs to 256 when extended - colors are not supported.
+improve manpages discussing file descriptors in + low-level functions.
Resizing the screen:
-propagate error-returns from wresize, i.e., the - internal increase_size and decrease_size functions - through - resize_term.
+improve description of search rules for terminal + descriptions in terminfo manpage.
add check for zero/negative dimensions for
- resizeterm
and resize_term
.
modify dist.mk to avoid passing developer's comments + in manpages into the generated html documentation.
modify resizeterm
to always push a
- KEY_RESIZE
onto the fifo, even if screensize
- is unchanged. Modify library to push a
- KEY_RESIZE
if there was a SIGWINCH, even if
- it does not call resizeterm
). These changes
- eliminate the case where a SIGWINCH is received, but ERR
- is returned from wgetch
or
- wgetnstr
because the screen dimensions did
- not change.
modify test-package "ncurses6-doc" to use + manpage-aliases, which in turn required a change to the + configure script to factor in the extra-suffix option + when deriving alias names.
Low-level interfaces
+New/improved history and portability sections:
fix an old bug in the termcap emulation;
- “%i
” was ignored in
- tparm
because the parameters to be
- incremented were already on the internal stack.
add information about "ttycap", termcap's forerunner, + to tset.1
change “%l
” behavior in tparm
- to push the string length onto the stack rather than
- saving the formatted length into the output buffer.
document limitations of tparm, and error-returns in + curs_terminfo.3x
modify name-comparison for tgetstr, etc., to - accommodate legacy applications as well as to improve - compatbility with BSD 4.2 termcap implementations (see - note for 980725).
+document limitations of tgoto, and error-returns in + curs_termcap.3x
Other improvements:
modify internal recursion in wgetch
which
- handles cooked mode to check if the call to
- wgetnstr
returned an error. This can happen
- when both nocbreak
and nodelay
- are set, for instance (see note for 960418).
add a check in internal function
- waddch_nosync
to ensure that tab characters
- are treated as control characters; some broken locales
- claim they are printable.
This release has many changes to improve the + formatting and style of the manpages.
modify menu library to ensure that a menu's top-row is - adjusted as needed to ensure that the current item is on - the screen
+Manpages now use consistent section-naming, page + headers and footers (including the modification date for + each page).
fix special case where double-width character - overwrites a single- width character in the first - column.
+Table layout has been revised.
There are no new manual pages (all of the manual page updates + are to existing pages).
+ +The changes to tparm, tgoto which improve + the design of the low-level interfaces are interesting, + but are not bug-fixes per se.
+The ncurses 6.0 configure script
- makes changes to the default value of several configure
- options, depending on the --with-abi-version
option
- (i.e., whether its value is “5” or
- “6”):
--enable-const
Feature introduced in 970405
- supports the use of const
where X/Open Curses
- should have, but did not. NetBSD curses does something
- similar with const
.
--enable-ext-colors
Extends the cchar_t
structure to allow more
- than 16 colors to be encoded. This applies only to the
- wide-character (--enable-widec
)
- configuration.
--enable-ext-mouse
Modifies the encoding of mouse state to make room for a - 5th mouse button. That allows one to use ncurses with a wheel - mouse with xterm or similar X terminal emulators.
---enable-ext-putwin
Modifies the file-format written by putwin
to
- use printable text rather than binary files, allowing
- getwin
to read screen dumps written by
- differently-configured ncurses libraries. The extended
- getwin
can still read binary screen dumps from
- the same configuration of ncurses. This does not
- change the ABI (the binary interface seen by calling
- applications).
--enable-interop
These are the major changes (aside from introducing tiparm_s):
-Modifies the FIELDTYPE
structure used for the
- form library to make it more generic.
--enable-lp64
Allows an application to define _LP64
to
- declare chtype
and mmask_t
as
- simply “unsigned
” rather than the
- configured types using the --with-chtype
and
- --with-mmask_t
options.
--enable-sp-funcs
Compile-in support for extended functions which accept a - SCREEN pointer, reducing the need for juggling the global SP - value with - set_term and - delscreen.
---with-chtype=uint32_t
Makes chtype
explicitly a 32-bit unsigned
- value.
use wide-character (ncursesw) by default
+--with-mmask_t=uint32_t
use opaque typedefs by default
+Makes mmask_t
explicitly a 32-bit unsigned
- value.
However, most of the work on configure scripts was done to + reduce warnings within the configure script:
---with-tparm-arg=intptr_t
intrusive warnings from GNU grep regarding fgrep and + egrep
+X/Open Curses declares
- tparm using long
for each of the parameters
- aside from the formatting string, presuming that
- long
and char*
are the same size.
- This configure option uses intptr_t
which
- provides a better guarantee of the sizes.
fatal errors in compile-checks, arising from recent + “Modern C” efforts by some developers which + caused longstanding configure checks to fail.
-The configure script no longer checks for antique compilers;
- c89
is assumed as a minimum. There are a few
- features from later revisions which are used when available. The
- configure script makes checks to turn on useful warnings from
- clang, gcc and icc. You should be able to build ncurses 6.0 with any of the current (or not so
- current) C compilers available in 2015.
The configure script, by the way, makes changes which do not
- work with systems whose /bin/sh
is non-POSIX. This
- mainly affects Solaris (the other vendor unix systems have followed the POSIX guidelines
- for the past twenty years). If you must build on Solaris, its
- xpg4
- binaries suffice, e.g.,
- - -+- #!/bin/sh
-
- WHAT=`hostname|sed -e 's/\..*//'`
- - OUT=configure.out
- cat >>$OUT <<EOF/
- ** `date`
- ** node: $WHAT
- ** user: `id`
- ** conf: $*
- EOF/
-
- SHELL=/bin/sh
- if test -f /usr/xpg4/bin/sh
- - then
- CONFIG_SHELL=/usr/xpg4/bin/sh
- export CONFIG_SHELL
- - SHELL=$CONFIG_SHELL
- fi
-
- rm -f config.status config.cache
- TOP=$HOME/$WHAT
- $SHELL ./configure --verbose \
- - --disable-echo \
- - --disable-overwrite \
- - --enable-warnings \
- - --with-warnings \
- - --prefix=$TOP $* 2>&1 | tee -a $OUT
- -
After repairing the configure script, none of that + activity affected ncurses because stricter warnings are used + routinely in development.
+Other major changes to the configure script include:
+Other improvements made to configure checks include
ABI 6 is now the default, intending that the existing ABI
- 5 should build as before using the
- “--with-abi-version=5
” option.
use string-hacks + in alloc_entry.c, alloc_type.c and hardscroll.c, overlooked + due to compiler changes in recent OpenBSD releases
added --with-extra-suffix
option to help with
- installing nonconflicting ncurses6 packages, e.g., avoiding
- header- and library-conflicts.
revise progs.priv.h to provide for NC_ISATTY reuse
+NOTE: as a side-effect, this renames
+configure check for MB_LEN_MAX provides warning as + needed
+-+-
adacurses-config
to -adacurses5-config
and
-adacursesw-config
to -adacursesw5-config
trim a space after some "-R" options, fixing builds for + applications built using clang and ncurses on Solaris
the configure script looks for gnatgcc if the Ada95 - binding is built, in preference to the default gcc/cc. The - script also ensures that the Ada95 binding is built with the - level of optimization as the C libraries.
+work around misconfiguration of MacPorts gcc13, which + exposes invalid definition of MB_LEN_MAX in gcc's + fallback copy of limits.h
the configure script captures define's related to - -D_XOPEN_SOURCE from the configure check and adds those to - the *-config and *.pc files, to simplify use for the - wide-character libraries.
+modified experimental Windows driver works with xterm + mouse protocol
There are several new (or extended) configure options:
+There are a few new configure options:
--disable-db-install
Do not install the terminal database. This is used to omit
- features for packages, as done with
- --without-progs
. The option simplifies building
- cross-compile support packages.
Compile with environment restriction, so certain + environment variables are not available when running via a + setuid/setgid application. These are (for example + $TERMINFO) those that allow the search path for the + terminfo or termcap entry to be customized.
+ +A setuid/setgid application inherits its environment + variables from the current user, in contrast to sudo which + may limit the environment variables that ncurses uses.
--disable-gnat-projects
This option is used for regression testing
+Compile-in feature to detect screensize for terminals + which do not advertise their screensize, e.g., serial + terminals.
--disable-lib-suffixes
Suppress the “w”, “t” or
- “tw” suffixes which normally would be added to
- the library names for the --enable-widec
and
- --with-pthread
options.
Override the displayed (rather than compiled-in) ABI. Only + packagers who have created configurations where the ABI + differs from ncurses should be interested in this option.
--with-cxx-shared
When --with-shared
is set, build libncurses++
- as a shared library. This implicitly relies upon building
- with gcc/g++, since other compiler suites may have
- differences in the way shared libraries are built. libtool by
- the way has similar limitations.
When stripping executables during install, use the + specified program rather than “strip” overriding + program chosen by the install program for stripping + executables.
--with-hashed-db
Extended this configure option to simplify building with - different versions of Berkeley database using FreeBSD - ports.
-These configure options are modified:
---with-pc-suffix
If ".pc" files are installed, optionally add a suffix to - the files and corresponding package names to separate unusual - configurations. If no option value is given (or if it is - "none"), no suffix is added. This option is used in the test - package for ncurses6.
+The optional DIR parameter can now be + “auto” to automatically use pkg-config's library + directory.
+ +The default is $(libdir).
--with-xterm-kbs
Configure xterm's terminfo entries to use either BS
- (^H
, i.e., ASCII backspace) or DEL
- (^?
, or 127).
The default is “auto” which tells the + configure script to choose BS or DEL according to platform + defaults.
Most of the portability-related work since - ncurses 5.9 extended and improved the MinGW port - introduced in - ncurses 5.8.
+The MinGW port can be readily cross-compiled:
+Many of the portability changes are implemented via the + configure script:
modified configure script to allow creating dll's for - MinGW when cross-compiling.
-enforced Windows-style path-separator if - cross-compiling,
-added scripts for test-builds of cross-compiled packages - for ncurses6 to MinGW.
-added pc-files to the MinGW cross-compiling - test-packages.
-added script for building test-packages of binaries - cross-compiled to MinGW using NSIS.
+add/use configure check for clock_gettime
, to
+ supersede gettimeofday
.
added nc_mingw.h
to installed headers for
- MinGW port; this is needed for cross-compiling ncurses-examples.
modify configure script check for pkg-config library + directory to take into account an older version 0.15.0 which + used PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR
added test-packages for cross-compiling ncurses-examples - using the MinGW test-packages.
+allow for MinGW32-/64-bit configurations to use + _DEFAULT_SOURCE
The MinGW-specific Windows driver accounts for several - changes:
-wide-character display is made usable by replacing MinGW's
- non-working wcrtomb
and wctomb
- functions.
modify CF_XOPEN_SOURCE macro's amend default case to avoid + undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined
implemented some display features: beep, - flash, - - curs_set.
+updated configure script macro CF_XOPEN_SOURCE, for + uClibc-ng
the driver handles repainting on endwin/refresh - combination.
+modify version-check for gcc/g++, now works for msys2
modified treatment of TERM
variable for MinGW
- port to allow explicit use of the Windows console driver by
- checking if $TERM
is set to
- “#win32console
” or an abbreviation
- of that.
build-fixes related to configure-options and/or + platform:
-the Windows driver also matches the special
- TERM
value “unknown”
the driver now returns characters for special keys, (like
- ansi.sys
does), when keypad mode is off, rather
- than returning nothing at all.
the driver checks a new environment variable
- NCURSES_CONSOLE2 to optionally work around a deficiency
- in Console2
(and its descendent
- ConsoleZ
) which hang when an application creates
- a console buffer.
Finally, there are other improvements:
+MinGW is one of the configurations where ncurses installs by default into /usr
+extend Windows support to work with MSYS2;
+other configure-script improvements:
this works with a scenario where there is an
- ANSI-escape handler such as ansicon
running
- in the console window.
isatty
calls with a macro, provide a
- corresponding set of support routines to address
- differences between MinGW and MSYS2.ensure WINVER
is defined in makefiles rather
- than using headers.
add check for the gnatprep
- “-T
” option.
work around a bug introduced by - gcc 4.8.1 in MinGW which breaks "trace" feature.
-add a driver-name method to each of the drivers.
+These changes affect certain platforms (ports):
+Here are some of the other portability fixes:
the configure script knows how to build shared libraries - with DragonFlyBSD and Interix.
-support for AIX shared libraries is improved, tested with - AIX 5.3, 6.1 and 7.1 with both gcc 4.2.4 and cc:
- -the shared-library suffix for AIX 5 and 6 is now - ".so"
-the -brtl
option is used with AIX 5-7; it
- is needed to link with the shared libraries.
the configure --enable-pc-files
option takes
- into account the PKG_CONFIG_PATH
- variable.
the configure option --with-pkg-config-libdir
- provides control over the actual directory into which
- pc-files are installed.
the build scripts add explicit -ltinfo, etc., to the
- generated ".pc" file when ld
option
- “--as-needed
” is used, or when
- ncurses and tinfo are installed without using rpath.
the configure script disallows conflicting options
- “--with-termlib
” and
- “--enable-term-driver
”.
modify configure scripts/makefiles to omit + KEY_RESIZE if the corresponding SIGWINCH + feature is disabled
the check for missing c++ compiler to work when no error - is reported, and no variables set is improved (see note for - 20021206).
-the misc/gen_edit.sh script selects a "linux" entry which - works with the current kernel rather than assuming it is - always "linux3.0"
+increase MB_CUR_MAX to 16, matching glibc's + MB_LEN_MAX
the test/configure script makes it simpler to override - names of curses-related libraries, to help with linking with - pdcurses in MinGW environment.
+add BSD erase2 to characters handled by + tset/reset
the configure-script/ifdef's allow the BSD OLD_TTY feature
- to be suppressed if the type of ospeed
is
- configured using the option --with-ospeed
to not
- be a short
. By default, it is a
- short
for termcap-compatibility.
use getauxval when available, to improve + setuid/setgid checks
the MKlib_gen.sh script works around a recent change in
- gcc 5 (released mid-2015) which essentially
- emits multiple #line
statements for the same
- position in a file.
set dwShareMode in calls to + CreateConsoleScreenBuffer
the configure script works with Minix3.2 (see note - on portability)
+use CreateFile with "CONIN$", + "CONOUT$" rather than GetStdHandle to + obtain a handle on the actual console, avoiding redirection + in the MinGW/Win32 configurations
OS/2 redux:
- -the configure script supports OS/2 kLIBC.
-the --with-lib-prefix
option allows
- configuring for old/new flavors of OS/2 EMX.
modify MinGW driver to return KEY_BACKSPACE when + an unmodified VK_BACK virtual key is entered
improved configure-script checks for
- _XOPEN_SOURCE
:
the definition works starting with Solaris 10.
-the definition is suppressed for IRIX64, since its
- header files have a conflict versus
- _SGI_SOURCE
.
modify MinGW configuration to provide for running in + MSYS/MSYS2 shells, assuming ConPTY support
The ncurses package is fully +
The ncurses package is fully upward-compatible with SVr4 (System V Release 4) curses:
ncurses supports all of the - for SVr4 curses features including keyboard mapping, color, - forms-drawing with ACS characters, and automatic recognition +
ncurses supports the + features of SVr4 curses including keyboard mapping, color, + form 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):
+ncurses provides work-alike + replacements of SVr4 supplemental libraries based on curses, + but which were not specified by X/Open Curses:
the panels library, supporting a stack of windows with - backing store.
+the panel library, supporting a stack of windows with + backing store
the menus library, supporting a uniform but flexible - interface for menu programming.
+the menu library, supporting a uniform but flexible + interface for menu programming
the form library, supporting data collection through - on-screen forms.
+ on-screen formsncurses's terminal database is - fully compatible with that used by SVr4 curses.
+ncurses's terminal database + is fully compatible with that used by SVr4 curses.
ncurses supports + user-defined capabilities that 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 @@ -1880,36 +1150,36 @@ fflush(stdout);
Alternatively, ncurses can - be configured to use hashed databases rather than the +
Alternatively, ncurses + can be configured to use hashed databases rather than the directory of files used by SVr4 curses.
The ncurses utilities have +
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.
+ as the HP-UX and AIX ports.The ncurses package also has many - useful extensions over SVr4:
+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, 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).
+ X/Open Curses specification, XSI curses (that is, it + implements all BASE level features, and almost all + 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 +
Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner of the screen if your terminal has an insert-character capability.
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 direct-color terminals, such as modern + xterm.
The tic/captoinfo - utility provided with ncurses has - the ability to translate many termcaps from the XENIX, IBM - and AT&T extension sets.
+The tic/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 - utility is provided.
+ "https://invisible-island.net/ncurses/man/tset.1.html">tset utility is provided.The ncurses library and +
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 @@ -2030,176 +1306,222 @@ fflush(stdout);
The table-of-entries utility toe - makes it easy for users to see exactly what terminal types - are available on the system.
+ "https://invisible-island.net/ncurses/man/toe.1m.html">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
.
X/Open Curses permits most functions it specifies to be + made available as macros as well. ncurses does this
+ +stdscr
, andExcept for the last case, ncurses provides a non-macro
+ implementation of the function. If the macro definition is
+ disabled with #undef
, or by defining
+ NCURSES_NOMACROS
the function may be linked (and
+ its calls will be checked against the prototype).
Extensive documentation is provided (see the - Additional Reading section of the - ncurses FAQ for online documentation).
+ "https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading">Additional + Reading section of the ncurses FAQ for online + documentation).The ncurses distribution includes - a selection of test programs (including a few games). These are - available separately as ncurses-examples
+The ncurses distribution + includes a selection of test programs (including a few games). + These are available separately as ncurses-examples
The ncurses library has been tested with a wide variety of applications including:
--
- cdk
+- aptitude +
- -
+ +Curses Development Kit
+FrontEnd to Apt, the debian package manager
http://invisible-island.net/cdk/
+
+ "https://wiki.debian.org/Aptitude">https://wiki.debian.org/Aptitude- cdk +
+ +- +
-Curses Development Kit
+ +- ded
+- ded +
- -
directory-editor
- +- dialog
+- dialog +
- -
the underlying application used in Slackware's setup, and the basis for similar install/configure applications on many systems.
- +- lynx
+- lynx +
- -
the text WWW browser
+ "https://lynx.invisible-island.net/">https://lynx.invisible-island.net/- Midnight Commander
+- mutt +
- -
-file manager
+mail utility
- +- mutt
+- ncftp +
- -
-mail utility
+file-transfer utility
+ "https://www.ncftp.com/">https://www.ncftp.com/- ncftp
+- nvi +
- -
-file-transfer utility
+New vi uses ncurses.
+ "https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page"> + https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page
+ +- nvi
+- ranger +
- -
-New vi uses ncurses.
+A console file manager with VI key bindings in + Python.
+ "https://ranger.github.io/">https://ranger.github.io/- tin
+- tin +
- + +
newsreader, supporting color, MIME
- + +- vifm +
+ +- +
File manager with vi like keybindings
+ +
as well as some that use ncurses - for the terminfo support alone:
+as well as some that use ncurses for the terminfo support alone:
@@ -2208,31 +1530,44 @@ fflush(stdout);-
- minicom
+- minicom +
- -
terminal emulator for serial modem connections
+ "https://salsa.debian.org/minicom-team/minicom">https://salsa.debian.org/minicom-team/minicom- mosh
+- mosh +
- -
a replacement for
- +ssh
.- tack
+- tack +
- -
terminfo action checker
- +- tmux
+- tmux +
- -
terminal multiplexor
+ "https://github.com/tmux/tmux/wiki">https://github.com/tmux/tmux/wiki- vile
+- vile +
- -
vi-like-emacs may be built to use the terminfo, termcap - or curses interfaces.
+vi-like-emacs may be built to use the terminfo, + termcap or curses interfaces.
- +
@@ -2240,15 +1575,21 @@ fflush(stdout);-
- emacs
+- emacs +
- -
text editor
+ "https://www.gnu.org/software/emacs/">https://www.gnu.org/software/emacs/- screen
+- less +
+ +- +
+ +The most commonly used pager (a program that + displays text files).
+ + +- screen +
- -
terminal multiplexor
+ "https://www.gnu.org/software/screen/">https://www.gnu.org/software/screen/- vim
+- vim +
text editor
- +
Zeyd Ben-Halim started ncurses +
Zeyd Ben-Halim started ncurses from a previous package pcurses, written by Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer wrote most of - the form and menu libraries. Ongoing development work is done by - Thomas Dickey. - Thomas Dickey also acts as the maintainer for the Free Software - Foundation, which holds the copyright - on ncurses.
+ the form and menu libraries. + +Ongoing development work is done by Thomas E. Dickey. Thomas + E. Dickey has acted as the maintainer for the Free Software + Foundation, which held a copyright on ncurses for + releases 4.2 through 6.1. Following the release of ncurses 6.1, + effective as of release 6.2, copyright for ncurses reverted to + Thomas E. Dickey (see the ncurses FAQ for + additional information).
Contact the current maintainers at
@@ -2261,8 +1602,8 @@ fflush(stdout);bug-ncurses-request@gnu.org -containing the line: - + + containing the line:
@@ -2271,21 +1612,32 @@ fflush(stdout);
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
+Beta versions of ncurses are + made available at
+ +++ +https://invisible-island.net/archives/ncurses/current/ + and
+
+ https://invisible-mirror.net/archives/ncurses/current/ .Patches to the current release are made available at
ftp://invisible-island.net/ncurses/ .
+ "https://invisible-island.net/archives/ncurses/6.4/">https://invisible-island.net/archives/ncurses/6.4/ + and
+ https://invisible-mirror.net/archives/ncurses/6.4/ .There is an archive of the mailing list here:
http://lists.gnu.org/archive/html/bug-ncurses - (also https)
+ "https://lists.gnu.org/archive/html/bug-ncurses">https://lists.gnu.org/archive/html/bug-ncurses .Related @@ -2295,36 +1647,28 @@ fflush(stdout); which may be interesting by themselves:
-
- man2html
+- ncurses licensing
-- - ncurses licensing
+- Symbol versioning + in ncurses
-- Symbol - versioning in ncurses
+- Comments on + ncurses versus slang (S-Lang)
-- The - MinGW port of ncurses
+- Comments on + OpenBSD
-- tack – - terminfo action checker
- -- tar - versus portability
+- tack – terminfo action + checker
-- tctest - – termcap library checker
+- tctest – termcap + library checker
- - Terminal Database
+ "https://invisible-island.net/ncurses/ncurses.html#download_database">Terminal + DatabaseOther @@ -2334,13 +1678,18 @@ fflush(stdout); terminfo-format terminal description file once maintained by 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. + terminfo data are provided in the same file, which also provides + several user-definable extensions beyond the X/Open Curses + specification.
You can find lots of information on terminal-related topics - not covered in the terminfo file at - Richard Shuford's archive .
+ not covered in the terminfo file in Richard Shuford's + archive (original). + The collection of computer manuals at bitsavers.org has also been + useful.