mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2024-12-21 07:39:06 +08:00
02f02dcd44
+ build-fix for Ada95 on older platforms without stdint.h + build-fix for Solaris, whose /bin/sh and /usr/bin/sed are non-POSIX. + update release announcement, summarizing more than 800 changes across more than 200 snapshots. + minor fixes to manpages, etc., to simplify linking from announcement page.
1226 lines
58 KiB
Plaintext
1226 lines
58 KiB
Plaintext
Announcing ncurses 6.0
|
|
|
|
Overview
|
|
|
|
The ncurses (new curses) library is a free software emulation of
|
|
curses in System V Release 4.0 (SVr4), and more. It uses terminfo
|
|
format, supports pads and color and multiple highlights and forms
|
|
characters and function-key mapping, and has all the other SVr4-curses
|
|
enhancements over BSD curses. SVr4 curses is better known today as
|
|
X/Open Curses.
|
|
|
|
In mid-June 1995, the maintainer of 4.4BSD curses declared that he
|
|
considered 4.4BSD curses obsolete, and encouraged the keepers of unix
|
|
releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
|
|
|
|
Since 1995, ncurses has been ported to many systems:
|
|
* It is used in almost every system based on the Linux kernel (aside
|
|
from some embedded applications).
|
|
* It is used as the system curses library on OpenBSD, FreeBSD and
|
|
OSX.
|
|
* It is used in environments such as Cygwin and MinGW. The first of
|
|
these was EMX on OS/2 Warp.
|
|
* It is used (though usually not as the system curses) on all of the
|
|
vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris,
|
|
Tru64.
|
|
* It should work readily on any ANSI/POSIX-conforming unix.
|
|
|
|
The distribution includes the library and support utilities, including
|
|
* [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 via anonymous FTP at the GNU
|
|
distribution site
|
|
|
|
[9]ftp://ftp.gnu.org/gnu/ncurses/ .
|
|
|
|
It is also available at
|
|
|
|
[10]ftp://invisible-island.net/ncurses/ .
|
|
|
|
Release Notes
|
|
|
|
These notes are for ncurses 6.0, released August 8, 2015.
|
|
|
|
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:
|
|
* Extend the cchar_t structure to allow more than 16 colors to be
|
|
encoded.
|
|
* 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.
|
|
|
|
There are, of course, numerous other improvements, including
|
|
* fixes made based on the Clang and Coverity static analyzers.
|
|
* memory leak fixes using Valgrind
|
|
|
|
The release notes mention some bug-fixes, but are focused on new
|
|
features and improvements to existing features log since ncurses 5.9
|
|
release.
|
|
|
|
While the intent of the release is to provide a new stable ABI, there
|
|
are other development activities which are summarized below.
|
|
* 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.
|
|
* 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 [11]termcap library checker (tctest) (not part of ncurses) was
|
|
one result. A followup review of performance using
|
|
[12]ncurses-examples in 2014 led to additional improvements.
|
|
* Output buffering provided a further, but worthwhile distraction. A
|
|
bug report in 2012 regarding the use of signal handlers in
|
|
ncurses) pointed out [13]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 [14]2005 (released in [15]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 [16]Symbol versioning in ncurses.
|
|
|
|
Library improvements
|
|
|
|
Output buffering
|
|
|
|
X/Open curses provides more than one initialization function:
|
|
* [17]initscr (the simplest) accepts no parameters.
|
|
* [18]newterm accepts parameters for the stream input and output
|
|
* [19]setupterm (the low-level function) accepts a parameter for the
|
|
file descriptor of the output.
|
|
|
|
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:
|
|
* 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 [20]NCURSES_NO_SETBUF
|
|
environment variable did make it optional.
|
|
* 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.
|
|
|
|
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: [21]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 "[22]shell" mode to "[23]program" (curses) mode.
|
|
Those are fairly rare because most programmers have learned not to mix
|
|
printf and [24]printw.
|
|
|
|
Symbol versioning
|
|
|
|
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 [25]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 [26]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
|
|
* ABI version (if not 5)
|
|
* library name for two special cases which have the same interface
|
|
across configurations: "TINFO" and "TIC"
|
|
* release version
|
|
* patch date (for the release version)
|
|
|
|
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.
|
|
|
|
Miscellaneous
|
|
|
|
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.
|
|
* various improvements were made to building the Ada95 binding, both
|
|
in simplifying the generated files as well as improving the way it
|
|
uses gnatmake
|
|
|
|
There are also new features in the libraries:
|
|
* added [27]use_tioctl function
|
|
* added [28]wgetdelay to retrieve _delay member of WINDOW if it
|
|
happens to be opaque, e.g., in the pthread configuration.
|
|
* added [29]A_ITALIC extension.
|
|
* added form library extension [30]O_DYNAMIC_JUSTIFY option which
|
|
can be used to override the different treatment of justification
|
|
for static versus dynamic fields .
|
|
* rewrote [31]putwin and [32]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)
|
|
|
|
* several changes to mouse support include:
|
|
+ added decoder for xterm SGR 1006 mouse mode.
|
|
+ added experimental support for "%u" format to terminfo.
|
|
+ improved behavior of wheel-mice for xterm protocol: noting
|
|
that there are only button-presses for buttons "4" and "5",
|
|
so there is no need to wait to combine events into
|
|
double-clicks .
|
|
|
|
There are a few new configure options dealing with library
|
|
customization:
|
|
* 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.
|
|
* 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.
|
|
* add configure option "--with-tparm-arg" to allow [33]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).
|
|
|
|
Program improvements
|
|
|
|
Utilities
|
|
|
|
Most of the termcap-related changes based on development of [34]tctest
|
|
(termcap library checker) are implemented in the tic and infocmp
|
|
programs rather than affecting the library. As noted in the
|
|
[35]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:
|
|
* Both terminfo and termcap store string capabilities as
|
|
NUL-terminated strings.
|
|
* In terminfo, a \0 in a terminal description is stored as \200.
|
|
* There are no (known) terminals which would behave differently when
|
|
sent \0 or \200.
|
|
* When translating to terminfo format (or displaying a printable
|
|
version of an entry using infocmp), ncurses shows \200 as \0.
|
|
* It has done this since 1998 (quoting from the NEWS file):
|
|
|
|
[36]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 [37]cgetstr interprets a \0
|
|
literally, ending that string (rather than using the terminfo
|
|
improvement).
|
|
|
|
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:
|
|
* the "-0" option generates termcap/terminfo source on a single
|
|
line.
|
|
* the "-K" option provides stricter BSD-compatibility for termcap
|
|
output.
|
|
|
|
Other user-visible improvements and new features include:
|
|
* added "-D" option to tic and infocmp, to show the database
|
|
locations that it could use.
|
|
* added "-s" option to toe, to sort its output.
|
|
* extended "-c" and "-n" options of infocmp to allow comparing more
|
|
than two entries.
|
|
* modified toe's report when "-a" and "-s" options are combined, to
|
|
add a column showing which entries belong to a given database.
|
|
* modified the clear program to take into account the "E3" extended
|
|
capability to clear the terminal's scrollback buffer.
|
|
|
|
Examples
|
|
|
|
Along with the library and utilities, many improvements were made to
|
|
the [38]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:
|
|
* made workarounds for compiling test-programs with NetBSD curses,
|
|
though it lacks some common functions such as [39]use_env.
|
|
* added dots_termcap test-program
|
|
* 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.
|
|
* added "-y" option to demo_termcap and test/demo_terminfo
|
|
test-programs to demonstrate behavior with/without extended
|
|
capabilities.
|
|
* 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 [40]mvderwin and test for recursive
|
|
[41]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.
|
|
* 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.
|
|
* 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:
|
|
* added [42]form_driver_w entrypoint to wide-character forms
|
|
library, as well as form_driver_w test-program.
|
|
* 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.
|
|
* modified ncurses test-program, adding "-E" and "-T" options to
|
|
demonstrate use_env versus use_tioctl.
|
|
* 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.
|
|
* modified the ncurses test-program to also show position reports in
|
|
'a' test.
|
|
|
|
These changes were made to make the examples more useful:
|
|
* added scripts for building dpkg and rpm test-packages
|
|
* modified the hanoi test-program to show the minimum number of
|
|
moves possible for the given number of tiles.
|
|
* 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.
|
|
|
|
Terminal database
|
|
|
|
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.
|
|
* correct padding in some entries where earlier versions had
|
|
miscounted the number of octal digits.
|
|
|
|
There are several new terminal descriptions:
|
|
* [43]mlterm is now aliased to mlterm3
|
|
* [44]nsterm is now derived from nsterm-256color
|
|
* [45]putty-sco
|
|
* [46]teken is FreeBSD's "xterm" console.
|
|
* [47]terminator
|
|
* [48]terminology
|
|
* [49]tmux is derived from screen.
|
|
* several screen.XXX entries support the respective variations for
|
|
256 colors.
|
|
* [50]simpleterm is now 0.5
|
|
* [51]vte is aliased to vte-2012
|
|
* [52]vt520ansi
|
|
|
|
A few entries use extensions (user-defined terminal capabilities):
|
|
* E3, used in linux, putty and xterm-basic is tested in the
|
|
[53]clear program to erase a terminal's scrollback.
|
|
* TS is used in the [54]xterm+sl building block to help deprecate
|
|
the misuse of tsl for xterm's title-string.
|
|
* 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.
|
|
* xm is used in examples [55]xterm-1005 and [56]xterm-1006 to
|
|
illustrate a way to make mouse handling more general
|
|
|
|
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.
|
|
* konsole, mlterm3 (italics)
|
|
* nsterm (dim)
|
|
* screen (dim)
|
|
* vte (dim, italics)
|
|
* xterm (dim, italics)
|
|
|
|
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 [57]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 [58]man2html to generate html manpages.
|
|
* regenerated [59]NCURSES-Programming-HOWTO.html to fix some of the
|
|
broken html emitted by docbook.
|
|
|
|
Interesting bug-fixes
|
|
|
|
* Ada95 binding:
|
|
+ modify makefile rules to ensure that the PIC option is not
|
|
used when building a static library
|
|
+ make Ada95 build-fix for big-endian architectures such as
|
|
sparc. This undoes one of the fixes from [60]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.
|
|
+ improve [61]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.
|
|
+ modify [62]init_pair to accept -1's for color value after
|
|
[63]assume_default_colors has been called.
|
|
+ add a check in [64]start_color to limit color-pairs to 256
|
|
when extended colors are not supported.
|
|
* Resizing the screen:
|
|
+ propagate error-returns from wresize, i.e., the internal
|
|
increase_size and decrease_size functions through
|
|
[65]resize_term.
|
|
+ add check for zero/negative dimensions for resizeterm and
|
|
resize_term.
|
|
+ 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.
|
|
* Low-level interfaces
|
|
+ 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.
|
|
+ change "%l" behavior in tparm to push the string length onto
|
|
the stack rather than saving the formatted length into the
|
|
output buffer.
|
|
+ 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 [66]980725).
|
|
* High-level interfaces
|
|
+ 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 [67]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.
|
|
+ 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
|
|
+ fix special case where double-width character overwrites a
|
|
single- width character in the first column.
|
|
|
|
Configuration changes
|
|
|
|
Major changes
|
|
|
|
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 [68]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
|
|
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 [69]set_term and [70]delscreen.
|
|
|
|
--with-chtype=uint32_t
|
|
Makes chtype explicitly a 32-bit unsigned value.
|
|
|
|
--with-mmask_t=uint32_t
|
|
Makes mmask_t explicitly a 32-bit unsigned value.
|
|
|
|
--with-tparm-arg=intptr_t
|
|
X/Open Curses declares [71]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.
|
|
|
|
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 [72]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
|
|
|
|
Other major changes to the configure script include:
|
|
* ABI 6 is now the default, intending that the existing ABI 5 should
|
|
build as before using the "--with-abi-version=5" option.
|
|
* added --with-extra-suffix option to help with installing
|
|
nonconflicting ncurses6 packages, e.g., avoiding header- and
|
|
library-conflicts.
|
|
NOTE: as a side-effect, this renames
|
|
|
|
adacurses-config to adacurses5-config and
|
|
adacursesw-config to adacursesw5-config
|
|
* 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.
|
|
* 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.
|
|
|
|
Configuration options
|
|
|
|
There are several new (or extended) 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.
|
|
|
|
--disable-gnat-projects
|
|
This option is used for regression testing
|
|
|
|
--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.
|
|
|
|
--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.
|
|
|
|
--with-hashed-db
|
|
Extended this configure option to simplify building with
|
|
different versions of Berkeley database using FreeBSD ports.
|
|
|
|
--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.
|
|
|
|
--with-xterm-kbs
|
|
Configure xterm's terminfo entries to use either BS (^H, i.e.,
|
|
ASCII backspace) or DEL (^?, or 127).
|
|
|
|
Portability
|
|
|
|
MinGW
|
|
|
|
Most of the portability-related work since [73]ncurses 5.9 extended
|
|
and improved the MinGW port introduced in [74]ncurses 5.8.
|
|
|
|
The MinGW port can be readily cross-compiled:
|
|
* 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.
|
|
* added nc_mingw.h to installed headers for MinGW port; this is
|
|
needed for cross-compiling [75]ncurses-examples.
|
|
* added test-packages for cross-compiling ncurses-examples using the
|
|
MinGW test-packages.
|
|
|
|
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.
|
|
* implemented some display features: [76]beep, [77]flash,
|
|
[78]curs_set.
|
|
* the driver handles repainting on endwin/refresh combination.
|
|
* 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.
|
|
* 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 [79]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
|
|
* configuration for cross-compiling uses AC_CHECK_TOOLS in
|
|
preference to AC_PATH_PROGS when searching for ncurses*-config,
|
|
e.g., in Ada95/configure and test/configure.
|
|
* extend Windows support to work with MSYS2;
|
|
+ this works with a scenario where there is an ANSI-escape
|
|
handler such as ansicon running in the console window.
|
|
+ wrap 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 [80]gcc 4.8.1 in MinGW which
|
|
breaks "trace" feature.
|
|
* add a driver-name method to each of the drivers.
|
|
|
|
Other ports
|
|
|
|
These changes affect certain platforms (ports):
|
|
* 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
|
|
[81]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".
|
|
* the check for missing c++ compiler to work when no error is
|
|
reported, and no variables set is improved (see note for
|
|
[82]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"
|
|
* the test/configure script makes it simpler to override names of
|
|
curses-related libraries, to help with linking with pdcurses in
|
|
MinGW environment.
|
|
* 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.
|
|
* the MKlib_gen.sh script works around a recent change in gcc 5
|
|
(released [83]mid-2015) which essentially emits multiple #line
|
|
statements for the same position in a file.
|
|
* the configure script works with Minix3.2 (see [84]note on
|
|
portability)
|
|
* 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.
|
|
* 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.
|
|
_________________________________________________________________
|
|
|
|
Features of ncurses
|
|
|
|
The ncurses package is fully upward-compatible with SVr4 (System V
|
|
Release 4) curses:
|
|
* All of the SVr4 calls have been implemented (and are documented).
|
|
* ncurses supports all of the for SVr4 curses features including
|
|
keyboard mapping, color, forms-drawing with ACS characters, and
|
|
automatic recognition of keypad and function keys.
|
|
* ncurses provides these SVr4 add-on libraries (not part of X/Open
|
|
Curses):
|
|
+ the panels library, supporting a stack of windows with
|
|
backing store.
|
|
+ the menus library, supporting a uniform but flexible
|
|
interface for menu programming.
|
|
+ the form library, supporting data collection through
|
|
on-screen forms.
|
|
* ncurses's terminal database is fully compatible with that used by
|
|
SVr4 curses.
|
|
+ ncurses supports user-defined capabilities which it can see,
|
|
but which are hidden from SVr4 curses applications using the
|
|
same terminal database.
|
|
+ It can be optionally configured to match the format used in
|
|
related systems such as AIX and Tru64.
|
|
+ Alternatively, ncurses can be configured to use hashed
|
|
databases rather than the directory of files used by SVr4
|
|
curses.
|
|
* The ncurses utilities have options to allow you to filter terminfo
|
|
entries for use with less capable curses/terminfo versions such as
|
|
the HP/UX and AIX ports.
|
|
|
|
The ncurses package also has many useful extensions over SVr4:
|
|
* The API is 8-bit clean and base-level conformant with the X/OPEN
|
|
curses specification, XSI curses (that is, it implements all BASE
|
|
level features, and most EXTENDED features). It includes many
|
|
function calls not supported under SVr4 curses (but portability of
|
|
all calls is documented so you can use the SVr4 subset only).
|
|
* Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
|
|
corner of the screen if your terminal has an insert-character
|
|
capability.
|
|
* Ada95 and C++ bindings.
|
|
* Support for mouse event reporting with X Window xterm and FreeBSD
|
|
and OS/2 console windows.
|
|
* Extended mouse support via Alessandro Rubini's gpm package.
|
|
* The function wresize allows you to resize windows, preserving
|
|
their data.
|
|
* The function use_default_colors allows you to use the terminal's
|
|
default colors for the default color pair, achieving the effect of
|
|
transparent colors.
|
|
* The functions keyok and define_key allow you to better control the
|
|
use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
|
|
defining more than one control sequence to map to a given key
|
|
code.
|
|
* Support for 256-color terminals, such as modern xterm.
|
|
* Support for 16-color terminals, such as aixterm and modern xterm.
|
|
* Better cursor-movement optimization. The package now features a
|
|
cursor-local-movement computation more efficient than either BSD's
|
|
or System V's.
|
|
* Super hardware scrolling support. The screen-update code
|
|
incorporates a novel, simple, and cheap algorithm that enables it
|
|
to make optimal use of hardware scrolling, line-insertion, and
|
|
line-deletion for screen-line movements. This algorithm is more
|
|
powerful than the 4.4BSD curses quickch routine.
|
|
* Real support for terminals with the magic-cookie glitch. The
|
|
screen-update code will refrain from drawing a highlight if the
|
|
magic- cookie unattributed spaces required just before the
|
|
beginning and after the end would step on a non-space character.
|
|
It will automatically shift highlight boundaries when doing so
|
|
would make it possible to draw the highlight without changing the
|
|
visual appearance of the screen.
|
|
* It is possible to generate the library with a list of pre-loaded
|
|
fallback entries linked to it so that it can serve those terminal
|
|
types even when no terminfo tree or termcap file is accessible
|
|
(this may be useful for support of screen-oriented programs that
|
|
must run in single-user mode).
|
|
* The [85]tic/[86]captoinfo utility provided with ncurses has the
|
|
ability to translate many termcaps from the XENIX, IBM and AT&T
|
|
extension sets.
|
|
* A BSD-like [87]tset utility is provided.
|
|
* The ncurses library and utilities will automatically read terminfo
|
|
entries from $HOME/.terminfo if it exists, and compile to that
|
|
directory if it exists and the user has no write access to the
|
|
system directory. This feature makes it easier for users to have
|
|
personal terminfo entries without giving up access to the system
|
|
terminfo directory.
|
|
* You may specify a path of directories to search for compiled
|
|
descriptions with the environment variable TERMINFO_DIRS (this
|
|
generalizes the feature provided by TERMINFO under stock System
|
|
V.)
|
|
* In terminfo source files, use capabilities may refer not just to
|
|
other entries in the same source file (as in System V) but also to
|
|
compiled entries in either the system terminfo directory or the
|
|
user's $HOME/.terminfo directory.
|
|
* The table-of-entries utility [88]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.
|
|
* Extensive documentation is provided (see the [89]Additional
|
|
Reading section of the [90]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
|
|
[91]ncurses-examples
|
|
|
|
The ncurses library has been tested with a wide variety of
|
|
applications including:
|
|
|
|
cdk
|
|
Curses Development Kit
|
|
|
|
[92]http://invisible-island.net/cdk/
|
|
|
|
ded
|
|
directory-editor
|
|
|
|
[93]http://invisible-island.net/ded/
|
|
|
|
dialog
|
|
the underlying application used in Slackware's setup, and the
|
|
basis for similar install/configure applications on many
|
|
systems.
|
|
|
|
[94]http://invisible-island.net/dialog/
|
|
|
|
lynx
|
|
the text WWW browser
|
|
|
|
[95]http://lynx.isc.org/
|
|
|
|
Midnight Commander
|
|
file manager
|
|
|
|
[96]http://www.midnight-commander.org/
|
|
|
|
mutt
|
|
mail utility
|
|
|
|
[97]http://www.mutt.org/
|
|
|
|
ncftp
|
|
file-transfer utility
|
|
|
|
[98]http://www.ncftp.com/
|
|
|
|
nvi
|
|
New vi uses ncurses.
|
|
|
|
[99]https://sites.google.com/a/bostic.com/keithbostic/nvi
|
|
|
|
tin
|
|
newsreader, supporting color, MIME
|
|
|
|
[100]http://www.tin.org/
|
|
|
|
as well as some that use ncurses for the terminfo support alone:
|
|
|
|
minicom
|
|
terminal emulator for serial modem connections
|
|
|
|
[101]http://alioth.debian.org/projects/minicom/
|
|
|
|
mosh
|
|
a replacement for ssh.
|
|
|
|
[102]https://mosh.mit.edu/
|
|
|
|
tack
|
|
terminfo action checker
|
|
|
|
[103]http://invisible-island.net/ncurses/tack.html
|
|
|
|
tmux
|
|
terminal multiplexor
|
|
|
|
[104]http://tmux.github.io/
|
|
|
|
vile
|
|
vi-like-emacs may be built to use the terminfo, termcap or
|
|
curses interfaces.
|
|
|
|
[105]http://invisible-island.net/vile/
|
|
|
|
and finally, those which use only the termcap interface:
|
|
|
|
emacs
|
|
text editor
|
|
|
|
[106]http://www.gnu.org/software/emacs/
|
|
|
|
screen
|
|
terminal multiplexor
|
|
|
|
[107]http://www.gnu.org/software/screen/
|
|
|
|
vim
|
|
text editor
|
|
|
|
[108]http://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 [109]Thomas Dickey. Thomas Dickey also
|
|
acts as the maintainer for the Free Software Foundation, which holds
|
|
the [110]copyright on ncurses.
|
|
|
|
Contact the current maintainers at
|
|
|
|
[111]bug-ncurses@gnu.org
|
|
|
|
To join the ncurses mailing list, please write email to
|
|
|
|
[112]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
|
|
|
|
[113]ftp://invisible-island.net/ncurses/ .
|
|
|
|
There is an archive of the mailing list here:
|
|
|
|
[114]http://lists.gnu.org/archive/html/bug-ncurses (also
|
|
[115]https)
|
|
|
|
Related resources
|
|
|
|
The release notes make scattered references to these pages, which may
|
|
be interesting by themselves:
|
|
* [116]man2html
|
|
* [117]ncurses licensing
|
|
* [118]Symbol versioning in ncurses
|
|
* [119]The MinGW port of ncurses
|
|
* [120]tack - terminfo action checker
|
|
* [121]tar versus portability
|
|
* [122]tctest - termcap library checker
|
|
* [123]Terminal Database
|
|
|
|
Other resources
|
|
|
|
The distribution provides a newer version of the terminfo-format
|
|
terminal description file once maintained by [124]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.
|
|
|
|
You can find lots of information on terminal-related topics not
|
|
covered in the terminfo file at [125]Richard Shuford's archive .
|
|
|
|
* [126]Overview
|
|
* [127]Release Notes
|
|
+ [128]Library improvements
|
|
o [129]Output buffering
|
|
o [130]Symbol versioning
|
|
o [131]Miscellaneous
|
|
+ [132]Program improvements
|
|
o [133]Utilities
|
|
o [134]Examples
|
|
+ [135]Terminal database
|
|
+ [136]Documentation
|
|
+ [137]Interesting bug-fixes
|
|
+ [138]Configuration changes
|
|
o [139]Major changes
|
|
o [140]Configuration options
|
|
+ [141]Portability
|
|
o [142]MinGW
|
|
o [143]Other ports
|
|
* [144]Features of ncurses
|
|
* [145]Applications using ncurses
|
|
* [146]Development activities
|
|
* [147]Related resources
|
|
* [148]Other resources
|
|
|
|
References
|
|
|
|
1. http://invisible-island.net/ncurses/man/captoinfo.1m.html
|
|
2. http://invisible-island.net/ncurses/man/clear.1.html
|
|
3. http://invisible-island.net/ncurses/man/infocmp.1m.html
|
|
4. http://invisible-island.net/ncurses/man/tabs.1.html
|
|
5. http://invisible-island.net/ncurses/man/tic.1m.html
|
|
6. http://invisible-island.net/ncurses/man/toe.1m.html
|
|
7. http://invisible-island.net/ncurses/man/tput.1.html
|
|
8. http://invisible-island.net/ncurses/man/tset.1.html
|
|
9. ftp://ftp.gnu.org/gnu/ncurses/
|
|
10. ftp://invisible-island.net/ncurses/
|
|
11. http://invisible-island.net/ncurses/tctest.html
|
|
12. http://invisible-island.net/ncurses/ncurses-examples.html
|
|
13. http://lists.gnu.org/archive/html/bug-ncurses/2012-07/msg00029.html
|
|
14. http://invisible-island.net/ncurses/NEWS.html#t20050101
|
|
15. http://invisible-island.net/ncurses/announce-5.5.html
|
|
16. http://invisible-island.net/ncurses/ncurses-mapsyms.html
|
|
17. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-initscr
|
|
18. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-newterm
|
|
19. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Initialization
|
|
20. http://invisible-island.net/ncurses/man/ncurses.3x.html#h3-NCURSES_NO_SETBUF
|
|
21. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html
|
|
22. http://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-reset_prog_mode_-reset_shell_mode
|
|
23. http://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-reset_prog_mode_-reset_shell_mode
|
|
24. http://invisible-island.net/ncurses/man/curs_printw.3x.html
|
|
25. http://invisible-island.net/ncurses/ncurses-mapsyms.html
|
|
26. http://invisible-island.net/ncurses/tack.html
|
|
27. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_tioctl
|
|
28. http://invisible-island.net/ncurses/man/curs_opaque.3x.html
|
|
29. http://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY
|
|
30. http://invisible-island.net/ncurses/man/form_field_opts.3x.html
|
|
31. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-putwin_getwin
|
|
32. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-putwin_getwin
|
|
33. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Formatting-Output
|
|
34. http://invisible-island.net/ncurses/tctest.html
|
|
35. http://invisible-island.net/ncurses/tctest.html#my-better-translation
|
|
36. http://invisible-island.net/ncurses/NEWS.html#t980103
|
|
37. https://svnweb.freebsd.org/base/head/lib/libc/gen/getcap.c?revision=244092&view=markup#l784
|
|
38. http://invisible-island.net/ncurses/ncurses-examples.html
|
|
39. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env
|
|
40. http://invisible-island.net/ncurses/man/curs_window.3x.html#h3-derwin
|
|
41. http://invisible-island.net/ncurses/man/curs_window.3x.html#h3-mvwin
|
|
42. http://invisible-island.net/ncurses/man/form_driver.3x.html#h3-form_driver_w
|
|
43. http://invisible-island.net/ncurses/terminfo.src.html#toc-_M_L_T_E_R_M
|
|
44. http://invisible-island.net/ncurses/terminfo.src.html#tic-nsterm
|
|
45. http://invisible-island.net/ncurses/terminfo.src.html#tic-putty-sco
|
|
46. http://invisible-island.net/ncurses/terminfo.src.html#tic-teken
|
|
47. http://invisible-island.net/ncurses/terminfo.src.html#toc-_T_E_R_M_I_N_A_T_O_R
|
|
48. http://invisible-island.net/ncurses/terminfo.src.html#toc-_T_E_R_M_I_N_O_L_O_G_Y
|
|
49. http://invisible-island.net/ncurses/terminfo.src.html#tic-tmux
|
|
50. http://invisible-island.net/ncurses/terminfo.src.html#toc-_S_I_M_P_L_E_T_E_R_M
|
|
51. http://invisible-island.net/ncurses/terminfo.src.html#tic-vte
|
|
52. http://invisible-island.net/ncurses/terminfo.src.html#tic-vt520ansi
|
|
53. http://aerie.jexium-island.net/ncurses/man/clear.1.html
|
|
54. http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_sl
|
|
55. http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-1005
|
|
56. http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-1006
|
|
57. http://invisible-island.net/ncurses/NEWS.html
|
|
58. http://invisible-island.net/scripts/man2html.html
|
|
59. http://invisible-island.net/ncurses/NCURSES-Programming-HOWTO.html
|
|
60. http://invisible-island.net/ncurses/NEWS.html#t20110319
|
|
61. http://invisible-island.net/ncurses/NEWS.html#t20021221
|
|
62. http://invisible-island.net/ncurses/man/curs_color.3x.html#h3-Routine-Descriptions
|
|
63. http://invisible-island.net/ncurses/man/default_colors.3x.html
|
|
64. http://invisible-island.net/ncurses/man/curs_color.3x.html#h3-Routine-Descriptions
|
|
65. http://invisible-island.net/ncurses/man/resizeterm.3x.html
|
|
66. http://invisible-island.net/ncurses/NEWS.html#t980725
|
|
67. http://invisible-island.net/ncurses/NEWS.html#t960418
|
|
68. http://invisible-island.net/ncurses/NEWS.html#t970405
|
|
69. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-set_term
|
|
70. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-delscreen
|
|
71. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Formatting-Output
|
|
72. http://docs.oracle.com/cd/E19253-01/html/817-0552/fhkpy.html
|
|
73. http://invisible-island.net/ncurses/announce-5.9.html
|
|
74. http://invisible-island.net/ncurses/announce-5.8.html
|
|
75. http://invisible-island.net/ncurses/ncurses-examples.html
|
|
76. http://invisible-island.net/ncurses/man/curs_beep.3x.html
|
|
77. http://invisible-island.net/ncurses/man/curs_beep.3x.html
|
|
78. http://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-curs_set
|
|
79. http://invisible-island.net/ncurses/man/ncurses.3x.html#h3-NCURSES_CONSOLE2
|
|
80. http://stackoverflow.com/questions/20877689/gcc-4-8-1-minggw-d-option-does-not-work-as-usual
|
|
81. http://linux.die.net/man/1/pkg-config
|
|
82. http://invisible-island.net/ncurses/NEWS.html#t20021206
|
|
83. https://gcc.gnu.org/gcc-5/
|
|
84. http://invisible-island.net/autoconf/portability-test.html
|
|
85. http://invisible-island.net/ncurses/man/tic.1m.html
|
|
86. http://invisible-island.net/ncurses/man/captoinfo.1m.html
|
|
87. http://invisible-island.net/ncurses/man/tset.1.html
|
|
88. http://invisible-island.net/ncurses/man/toe.1m.html
|
|
89. http://invisible-island.net/ncurses/ncurses.faq.html#additional_reading
|
|
90. http://invisible-island.net/ncurses/ncurses.faq.html
|
|
91. http://invisible-island.net/ncurses/ncurses-examples.html
|
|
92. http://invisible-island.net/cdk/
|
|
93. http://invisible-island.net/ded/
|
|
94. http://invisible-island.net/dialog/
|
|
95. http://lynx.isc.org/
|
|
96. http://www.midnight-commander.org/
|
|
97. http://www.mutt.org/
|
|
98. http://www.ncftp.com/
|
|
99. https://sites.google.com/a/bostic.com/keithbostic/nvi
|
|
100. http://www.tin.org/
|
|
101. http://alioth.debian.org/projects/minicom/
|
|
102. https://mosh.mit.edu/
|
|
103. http://invisible-island.net/ncurses/tack.html
|
|
104. http://tmux.github.io/
|
|
105. http://invisible-island.net/vile/
|
|
106. http://www.gnu.org/software/emacs/
|
|
107. http://www.gnu.org/software/screen/
|
|
108. http://www.vim.org/
|
|
109. mailto:dickey@invisible-island.net
|
|
110. http://invisible-island.net/ncurses/ncurses-license.html
|
|
111. mailto:bug-ncurses@gnu.org
|
|
112. mailto:bug-ncurses-request@gnu.org
|
|
113. ftp://invisible-island.net/ncurses/
|
|
114. http://lists.gnu.org/archive/html/bug-ncurses
|
|
115. https://lists.gnu.org/archive/html/bug-ncurses
|
|
116. http://invisible-island.net/scripts/man2html.html
|
|
117. http://invisible-island.nethttp://invisible-island.net/ncurses/ncurses-license.html
|
|
118. http://invisible-island.net/ncurses/ncurses-mapsyms.html
|
|
119. http://invisible-island.net/ncurses/ncurses-mingw.html
|
|
120. http://invisible-island.net/ncurses/tack.html
|
|
121. http://invisible-island.net/autoconf/portability-tar.html
|
|
122. http://invisible-island.net/ncurses/tctest.html
|
|
123. http://invisible-island.net/ncurses/ncurses.html#download_database
|
|
124. http://www.catb.org/~esr/terminfo/
|
|
125. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal
|
|
126. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-overview
|
|
127. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-release-notes
|
|
128. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-library
|
|
129. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-lib-setbuf
|
|
130. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-lib-versioning
|
|
131. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-lib-other
|
|
132. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-programs
|
|
133. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-utilities
|
|
134. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-examples
|
|
135. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-database
|
|
136. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-documentation
|
|
137. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-bug-fixes
|
|
138. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-config-config
|
|
139. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-config-major
|
|
140. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-config-options
|
|
141. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-portability
|
|
142. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-port-mingw
|
|
143. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-port-systems
|
|
144. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-features
|
|
145. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-who-uses
|
|
146. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-development
|
|
147. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-this-stuff
|
|
148. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-other-stuff
|