X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=announce.html.in;h=9651b06fd4f35cd1eb14dcf835c79ecd892e709c;hb=ac1479a2aceab5094e64da97ae11dde43c942d7a;hp=da9298a298deb6b14bedb468b8cb23c3d706b3da;hpb=f86cbeb5f9bd96ab041d34039c35749a14965039;p=ncurses.git diff --git a/announce.html.in b/announce.html.in index da9298a2..9651b06f 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,8 +1,7 @@ - +
+ "HTML Tidy for HTML5 for Linux version 5.2.0">The ncurses (new curses) library is a free software emulation of curses in System V - Release 4.0, and more. It uses terminfo format, supports pads and - color and multiple highlights and forms characters and - function-key mapping, and has all the other SYSV-curses - enhancements over BSD curses. + Release 4.0 (SVr4), and more. It uses terminfo format, supports + pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SVr4-curses + enhancements over BSD curses. SVr4 curses became the basis of + X/Open Curses.
In mid-June 1995, the maintainer of 4.4BSD curses declared that he considered 4.4BSD curses obsolete, and encouraged the - keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to - switch over to ncurses.
+ keepers of unix releases such as + BSD/OS, FreeBSD and NetBSD to switch over to ncurses. -The ncurses code was developed under GNU/Linux. It has been in - use for some time with OpenBSD as the system curses library, and - on FreeBSD and NetBSD as an external package. It should port - easily to any ANSI/POSIX-conforming UNIX. It has even been ported - to OS/2 Warp!
+Since 1995, ncurses has been + ported to many systems:
-The distribution includes the library and support utilities, - including a terminfo compiler tic(1), a decompiler infocmp(1), - clear(1), tput(1), tset(1), and a termcap conversion tool - captoinfo(1). Full manual pages are provided for the library and - tools.
+The ncurses distribution is available via anonymous FTP at the
- GNU distribution site ftp://ftp.gnu.org/gnu/ncurses/ .
+
The distribution includes the library and support utilities, + including
_XOPEN_CURSES
definition in
- curses.h
._nc_has_mouse
to
- has_mouse
, reflect its use in C++ and Ada95.is_pad
and is_subwin
- functions for opaque access to the WINDOW structure.tiparm
, based on review of X/Open Curses
- Issue 7.Full manual pages are provided for the library and tools.
+ +The ncurses distribution is + available at ncurses' homepage:
+ +++ +ftp://ftp.invisible-island.net/ncurses/ + or
+
+ https://invisible-mirror.net/archives/ncurses/ .
It is also available via anonymous FTP at the GNU distribution + site
-+ ++ +
These notes are for ncurses + @VERSION@, released February 12, 2020.
+ +This release is designed to be source-compatible with + ncurses 5.0 through 6.1; 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.
+ +There are, of course, numerous other improvements, listed in + this announcement.
+ +The most important + bug-fixes/improvements dealt with user-defined capabilities + in terminal descriptions. The release notes also mention some + other bug-fixes, but are focused on new features and improvements + to existing features since ncurses + 6.1 release.
+ +There are several new features:
O_EDGE_INSERT_STAY + tells the form library to optionally delay cursor movement on + a field edge/boundary
+SCREEN
pointer for several curses functions which
- use the global SP
.O_INPUT_FIELD + extension to form library allows a dynamic field to shrink if + the new limit is smaller than the current field size.
+NCURSES_NO_UTF8_ACS
feature by
- adding a check for an extended terminfo capability
- U8
.added exit_curses and + exit_terminfo to + replace internal symbols for leak-checking.
+tigetstr
, etc., by
- using hashing code from tic.added curses_trace, + to replace trace().
+Additionally, to improve performance other changes (and + extensions) are provided in this release:
-mouse decoding now handles shift/control/alt logic when + decoding xterm's 1006 mode
+ncurses now defines a limit for wgetnstr, wgetn_wstr when + length is negative or “too large”.
+there is now no buffer-size limit when reading the + $TERMCAP + variable.
+the $TERMCAP + variable may be interpreted as a fallback to a terminfo + entry
++ mvcur now decides whether to use hard-tabs, using + xt, tbc + and hts as clues.
+extended colors are improved by modifying an internal call + to + vid_puts to pass extended color pairs e.g., from + tty_update.c and lib_mvcur.c
+the initialization functions now avoid + relying upon persistent data for the result from getenv
+scrolling is improved:
+ +improved loop limits in _nc_scroll_window + handle a case where the scrolled data is a pad which is + taller than the window.
+These are revised features:
tabs
program.used “const” in some prototypes + rather than NCURSES_CONST where X/Open Curses was + updated to do this, e.g., wscanw, newterm, + the terminfo interface. Also use “const” + for consistency in the termcap interface, which was withdrawn + by X/Open Curses in Issue 5 (2007). As of Issue 7, X/Open + Curses still lacks “const” for certain + return values, e.g., keyname.
+modified wbkgd + and wbkgrnd + to improve compatibility with SVr4 curses, changing the way + the window rendition is updated when the background character + is modified
+improved terminfo write/read by modifying the fourth item + of the extended header to denote the number of valid strings + in the extended string table (see term(5)).
+_nc_infotocap
(used by tic
- and infocmp) to recognize the
- setaf
/setab
strings from
- xterm+256color
and xterm+88color,
and
- provide a reduced version which works with termcap.modified the initialization checks for mouse so that the + xterm+sm+1006 + block will work with terminal descriptions not mentioning + xterm.
+These were done to limit or ultimately deprecate features:
deprecated safe-sprintf, since the + vsnprintf function, which does what was needed, was + standardized long ago.
+bterm
terminfo entry, based on bogl
- 0.1.18marked vwprintw + and vwscanw as deprecated; recommend using vw_printw + and vw_scanw, respectively.
+added deprecation warnings for internal functions called + by older versions of tack.
+cons25-debian
entryremoved unused _nc_import_termtype2 function.
+eterm-color
entryThese are improvements to existing features:
-linux-16color
check parameter of set_escdelay, + return ERR if negative.
+mlterm+256color
entry, for mlterm
- 3.0.0check parameter of set_tabsize, return + ERR if not greater than zero
+correct a status-check in _nc_read_tic_entry() so that if + reading a hex/b64 $TERMINFO, + and the $TERM + does not match, fall-through to the compiled-in search + list.
+screen.Eterm
terminfo entryamend check for + repeat_char to handle a case where setlocale() was + called after initscr
+vwmterm
entrymove macro for is_linetouched + inside NCURSES_NOMACROS + ifndef.
+xterm-utf8
entry as a demo of the
- U8
featureuse _nc_copy_termtype2 rather than direct + assignment in setupterm, + in case it is called repeatedly using fallback terminfo + descriptions
+improve workaround for Solaris wcwidth versus line-drawing + characters
+add checks in repair_subwindows + to keep the current position and scroll-margins inside the + resized subwindow.
+correct a buffer-limit in write_entry.c for + systems that use caseless filenames.
improved build-time utility report_offsets:
U8
feature to denote entries for
- terminal emulators which do not support VT100 SI/SO
- when processing UTF-8 encodingXT
capability to entries for
- terminals that support both xterm-style mouse- and
- title-controls, for screen
which
- special-cases TERM beginning with xterm
or
- rxvt
add categories, e.g., "w" for wide-character, "t" for + threads to make the report more readable. Reorganized the + structures reported to make the categories more + apparent.
add NCURSES_GLOBALS and + NCURSES_PRESCREEN to report to show how similar + the different libtinfo configurations are.
+modified some header files to ensure that those include + necessary files except for the previously-documented + cases
+added some traces in initialization to show whether a + fallback entry is used.
+made minor optimization to reduce calls to + _nc_reserve_pairs
+nsterm,
xnuppc
and
- tek4115
to make
- sgr
/sgr0
consistentThese are corrections to existing features:
-fix a special case in PutAttrChar where a cell is + marked as alternate-character set, but the terminal does not + actually support the given graphic character. This would + happen in an older terminal such as vt52, which + lacks most line-drawing capability.
+ansi.sys
pfkey
- capability from kf1-kf10 to kf1-kf48, moving function key
- definitions from emx-base
for
- consistency.corrected flag for "seq" method of db 1.8.5 interface, + needed by toe on some of the BSDs.
+pfkey
- capability of ansi.sys-old
.modify comparison in make_hash.c to correct a special case + in collision handling for Caps-hpux11
+atari
and st52
- terminfo entries to atari-old, st52-old, use newer entries
- from FreeMiNT.add extended_slk_color{,_sp} symbols to the appropriate + package/*.{map,sym} files
+gnome
terminfo entries as
- vte
, retaining gnome
variants for
- compatibility, but generally deprecating those since the
- VTE library is what actually defines the behavior of
- "gnome", etc., since 2003.modify lib_setup to avoid calling pthread_self() without + first verifying that the address is valid, i.e., for weak + symbols
+interix
smso
terminfo
- capability by using reverse rather than bold.add a couple of broken-linker symbols to the list of + versioned symbols to help with link-time optimization versus + weak symbols.
+initc
capability of
- linux-c-nc
end-of-range, make similar change
- for dg+ccc
and dgunix+ccc
.minix
terminfo entry.Several improvements were made to the utility programs:
-nsterm*
entries.kcan
assignment to
- ^C
from putty
.ncv
in screen
and
- konsole-base
entries, allowing underline.sun-color
terminfo entry to match Sun's entry
- for this.rmso
for tek4106
- entry.acsc
string for vt52
,
- show arrow keys.rs2
to
- wsvt25
to help ensure that reset ends the
- alternate character set.ccc
and initc
- capabilities to xterm-16color
.Several changes were made to the generated ncurses*config + scripts and the analogous “.pc” files to + reduce differences between the configurations they report:
+ +modified the ncurse*-config and pc-files to more closely + match for the -I and -l options.
+filtered out linker-specs from the --libs + report.
+amended the ncurses*-config and pc-files to take into + account the rpath hack which differed between those + files.
+modified generated ncurses*config and ncurses.pc, + ncursesw.pc, etc., to list helper libraries such as gpm for + static linking.
Along with the library and utilities, improvements were made + to the ncurses-examples. Most of + this activity aimed at improving the test-packages. A few changes + are more generally useful, e.g., for the main ncurses + test-program, and for analyzing traces using the + tracemunch script:
improve recovery from error when reading command-character + in test/ncurses.c, showing the relevant error + message and not exiting on EINTR.
+getcchar
to
- count the trailing null which is documented in
- X/Open.insch
.unctrl
to obtain a printable version of
- the control character, but was not passing color or
- video attributes.waddch_literal
, updating
- line-pointer after a multicolumn character is found to
- not fit on the current row, and wrapping is done. Since
- the line-pointer was not updated, the wrapped
- multicolumn character was written to the beginning of
- the current row.wins_nwstr
and related
- functions to ensure that special characters, i.e.,
- control characters are handled properly with the
- wide-character configuration._nc_insert_ch
to use
- _nc_insert_wch
when inserting wide
- characters, since the wins_wch
function
- that it used did not update the cursor position.improve tracemunch, by keeping track of + TERMINAL* values, and if tracing was first turned on + after initialization, attempt to show distinct screen, window + and terminal names anyway.
+modify tracemunch to accept filename parameters + in addition to use as a pipe/filter.
+update tracemunch to work with perl + 5.26.2, which changed the rules for escaping regular + expressions.
+Gpm_Open
returns a -2,
- e.g., for "xterm". This is normally suppressed but can
- be overridden using $NCURSES_GPM_TERMS
.
- Ensure that Gpm_Close
is called in this
- case.add some checks in tracemunch for undefined + variables.
+modify TurnOn/TurnOff macros (in + lib_vidattr.c and lib_vid_attr.c) to avoid expansion of + “CUR” in trace.
+getmouse
to act as its
- documentation implied, returning on each call the
- preceding event until none are left. When no more
- events remain, it will return ERR
.There are other new demo/test programs and reusable + examples:
-$CC
environment variable
- which is defined by X/Open as a curses feature, to
- ignore it if it is not a single character.cur_term
when
- broken-linker is used, but enable-reentrant is not, to
- match pre-5.7.derwin
.mvderwin
which
- prevented moving a derived window whose origin happened
- to coincide with its parent's origin.newwin
, to
- ensure that windows have nonzero size.set_curterm
to make
- broken-linker configuration work with changes from
- 20090228.wgetch
to ensure it checks
- SIGWINCH
when it gets an error in
- non-blocking mode.wredrawln
,
- accounting for begy
/begx
- values._nc_format_slks
in lib_slk.c, from
- 20070704 changes._nc_infotocap
, used to transform terminfo
- to termcap strings.A variety of improvements were made to existing programs, both + new features as well as options added to make the set of programs + more consistent.
-_nc_wgetch
to check for a -1 in
- the fifo, e.g., after a SIGWINCH
, and
- discard that value, to avoid confusing
- application.add “-l” option to test/background, + to dump screen contents in a form that lets different curses + implementations be compared.
add “@” command to test/ncurses + F-test, to allow rapid jump to different character pages.
+field_buffer
, which stopped at the end of the
- first row due to filling of unused entries in a cchar_t
- array with nulls.set_field_buffer
, broken in
- 20081018 changes.set_field_buffer
added enum, regex examples to test/demo_forms
+amend Scaled256() macro in test/picsmap.c to cover the + full range 0..1000
+corrected pathname used in Ada95 sample programs for + explain.txt, to work with test-packages, and used an + awk script to split the resulting pathname when it would be + too long for a single line.
+ignore interrupted system-call in test/ncurses's + command-line, e.g., if the terminal were resized.
+improved ifdef's for TABSIZE variable, to help + with AIX/HPUX ports.
There are several new terminal descriptions:
+ +++ +alacritty, domterm, kitty, + mintty, mintty-direct, ms-terminal, + n7900, nsterm-build309, + nsterm-direct, screen5, ti703, + ti707, ti703-w, ti707-w + vscode, vscode-direct, xterm-mono, + xterm.js
+
There are many changes to existing terminal descriptions. Some + were updates to several descriptions:
while others affected specific descriptions. These were + retested, to take into account changes by their developers:
+ +++ +terminator, st
+
while these are specific fixes based on reviewing + documentation, user reports, or warnings from tic:
+ +pkg-config
's library
- directory.EINTR
to
- interrupt a read operation in wgetch
. This
- applies only to the pthread configurationSCREEN
pointer, reducing the need
- for juggling the global SP
value with
- set_term
and delscreen
._nc_
".pkg-config
, optionally
- specifying its path.--with-database
,
- which was coded as an enable-type switch.lib_gen.o
when
- --disable-ext-funcs
is used.adacurses-config
to look for
- ".ali" files in the adalib directory.libAdaCurses.a
used in
- adacurses-config
.adacurses-config
to
- provide additional flavors such as
- adacursesw-config
, for ncursesw.A few entries use extensions (user-defined terminal + capabilities):
-ncurses*-config
and pc-files to add
- dependency for tinfo library.ncurses*-config
scripts if
- available for test/configure.ncurses*-config
, e.g., if it is renamed to
- provide a single file for ncurses/ncursesw
- libraries.help2man
.--srcdir
.As usual, this release
-improves documentation by describing new features,
+$includedir
symbol in
- misc/ncurses-config.in
, add
- --includedir
option.attempts to improve the description of features which + users have found confusing
+fills in overlooked descriptions of features which were + described in the NEWS file + but treated sketchily in manual pages.
+pkg-config
library
- directory if needed.In addition to providing background information to explain + these features and show how they evolved, there are corrections, + clarifications, etc.:
-==
" where "=
"
- is needed in ncurses-config.in
and
- gen-pkgconfig.in
files.Corrections:
-gen-pkgconfig.in
to eliminate a
- dependency on rpath when deciding whether to add
- $LIBS
to --libs
output; that
- should be shown for the ncurses and tinfo libraries
- without taking rpath into account.$PKG_CONFIG_LIBDIR
- to use only the first item in a possibly
- colon-separated list.make-tar.sh
scripts to Ada95 and
- test subdirectories to help with making those
- separately distributable.Clarify in manual pages that vwprintw
+ and vwscanw
+ are obsolete.
+ They have not been part of X/Open Curses since 2007.
Ada95/configure
script, to use in
- tar-file created by
- Ada95/make-tar.sh
.New/improved history and portability sections:
-tar-copy.sh
and related
- configure/Makefile
chunks, since the Ada95
- binding is now installed using rules in
- Ada95/src
.Improvements for user_caps.5:
make_hash
and
- make_keys
, improving cross-compilation of
- ncursesw.make_hash
- and make_keys
, to reduce the need for setting
- BUILD_CPPFLAGS in cross-compiling when the build- and
- target-machines differ.CF_MKSTEMP
macro, by adding a check cache
- variable set by AC_CHECK_FUNC
.Other improvements:
wadd_wch
and
- wecho_wchar
to eliminate dependency on
- unctrl
.There are no new manual pages (all of the manual page updates + are to existing pages).
+ +Some of the improvements are more subtle, relating to the way + the information is presented. For instance, the generated + terminfo.5 file uses a different table layout, allowing it to use + space on wide terminals more effectively.
+ +While there were many bugs fixed during development of ncurses + 6.2, only a few (the reason for this release) were both important + and interesting. Most of the bug-fixes were for local issues + which did not affect compatibility across releases. Since those + are detailed in the NEWS file no elaboration is needed here.
+ +The interesting bugs were in tic/infocmp's handling of + user-defined capabilities. These were not recent bugs. Initially + it was a simple problem:
+ +One of simpleterm's contributors copied some definitions + for using tmux's user-defined capabilities in + + late in 2016.
+ ++++diff --git a/st.info b/st.info +@@ -185,7 +185,10 @@ st| simpleterm, + tsl=\E]0;, + xenl, + vpa=\E[%i%p1%dd, +- ++# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1) ++ Se, ++ Ss, ++ Tc, + + st-256color| simpleterm with 256 colors, + use=st, ++
Later, in (referring to a version from + mid-2017), a user asked to have it updated in + ncurses.
+However, it had an error from the change in late 2016. The + terminal description made what tmux expected to be + string actually a + boolean.
+ +Over the years, there were problems with each of + simpleterm's terminal descriptions. I repaired those, and + usually dealt with the problem.
+The difference in this case was that when compiling the + terminal database, tic may have in memory the + definitions for more than one terminal description (so that + it can resolve “use=” clauses). Seeing + two different types for the same name, in certain situations + it would incorrectly merge the symbol tables for the two + terminal descriptions.
+On simpleterm's side, their bug was finally fixed in + + late 2019, three years after the bug was created.
+For ncurses, the elapsed time to fix this bug was less than + three years. Someone reported a problem with the terminal + description a few weeks after releasing ncurses 6.1 (in tmux #1264), and + the terminal description was updated that week (ncurses patch + 20180224):
+ +++ ++20180224 + + modify _nc_resolve_uses2() to detect incompatible types when merging + a "use=" clause of extended capabilities. The problem was seen in a + defective terminfo integrated from simpleterm sources in 20171111, + compounded by repair in 20180121. + + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD ++
The larger part of that change added a check to prevent a + simple merge of terminal descriptions where the same user-defined + name was used with different types. But it raised some + questions:
+ +Was there a reliable way to manage terminal descriptions + which used the same extended name in different ways?
+Should ncurses provide a registry of well-known extended + names, with their types?
+Since the correction to terminfo.src + could have been readily adopted by packagers, there was nothing + more to be done from ncurses' standpoint on that part. But + improving ncurses to prevent issues like that is the reason for + making a release.
+ +Nothing more (constructive) was mentioned with regard to + simpleterm. But a few problems were found in the handling of + user-defined capabilities:
+ +Forward-references to user-defined capabilities in a + “use=” clause did not allocate new data + for each use. In tic, successive compilation of + terminal entries could add user-defined capabilities to the + wrong terminal entry.
+ +This was not noticed before, since xterm's terminal + descriptions were the main users of the feature, and almost + all of the uses of the building-blocks which contained + user-defined capabilities were backward-references.
+There is one (documented) case where ncurses 6.1 supports + a user-defined capability that could be any type (i.e., + “RGB”). The check added in February 2018 to guard + against mismatches did not handle all of the combinations + needed.
+Both of these issues dated from the original implementation of + user-defined capabilities. Fixing them does not change the + terminal database, but a older tic without the fixes + will not be able to handle terminfo sources which rely upon those + fixes. Starting in June 2019, the download link for the terminfo + source file was capped at that date. The development sources have + an up-to-date copy of the file, for people with a legitimate need + for it.
+ +The “-c” (check) option of tic + is not very useful if it cannot offer advice on parameters needed + for user-defined capabilities. The various Caps files + were reorganized to reduce redundancy, and in the common portion + (Caps-ncurses), + a registry of user-defined capabilities is provided for use by + tic. While users can still define their own custom + capabilities, tic will not offer any advice when their + parameters do not match.
+ +In ncurses 6.2, tic makes a special check to allow + any type for RGB, but its being able to do this relies + upon fixes made in the ncurses library in mid-2019.
+ +There are no major changes. Several new options were added to + ease integration of packages with systems using different + versions of GNAT and ncurses. Also, + improvements were made to configure checks.
+ +There are a few new/modified configure options:
+ +helps work around a filename conflict with Debian packages + versus test-packages.
+allows one to rename the “AdaCurses” library + (at least one packager prefers a lowercase name).
+now ensures there is a value, and adds the fallback + information to top-level Makefile summary.
+check for pcre-posix library to help with MinGW port.
+help work around problems building fallback source using + pre-6.0 tic/infocmp.
+option value can now be a relative pathname.
+Many of the portability changes are implemented via the + configure script:
+ +ignore $TERMINFO + as a default value in configure script if it came from the + infocmp -Q option.
+distinguish gcc from icc and clang when the + --enable-warnings option is not used, to avoid + unnecessary warnings about unrecognized inline options
+consistently prepend new libraries as they are found + during configuration, rather than relying upon the linker to + resolve order dependencies of libraries.
+modified configure scripts to reduce relinking/ranlib + during library install :
add configure check for getenv to work around + implementation shown in Emscripten which overwrites the + previous return value on each call.
-Ada95/src
.Use that to optionally suppress START_TRACE + macro, whose call to getenv may not work + properly
+ + +change target configure level for _XOPEN_SOURCE + to 600 to address use of vsscanf and + setenv.
+reduce use of _GNU_SOURCE for current glibc where + _DEFAULT_SOURCE combines with + _XOPEN_SOURCE
-Allow for Cygwin's newlib when checking for the + _DEFAULT_SOURCE symbol.
-MidnightBSD is now checked for the + _XOPEN_SOURCE-related definitions.
+ -If the check for va_copy or __va_copy + fails,
-several changes to support a port to Ultrix 3.1:
CCHARW_MAX
value configurable, noting
- that changing this would change the size of
- cchar_t
, and would be ABI-incompatible.mkdirs.sh
, use
- "mkdir -p
".misc/ncu-indent
and
- misc/jpf-indent
; they are provided by an
- external package cindent.$ARFLAGS
rather
- than $AR_OPTS
, provide a configure check to
- detect whether a "-" is needed before "ar" options.CF_DISABLE_LEAKS
configure macro so
- that the --enable-leaks option is not the same as
- --disable-leaks.CF_HEADER_PATH
and
- CF_LIBRARY_PATH
by adding CFLAGS
,
- CPPFLAGS
and LDFLAGS
,
- LIBS
values to the search-lists.CF_GCC_VERSION
- and CF_GCC_WARNINGS
to work with gcc 4.x's c89
- alias, which gives warning messages for cases where older
- versions would produce an error.CF_WITH_LIBTOOL
configure check to
- allow unreleased libtool version numbers (e.g. which
- include alphabetic chars, as well as digits, after the
- final '.').-f
" option if it is supported, to eliminate
- temporary removal of the targetCC_SHARED_OPTS
for Solaris.MK_SHARED_LIB
when
- -Bsharable is used, for *BSD's, without which "main" might
- be one of the shared library's dependencies.misc/run_tic.in
to create parent
- directory, in case this is a new install of hashed
- database.The test/configure script (used for ncurses-examples) + is improved:
Here are some of the other portability fixes:
-added dummy "check" rule in top-level and test-Makefile to + simplify building test-packages for ArchLinux.
+dropped library-dependency on psapi for MinGW port, since + win_driver.c defines PSAPI_VERSION to 2, making it + use GetProcessImageFileName from kernel32.dll
+made build-fixes for configuration using --program-suffix + with Ada95, noticed with MacOS but applicable to other + platforms without libpanelw, etc.
+modified ncurses/Makefile.in to fix a case where + Debian/testing changes to the ld --as-needed configuration + broke ncurses-examples test packages.
+used _WIN32/_WIN64 in preference to + __MINGW32__/__MINGW64__ symbols to simplify + building with Microsoft Visual C++, since the former are + defined in both compiler configurations.
+key_name
in test/ncurses.c
- 'A' test, which only displays wide-characters, not
- key-codes since 20070612.The ncurses package is fully + upward-compatible with SVr4 (System V Release 4) curses:
-linedata.h
functions):
- test/test_addstr.c test/test_addwstr.c test/test_addchstr.c
- test/test_add_wchstr.cAll 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.
+wresize
allows you to resize
- windows, preserving their data.use_default_colors
allows you to
- use the terminal's default colors for the default color pair,
- achieving the effect of transparent colors.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.--enable-ext-colors
- option.quickch
- routine.#undef
.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 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.
+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 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 Additional + Reading section of the ncurses FAQ for online + documentation).
+The ncurses code has been tested with a wide variety of - applications including (versions starting with those noted):
+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:
-++
- aptitude +
- http://www.vexus.ca/products/CDK/
FrontEnd to Apt, the debian package manager
-https://wiki.debian.org/Aptitude
+ -Curses Development Kit
-directory-editor
-the underlying application used in Slackware's setup, + and the basis for similar install/configure applications on + many systems.
-the text WWW browser
-https://lynx.invisible-island.net/
+ -mail utility
-file-transfer utility
-New vi uses ncurses.
-A console file manager with VI key bindings in + Python.
+ + +newsreader, supporting color, MIME
+ + +File manager with vi like keybindings
+ + +as well as some that use ncurses for the terminfo support alone:
+ +++ ++
+- minicom +
+ +- +
+ +terminal emulator for serial modem connections
+ + +- mosh +
+ +- +
+ +a replacement for
+ + +ssh
.- tack +
+ +- +
+ +terminfo action checker
+ + +- tmux +
+ +- +
-terminal multiplexor
-The ncurses distribution includes a selection of test programs - (including a few games).
+ +Who's Who and What's What
Zeyd Ben-Halim started it from - a previous package pcurses, written by Pavel Curtis. Eric S. +- vile +
+ +- +
+vi-like-emacs may be built to use the terminfo, + termcap or curses interfaces.
+ + +
and finally, those which use only the termcap interface:
+ +++ ++
+- emacs +
+ +- +
+ +text editor
+ + +- less +
+ +- +
+ +The most commonly used pager (a program that + displays text files).
+ + +- screen +
+ +- +
+ +terminal multiplexor
+ + +- vim +
+ +- +
+text editor
+ + +
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 work is being done by - Thomas Dickey. - Thomas Dickey acts as the maintainer for the Free Software - Foundation, which holds the copyright on ncurses. Contact the - current maintainers at bug-ncurses@gnu.org. - -
To join the ncurses mailing list, please write email to
- bug-ncurses-request@gnu.org
containing the line:
- subscribe <name>@<host.domain> -+ 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 holds 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
+ ++ bug-ncurses@gnu.org ++ +
To join the ncurses mailing list, please write email to
+ ++ 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 ftp://invisible-island.net/ncurses/ .
+Beta versions of ncurses are + made available at
+ +++ +ftp://ftp.invisible-island.net/ncurses/current/ + and
+
+ https://invisible-mirror.net/archives/ncurses/current/ .
Patches to the current release are made available at
+ ++-ftp://ftp.invisible-island.net/ncurses/6.1/ + and
+
+ https://invisible-mirror.net/archives/ncurses/6.1/ .
There is an archive of the mailing list here:
+ +++ +http://lists.gnu.org/archive/html/bug-ncurses + (also https)
+
The release notes make scattered references to these pages, + which may be interesting by themselves:
The distribution provides a newer version of the + 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 + specification.
You can find lots of information on terminal-related topics not covered in the terminfo file at - Richard Shuford's archive .
+ Richard Shuford's archive . The collection of computer + manuals at bitsavers.org has also been + useful. + +