X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=announce.html.in;h=caaa2899b0e3f527478d3dd22ca072aa6c8c39d6;hp=378f6f80b012306a993e9f59a3b37b69f380862e;hb=d21ad44bdac29dcfbd1cf10a1918a42c43215b3d;hpb=d66080c21038ad4feb2e41a0c4e517d5b4a03ab2 diff --git a/announce.html.in b/announce.html.in index 378f6f80..caaa2899 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,7 +1,7 @@ -
- + "HTML Tidy for HTML5 for Linux version 5.6.0">Full manual pages are provided for the library and tools.
The ncurses distribution is available at ncurses' homepage:
+ "@HOMEPAGE@/">homepage:This release is designed to be source-compatible with - ncurses 5.0 through 6.0; providing + ncurses 5.0 through 6.2; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the intent of the release is to - provide extensions to the ncurses - 6 ABI:
- --
+ "main-name">ncurses 5 ABI, the reason for the release is + to reflect improvements to the ncurses 6 ABI and the supporting utility + programs.- -
- -improve integration of tput - and tset
-- -
-provide support for extended numeric capabilities.
-There are, of course, numerous other improvements, listed in this announcement.
-The release notes also mention some bug-fixes, but are focused +
The most important + bug-fixes/improvements dealt with portability issues. The + release notes also mention some other bug-fixes, but are focused on new features and improvements to existing features since - ncurses 6.0 release.
+ ncurses 6.2 release. -Library - improvements
+Library improvements
-New - features
+New features
-The improved integration of tput and tset - made only small changes to the libraries. However, supporting - extended numeric capabilities required a few changes:
+There are a few new features:
-
- -
The
- -TERMINAL
structure in -<term.h>
is now opaque. Doing that allowed - making the structure larger, to hold the extended numeric - data.A few applications required changes during development of - ncurses 6.1 because those - applications misused the members of that structure, e.g., - directly modifying it rather than using - def_prog_mode.
+A new (experimental) driver, for the Windows Terminal + configuration is provided.
- -
+Having made
- -TERMINAL
opaque (and because none - of the library functions use anything except a pointer to -TERMINAL
), it was possible to increase the size - of the structure, adding to the end.Existing applications which were linked to the - ncurses 6.0 high-level - (ncurses, ncursesw) and low-level - (tinfo, tinfo) libraries should not require - re-linking since the binary interface did not change, nor did - the structure offsets with
- -TERMINAL
change.A few applications use the inner
+TERMTYPE
- structure's offsets to refer to terminfo capabilities within - that structure. Again, those do not require modification - because their offsets withinTERMINAL
did not - change.A script is provided which enables OpenBSD users to + upgrade their system to use ncurses 6.3 (OpenBSD developers + are also invited to do this).
- When configured for wide-characters, i.e., - “ncursesw” the
- -TERMINAL
structure is - extended.The new data in
+TERMINAL
holds the same - information asTERMTYPE
, but with larger numbers - (“int” versus “short”). It is named -TERMTYPE2
.Additionally, to improve performance other changes (and + extensions) are provided in this release:
-The library uses this structure internally in preference - to
+TERMTYPE
, referring toTERMTYPE
- only to initialize it for applications that use the - capabilities defined in<term.h>
+
+ +- +
modify lib_mouse.c to check for out-of-range button + numbers, convert those to position reports.
- -
+When configured for 8-bit (narrow) characters, the -
+TERMTYPE2
structure is not used.add sp-funcs for + erasewchar, + killwchar.
Other + improvements
-The updated application binary interface is 6.1.20171230 - (used for new versioned - symbols), although the interface changes were developed - several months previously. +These are revised features:
+ ++
-- modify wgetnstr, wgetn_wstr to improve compatibility with + SVr4 curses in its treatment of interrupt and quit + characters
The motivation for making this extension came from noticing - that - termcap applications could (though not - realistically) use larger numbers than would fit in 16-bits, - and the fact that the number of color pairs for a 256-color xterm - could not be expressed in terminfo (i.e., 32767 versus 65536). - Also, a few terminals support direct-colors, which could use the - extension.
- -Generally speaking, applications that use internal details of - a library are unsupported. There was exactly one exception for - ncurses: the tack program used the internal - details of
- -TERMINAL
, because it provides an - ncurses-specific feature for interactively modifying a terminfo - description and writing the updated description to a text-file. - It was possible to not only separate tack from these internal - details of ncurses, but to - generalize it so that the program works with Unix curses - (omitting the ncurses-specific feature). That was released as - - tack 1.08 in July - 2017.While making changes to tack to - eliminate its dependency upon ncurses internals, the publicly-visible - details of those internals were reviewed, and some symbols were - moved to private header files, while others were marked - explicitly as ncurses internals. - Future releases of ncurses may - eliminate some of those symbols (such as those used by - tack 1.07) because they are - neither part of the API or the ABI.
- -Using the
+TERMTYPE2
extended numeric - capabilities, it is possible to support both color pair values - and color values past 32767. Taking compatibility into account, - developers readily understand that neither function signatures - nor structure offsets change. Also, existing functions have to - operate with the extended numbers. Most of that work is internal - to the library. For the external interfaces, a hybrid approach - was used:These were done to limit or ultimately deprecate features:
-
- -
X/Open Curses defined function prototypes such as -
+wattr_set
with an unused parameter, for - “future” use. After 25 years, the future is here: - ncurses uses the parameter to - augment color pair values as described in the - manual page.mark wgetch-events feature as deprecated.
+ ++
- +
+ +prevent KEY_EVENT from appearing in + curses.h unless the configure option +
+--enable-wgetch-events
is used.- +
+modify MKkey_defs.sh to hide ncurses' + definition of KEY_EVENTS to reduce Visual + Studio C++ redefinition warnings.
+- -
Other functions such as those defining color pairs did not - have a corresponding reserved parameter. For those, - ncurses defines extended - versions such as
+init_extended_pair
(versus -init_pair
),init_extended_color
- (versusinit_color
).reduce build-warnings by excluding ncurses-internals from + deprecation warnings.
Additionally, to improve performance other changes (and - extensions) are provided in this release:
+These are improvements to existing features:
- -
- -
Several new functions simplify management of large sets of - color pairs:
+reset_color_pairs
, -alloc_pair
,find_pair
and -free_pair
.drop symbols GCC_PRINTF and GCC_SCANF + from <curses.h>, to simplify use.
- -
New "RGB" extension capability for direct-color support is - used to improve performance of -
+color_content
.apply gcc format attribute to prototypes which use a + va_list parameter rather than a “...” + variable-length parameter list.
- -
The internal
+colorpair_t
is now a struct, - eliminating an internal 8-bit limit on colorsmodify <term.h> so that it is not necessary to + include <curses.h> before <term.h>.
- -
Allocation for
+SCREEN
's color-pair table - starts small, grows on demand up to the limit given in the - terminal description.provide for wide-characters as background character in + wbkgrnd
- -
-+
setcchar
andgetcchar
now treat - a negative color-pair as an error.improve parameter-checking for tparm, adding function + _nc_tiparm() to handle the most-used case, which accepts only + numeric parameters.
Other - improvements
-These are new or revised features:
- --
- -
modify
+c++/etip.h.in
to accommodate - deprecation of throw and throws in c++17use return-value from vsnprintf to reallocate as + needed to allow for buffers larger than the screen size.
- -
+add new function
+unfocus_current_field
add another fflush(stdout) in _nc_flush + to handle time-delays in the middle of strings such as flash + when the application uses low-level calls rather than + curses.
- +add option to preserve leading whitespace in form - fields
-These are corrections to existing features:
+-
- -
add a macro for
+is_linetouched
and adjust the - function's return value to make it possible for most - applications to check for an error-return.add a check to guard against repeat_char emitting + digits which could be interpreted as BSD-style padding when + --enable-bsdpad is configured.
- -
add build-time utility
+report_offsets
to help - show when the various configurations of tinfo library are - compatible or not.check for screen size-change in scr_init and + scr_restore, in + case a screen dump does not match the current screen + dimensions
These were done to limit or ultimately deprecate features:
+Program + improvements
--
+- -
+drop two symbols obsoleted in 2004: -
-_nc_check_termtype
, and -_nc_resolve_uses
Several improvements were made to the + utility programs:
-- -
+move
-_nc_tracebits
,_tracedump
- and_tracemouse
tocurses.priv.h
, - since they are not part of the suggested ABI6.+
- tabs +
-- -
+mark some structs in form/menu/panel libraries as - potentially opaque without modifying API/ABI.
-- +
-+
+- +
+implement “+m” option
+- -
+ifdef'd header-file definition of
-mouse_trafo
- withNCURSES_NOMACROS
- tic +
-- -
+remove initialization-check for calling
-napms
- in the term-driver configuration; none is needed.- +
+ ++
+- +
-add check for duplicate “use=” + clauses.
+- -
-modify
-trace
to avoid overwriting existing - file- +
-add check to report instances where tparm + would detect an error in an expression.
+These are improvements to existing features:
+- +
-add user-defined capabilities from mintty to + Caps-ncurses, for checking consistency.
+-
+- -
+modify
-make_hash
to allow building with - address-sanitizer, assuming that--disable-leaks
- is configured.- +
-improve warning when oc/op do not mention SGR 39/49 + for xterm compatible
+XT
flag.- -
+move
-SCREEN
field foruse_tioctl
- data before the ncursesw fields, and limit that to the - sp-funcs configuration to improve termlib compatibility- +
-improve checks for number of parameters of +
+smglp
,smgrp
, +smgtp
, andsmgbp
.- -
modify db-iterator:
+- +
+ +improve “-c” option to validate + the number and type of parameters and compare against + expected number/type before deciding which set of + parameter-lists to use in tparm calls.
+- +
+ +improve check for errors detected in +
+tparm
.- +
+ +improve format of output, to ensure that the messages + contain only printable text.
+- +
+ +modify to eliminate unnecessary + “
+\
” to escape + “:
” in terminfo format.- +
+remove check that assumes that none or both + parameterized and non-parameterized margin-setting + capabilities are present.
+- toe +
+- -
- +
- -
ignore zero-length files in db-iterator; these are - useful for instance to suppress -
+$HOME/.terminfo
when not wanted.modify output of “toe -as” to + show first description found rather than the last.
- -
modify
+update_getenv
to ensure that - environment variables which are not initially set will be - checked later if an application happens to set themadd a check to ensure that a “termcap + file” is text rather than binary.
- -
+modify
-_nc_outc_wrapper
to use the standard - output if the screen was not initialized, rather than - returning an error.- tput +
-- -
+improve checks for low-level terminfo functions when the - terminal has not been initialized.
-- +
+ -+
+- +
-modify to allow multiple commands per line.
+- -
+modify
-set_curterm
to update -ttytype[]
data used by longname/p>- +
-improve parameter-checking by analyzing all extended + string capabilities, e.g., as used in the
+Cs
+ andMs
capabilities of the tmux + description.- -
+modify
-_nc_get_screensize
to allow for -use_env
anduse_tioctl
state to be - per-screen when sp-funcs are configured, better matching the - behavior when using the term-driver configuration.- +
-make warning messages consistently using alias names + when those are used, rather than the underlying program's + name.
+- -
+remove an early-return from
-_nc_do_color,
- which can interfere with data needed bybkgd
- when ncurses is configured - with extended colors- +
-improve usage message for aliases such as + clear, by eliminating tput-specific + portions.
+- -
+incorporate
-A_COLOR
mask into -COLOR_PAIR
, in case user application provides an - out-of-range pair number- +
+modify initialization to avoid opening + /dev/tty for cases other than + reset/init, e.g., for clear.
+- -
-modify logic for
-endwin
-state to be able to - detect the case where the screen was never initialized, using - that to trigger a flush of ncurses' buffer formvcur
, - e.g., in the sample program dots_mvcur for the term-driver - configuration.Examples
-These are corrections to existing features:
+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:
-
- -
fixes for writing extended color pairs in -
+putwin
.add “-r” option to the dots + test-programs, to help with scripting a performance + comparison.
- -
modify no-leaks code for
+lib_cur_term.c
to - account for thetgetent
cache.build-fix for test_opaque, for configurations + without opaque curses structs, e.g., ncurses 5.7.
- -
amend handling of the
+repeat_char
capability - inEmitRange
to avoid scope creep: translate the - character to the alternate character set when the alternate - character set is enabled, and do not use -repeat_char
for characters past 255.improve tracemunch logic for "RUN" + compaction.
- -
improve wide-character implementation of -
+myADDNSTR
infrm_driver.c
, which - was inconsistent with the normal implementation.improve tracemunch's coverage of form/menu/panel + libraries.
- -
modify
+winnstr
andwinchnstr
to - return error if the output pointer is null, as well as adding - a null pointer check of the window pointer for better - compatibility with other implementations.improve tracemunch's checking/reporting the type + for the first parameter, e.g., "WINDOW*" rather than + "#1".
- -
+modify
+setupterm
to save original tty-modes - so thaterasechar
works as expected. Also modify -_nc_setupscreen
to avoid redundant calls to get - original tty-modes.modify tracemunch and the panel library to show + readable traces for panel- and user-pointers.
- +modify
-wattr_set
andwattr_get
- to returnERR
if win-parameter is null, - as documented.There are other new demo/test programs and reusable + examples:
-- +correct order of initialization for traces in -
-use_env
anduse_tioctl
versus first -_tracef
calls.+
- back_ground +
-- +correct parameters for
-copywin
call in -_nc_Synchronize_Attributes
to exercise the wide-character background functions. -- +flush the standard output in
-_nc_flush
for - the case whereSP
is zero, e.g., when called via -putp
. This fixes a scenario where - “tput flash” did not work after changes in - 20130112.move_field + -- +amend internal use of
-tputs
to consistently - use the number of lines affected, e.g., for insert/delete - character operations. While merging terminfo source early in - 1995, several descriptions used the - “*
” proportional delay for these - operations, prompting a change indoupdate
.to demonstrate move_field, and a stub + for a corresponding demo of dup_field. -- +correct return-value of extended
-putwin
.test_tparm + -- +double-width multibyte characters were not counted - properly in
-winsnstr
and -wins_nwstr
.for checking tparm changes. + -- +amend fix for
-_nc_ripoffline
from 20091031 to - maketest/ditto.c
work in threaded - configuration.Terminal database
-- +modify
-_nc_viscbuf2
and -_tracecchar_t2
to trace wide-characters as a - whole rather than their multibyte equivalents.There are several new terminal descriptions:
-- +minor fix in
-wadd_wchnstr
to ensure that each - cell has nonzero width.+-absolute, + att610+cvis, + foot, + foot-direct, + hp98550-color, + hpterm-color2, + hterm, + hterm-256color, + linux-s, + putty+keypad, + putty+screen, + putty-screen, + screen.linux-s, + scrt/securecrt, + tmux-direct, + vt220+cvis, + vt220+cvis8, + vt220+pcedit, + vt220+vtedit, + vt220-base, + vt52+keypad, + xterm+256color2, + xterm+88color2, + xterm-direct16, + xterm-direct256, + xterm+nofkeys, + and xterm+nopcfkeys.
+- +move
-PUTC_INIT
calls next to -wcrtomb
calls, to avoid carry-over of error - status when processing Unicode values which are not - mapped.There are many changes to existing terminal descriptions. Some + were updates to several descriptions:
-- +add missing assignment in
-lib_getch.c
to make -notimeout
work+
-- correct use-ordering in some xterm-direct + flavors
+ +- fix some sgr inconsistencies in d230c, ibm6153, + ibm6154, + ncrvt100an
+ +- improve vt50h and vt52 based on + DECScope manual
+ +- use hp+arrows in a + few places
+ +- use hp+pfk-cr in a + few places
+ +- use vt220+cvis in + st, terminology, termite since they + ignore blinking-cursor detail in att610+cvis
Program - improvements
+while others affected specific descriptions. These were + retested, to take into account changes by their developers:
-While reviewing user feedback, it became apparent that the - differences between - reset (an alias for - tset) and “tput reset” were confusing:
++-kitty+common, + mlterm3, + ms-terminal
+-
+- one (tset) - updated the terminal modes, but used only part of the terminfo - capabilities for initialization, while
- -- the other (tput) - used all of the terminal capabilities while neglecting the - terminal modes.
-while these are specific fixes based on reviewing + documentation, user reports, or warnings from tic:
-On further investigation, it turned out that the differences - were largely an accident due to the way those programs had - evolved.
- -This release eliminates the unnecessary differences, using the - same approach for tput's - init (initialization), reset and clear - operations as the separate - reset and - clear programs. Doing this does not change the - command-line options; existing scripts are unaffected.
- -These are the user-visible changes for the three programs - (tput, tset and clear):
++
-- aaa+dec, + aaa+rv
--
+- -
+add the terminal-mode parts of “reset” (aka tset) to the “
-tput - reset
” command, making the two almost the same - except for window-size.- correct rmacs/smacs
-- -
+improve tput's check for - being called as “init” or “reset” to - allow for transformed names.
-- aaa+rv +
-- -
+add “clear” as a possible link/alias to - tput.
-- correct sgr
-- -
+amend changes for tput to - reset tty modes to “sane” if the program is run - as “reset”, like tset. Likewise, ensure that tset sends either reset- or - init-strings.
-- icl6404 +
-- -
+add
--x
option to clear/tput - to make theE3
extension optional- correct csr
-- -
+add functionality of - “
-tset -w
” to tput, like the - “-c
” feature this is not optional in - tput.- kitty +
-- -
+add options
--T
and-V
to - clear command for - compatibility with tput.- use att610+cvis, xterm+tmux and ansi+enq
-- -
+drop long-obsolete “
--n
” option - from tset.- konsole-base +
-- -
+modify tset's assignment to -
-TERM
in its output to reflect the name by which - the terminal description is found, rather than the primary - name. That was an unnecessary part from the initial - conversion of tset from - termcap to terminfo. The termcap library in 4.3BSD did this - to avoid using the short 2-character name- re-enable "bel"
-- -
+remove a restriction in tput's support for termcap names which - omitted capabilities normally not shown in termcap - translations
-- linux2.6 +
-- -
+add usage message to clear - command
-- fix pound-sign mapping in acsc
-- -
-improve usage messages for tset and tput.
-- linux3.0 +
-Other user-visible improvements and new features include:
+- modify to reflect default mapping of shift-tab by kbd + 1.14
--
- -- -
+modify tic/infocmp display of numeric values to use - hexadecimal when they are "close" to a power of two, making - the result more readable.
-- pccons +
-- -
+add “
+-W
” option to tic/infocmp - to force long strings to wrap.- fill in some missing pieces, to make it comparable to the + vt220 entry
--
-- -
+This is in addition to the - “
--w
” option which attempts to - fit capabilities into a given line-length.- putty +
-- -
+If “
--f
” option splits line, - do not further split it with - “-W
”.- use vt100+fnkeys, add rep
-- -
-Begin a new line when adding - “
-use=
” after a wrapped line.- screen +
-- -
+add “
--q
” option to infocmp to suppress the - “Reconstructed from
” comment from - the header, and a corresponding option to tic to suppress all comments from the - “tic -I
” output.- use vt100+enq
-- -
+Sorted options in usage message for infocmp, to make it simpler to see unused - letters.
-- terminator +
-- -
+Updated usage message for tic, adding “
--0
” - option.- corrected tsl capability
-- -
-add infocmp/tic “
+-Q
” option, - which allows one to dump the compiled form of the terminal - entry, in hexadecimal or base64:- ti916 +
--
-- A “
- -b64:
” prefix in the -TERMINFO
variable tells the terminfo reader to - use base64 according to RFC-3548 as well as RFC-4648 - url/filename-safe format.- A “
-hex:
” prefix tells the - terminfo reader to accept hexadecimal data as generated by - “infocmp -0qQ1
”.Other less-visible improvements and new features include:
- --
- -- -
- -modify utility headers such as
-tic.h
to make - it clearer which are externals that are used by tack.- -
- -add “
-reset
” to list of programs - whose names might change in manpages due to - program-transformation configure options.- -
- -modify “
--T
” option of - clear and tput to calluse_tioctl
to - obtain the operating system's notion of the screensize if - possible.- -
- -add check in tput for - init/reset operands to ensure those use a terminal.
-- -
- -modify programs clear, - tabs, tput and tset to pass the actual tty file - descriptor to setupterm rather than the standard output or - error, making padding work.
-- -
- -change tset's - initialization to allow it to get settings from the standard - input as well as
-/dev/tty
, to be more effective - when output or error are redirected.- -
- -amend check in tput, - tabs and clear to allow those to use the - database-only features in cron - if a “
--T
” option gives a suitable - terminal name.- -
-improve error message from tset/reset - when both stderr/stdout are redirected to a file or pipe.
-Several of the less apparent features deal with translation of - terminfo to termcap (and the reverse), with corresponding checks - by tic:
- --
- -- -
- -modify check in
-fmt_entry
to handle a - cancelled reset string. Make similar fixes in other parts of -dump_entry.c
andtput.c
- -
- -correct read of terminfo entry in which all strings are - absent or explicitly cancelled. Before this fix, the result - was that all were treated as only absent.
-- -
- -modify infocmp to suppress - mixture of absent/cancelled capabilities that would only show - as “
-NULL, NULL
”, unless the - “-q
” option is used, e.g., to show - “-, @
” or “@, - -
”.- -
- -correct a warning from tic - about keys which are the same, to skip over missing/cancelled - values.
-- -
- -add check in tic for use of - bold, etc., video attributes in the color capabilities, - accounting whether the feature is listed in -
-ncv
.- -
- -add check in tic for - unnecessary use of “
-2
” to denote a - shifted special key.- -
- -improve check in tic for - delays by also warning about beep/flash when a delay is not - embedded, or if those use the VT100 reverse video escape - without using a delay.
-- -
- -improve checks in
-trim_sgr0
, comp_parse.c and - parse_entry.c, for cancelled string capabilities.- -
- -add check in tic for some - syntax errors of delays, as well as use of proportional - delays for non-line capabilities.
-- -
- -add check in tic for - conflict between
-ritm
,rmso
, -rmul
versussgr0
.- -
- -add check in
-_nc_parse_entry
for invalid - entry name, setting the name to - “invalid
” to avoid problems storing - entries.- -
- -improve
-_nc_tparm_analyze
, using that to - extend the checks made by tic - for reporting inconsistencies between the expected number of - parameters for a capability and the actual.- -
- -remove tic warning about - “
- -^?
” in string capabilities, which - was marked as an extension; however all Unix implementations - support this and X/Open Curses does not address it. On the - other hand, - BSD termcap did not support this feature (until the - - mid-1990s).in
-_nc_infotocap
, added a check to ensure - that terminfo “^?
” is not written to - termcap.- -
- -modify
-sscanf
calls in -_nc_infotocap
for patterns - “%{number}%+%c
” and - “%'char'%+%c
” to check that the - final character is really “c
”, - avoiding a case in icl6404 which cannot be converted to - termcap.- -
- -in
-_nc_tic_expand
and -_nc_infotocap
, improved string-length check when - deciding whether to use “^X
” or - “\xxx
” format for control - characters, to make the output of tic/infocmp - more predictable.- -
- -limited termcap “
-%d
” width to 2 - digits on input, and use “%2
” in - preference to “%02
” on output.- -
-correct terminfo/termcap conversion of - “
-%02
” and - “%03
” into - “%2
” and - “%3
”; the result repeated the last - character.Examples
- -Along with the library and utilities, many improvements were - made to the ncurses-examples.
- -These changes were made to demonstrate new extensions in - ncurses:
- --
- -- -
- -add demo_new_pair program, - to demonstrate -
- -alloc_pair
, -find_pair
and -free_pair
functions.This program iterates over the possible color - combinations, allocating or initializing color pairs. For - best results, choose screen-width dividing evenly into the - number of colors. e.g.,
- ----
-- - -- - 32x64,32x128
256 colors -- - -- - 24x44,24x88
88 colors -- -- - 32x64,24x128
16 colors -- -
- -add extended_color program, - like the older color_set - program, but using the extended color functions, with and - without the SP-functions interface.
-- -
-add picsmap program to fill - in some testing issues not met by dots, using this as the third example in a - comparison of the - ncurses versus slang libraries.
- -The program can directly read X bitmap and pixmap files, - displaying a picture. It can read other image files using - ImageMagick's convert program to translate the image - into text.
- -For 16-, 88- and 256-color terminal descriptions, - picsmap can load a palette - file which tells it which color palette entries to use. For - direct-colors, the terminal descriptions use the -
-RGB
extension capability.There are other new example programs and a few scripts:
- --
- -- -
- -add dots_xcurses program to - illustrate a different approach used for extended colors - which can be contrasted with dots_curses.
-- -
- -add list_keys program show - function keys for one or more terminal descriptions. It uses - ncurses's convention of - modifiers for special keys, based on xterm.
-- -
- -add padview program, to - compare pads with direct updates in the view program.
-- -
- -add sp_tinfo program to - exercise the SP-functions extension of the low-level terminfo - library.
-- -
- -add test-programs for
-termattrs
and -term_attrs
functions.- -
- -add test_sgr program to - exercise all combinations of the sgr capability.
-- -
- -add tput-colorcube demo - script, imitating xterm's 88- and 256-color scripts using - tput.
-- -
-add tput-initc script to - demonstrate how tput may be - used to initialize a color palette from a data file.
-A variety of improvements were made to existing programs, both - new features as well as options added to make the set of programs - more consistent.
- -The ncurses program is the - largest; a proportionately large number of changes were made to - it:
- --
- -- -
- -modify a/A screens to make exiting on an escape character - depend on the start of keypad and timeout modes, to allow - better testing of function-keys.
- -add “
-t
” toggle for -notimeout
function.- -
- -modify layout of b/B screens to allow for additional - annotation on the right margin; some terminals with partial - support did not display well.
-- -
- -modify c/C screens to allow for extended color pairs.
- -add z/Z zoom feature to make extended color pairs - easier to test.
- -modify test-screens to take advantage of wide screens, - reducing the number of lines used for 88- and 256-colors.
-- -
- -modify “
-d
” edit-color screen to - optionally read xterm color palette directly from terminal, - as well as handlingKEY_RESIZE
and - screen-repainting with control/L and control/R.- -
- -add examples to “
-F
” screen for -WACS_D_PLUS
andWACS_T_PLUS
.- -
- -improve “
-g
” screen, correcting - ifdef which made the legend not reflect changes to keypad- - and scroll-modes. Added check for return-value of -putwin
.- -
- -make “
- -s
” test easier to - understand which subtests are availableadd a corresponding “
-S
” - wide-character overlap test-screen.- -
-add “
-v
” screen to show -baudrate
and other values.These changes were made to the other examples:
- --
- -- -
- -modify blue program to use - Unicode values for card-glyphs when available, as well as - improving the check for CP437 and CP850.
-- -
- -improve demo_menus program, - allowing mouse-click on the menu-headers to switch the active - menu. This requires a new extension option -
-O_MOUSE_MENU
to tell the menu driver to put - mouse events which do not apply to the active menu back into - the queue so that the application can handle the event.- -
- -correct logic in demo_terminfo program for - “
--f
” option- -
- -modify ditto program to - allow
-$XTERM_PROG
environment variable to - override "xterm" as the name of the program to run in the - threaded configuration.- -
- -add several options to the “dots” - test-programs.
-- -
- -modify filter program:
- --
-- illustrate an alternative to
- -getnstr
, that - polls for input while updating a clock on the right margin - as well as responding to window size-changes.- adapt logic used in dialog - “
---keep-tite
” option for - filter program as the "-a" - option. When set, filter - attempts to suppress the alternate screen.- -
- -modify knight program to - provide the "slow" solution for small screens using - “
-R
”, noting that Warnsdorf's method - is easily done with “a
”.- -
- -modify the savescreen - program to add test patterns that exercise 88-, 256-, etc., - colors.
-- -
- -add options to test_arrays, - for selecting termcap vs terminfo, etc.
-- -
- -modify the view - program:
- --
-- expand tabs using the ncurses library rather than in - the test-program.
- -- eliminate the “
- --n
” option by - simply reading the whole file.- implement page up/down commands.
- -- remove the very old
-SIGWINCH
example; just - useKEY_RESIZE
.- -
- -improve animation in xmas - program by adding a time-delay in
-blinkit
.- -
- -modify several test-programs which call -
-use_default_colors
to consistently do this only - if the “-d
” option is given.- -
- -modify the install-rule for ncurses-examples to put the - data files in the data directory, e.g., -
-/usr/share/ncurses-examples
.- -
- -modify several test programs to use new -
-popup_msgs
function, adapted from the - help-screen used in theedit_field
program.- -
- -modify test data for xterm palettes to use the newer - color4/color12 values.
-- -
-improve the tracemunch - script:
- --
-- show screenXX pointers and thread identifiers as - names.
- -- chang address-parameters of
-add_wch
, -color_content
andpair_content
to - dummy parameters.Terminal - database
- -There are several new terminal descriptions:
- --- -- -
dumb-emacs-ansi
,dvtm
, -dvtm-256color
,fbterm
, -iterm2
,linux-m1
minitel - entries,putty-noapp
,viewdata
, - andvt100+4bsd
building-block.- -
xterm+noalt
,xterm+titlestack
, -xterm+alt1049
,xterm+alt+title
- building blocks andxterm+direct
, -xterm+indirect
,xterm-direct
. from - xterm - patch #331.several other “
--direct
” - descriptions to address the differences of other terminal - emulators versusxterm-direct
.There are many changes to existing terminal descriptions. Some - were updates to several descriptions:
- --
- -- use
- -xterm+sm+1006
in several terminal - descriptions which were validated as supporting the extended - mouse feature for their respective terminal emulators.- corrected sgr/sgr0 strings in a few cases - reported by tic, making those - correspond to the non-sgr settings where they differ, - but otherwise use ECMA-48 consistently.
- -- add 0.1sec mandatory delay to flash capabilities - using the VT100 reverse-video control
-while others affected specific descriptions. These were - retested, to take into account new/undocumented changes by their - developers:
- --- --
iterm
,minitel
,st
, -viewdata
,nsterm
while these are specific fixes based on user reports, or - warnings from tic:
- --
- -
- -ansi
building blocks- -
- --
-- restored rmir/smir in -
-ansi+idc
to better match original -ansiterm+idc
, add alias -ansiterm
- -
- -icl6402
- -
- --
-- corrected missing comma-separator between string - capabilities in
-icl6402
and -m2-nam
- -
- -interix
- -
- --
-- updated using tack and - SFU with Windows 7 Ultimate.
- -- used
-^?
for kdch1- -
- -linux
- -
- --
-- made
- -linux3.0
entry the default -linux
entry- modify
- -linux2.6
entry to improve - line-drawing so that thelinux3.0
entry can be - used in non-UTF-8 mode- omitted selection of ISO-8859-1 for G0 in enacs - capability from linux2.6 entry, to avoid conflict with the - user-defined mapping. The reset feature uses ISO-8859-1 in - any case.
- -- modify flash capability for
- -linux
- andwyse
entries to put the delay between the - reverse/normal escapes rather than after- modify
-linux-16color
to not mask dim, - standout or reverse with the ncv capability- -
+pccon
entries- correct cup
-- -
+-
-- fixed some inconsistencies in the -
+pccon*
entries- tmux +
-- add bold to
+pccon+sgr+acs
and -pccon-base
- change kbs to ^?
-- add keys f12-f124 to
-pccon+keys
- vt220 +
-- -
- -tmux
- -
+-
-- corrected sgr string, which used -
- -screen
's "standout" code rather than the - standard code.- add settings corresponding to
- -xterm-keys
- option to reflect upcoming change to make that option - "on" by default- uncanceled Ms
-- use vt220+cvis
- -
+ "@HOMEPAGE@/terminfo.src.html#tic-vt420_lrmm">vt420+lrmm + -vt100
- -
+-
-- modify
+vt100
rs2 string to reset - vt52 mode and scrolling regions- add smglp and smgrp
-- corrected rs2 string for -
+vt100-nam
- vt420 +
-- made minor fixes for
-vt100+4bsd
, e.g., - delay in sgr for consistency- use vt420+lrmm
- -
- -vte
- -
+-
-- moved SGR 24 and 27 from
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm-new">xterm-new + -vte-2014
to -vte-2012
- add a few capabilities fixed in recent VTE - development
-- add nel
- -
- -xterm
- -
+-
-- add rep to
- -xterm-new
, available - since - late 1996.- modify
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm-vt52">xterm-vt52 + -xterm+256color
and -xterm+256setaf
to use correct number of color - pairs.- modify rs1 for
- -xterm-16color
, -xterm-88color
andxterm-256color
- to reset palette using oc string as in -linux
entry.- add rs1 capability to -
- -xterm-256color
- add oc capability to -
- -xterm+256color
, allowing palette reset for - xterm- add op to
- -xterm+256setaf
- modify
- -xterm-r5
,xterm-r6
and -xterm-xf86-v32
to usexterm+kbs
- to match - xterm #272, reflecting packager's changes- used ANSI reply for u8 in -
- -xterm-new
, to reflect vt220-style responses - that could be returned.- made
-xterm-pcolor
sgr consistent - with other capabilities- use vt52+keypad
A few entries use extensions (user-defined terminal capabilities):
-
- add rmxx/smxx ECMA-48 strikeout extension - to
- -tmux
andxterm-basic
- used RGB capability in new *-direct - entries to denote direct-color feature.
+- add shifted Linux console keys in linux+sfkeys + entry for screen.linux
+ +- add Smulx to alacritty
+ +- add kbeg to xterm+keypad + to accommodate termcap applications
+ +- add extensions in xterm+tmux + and ecma+strikeout + to ms-terminal, + but cancel the non-working Cr and Ms capabilities
fills in overlooked descriptions of features which were - described in the NEWS - file but treated sketchily in manual pages.
- - - -In particular,
- --
@@ -1696,231 +787,201 @@ p,li { max-width:700px; } these features and show how they evolved, there are corrections, clarifications, etc.: -- -
- -Since the underlying features for - tset, - tput, and - clear have been better - integrated, the documentation now includes information on how - those tools evolved.
- -In addition to explaining the improved integration of the - tools, the manual pages made it easier to see how the tools - are similar and how they are different.
-- -
- -The
-addch
manual page has additional - information on - portability and differences from other - implementations.- -
- -The discussion of color-pairs in the attributes - manual page is improved in its - history section.
-- -
- -The documentation of the
-chtype
, -cchar_t
types and the attribute values which can - be stored in those types, in particular the - history and - portability sections of the attributes manual - page, has been improved.- -
- -improve discussion of - portability in the mouse manual.
-- -
- -The pad manual page has a section on the - origin and portability of pads.
-- -
- -Differences between SVr4 and X/Open Curses soft-keys are - discussed in a new section on - portability.
-- -
There are updated/improved notes on portability in the - - resizeterm and - wresize manual pages.
+ described in the NEWS file + but treated sketchily in manual pages.-
+- -
- -add note in the - addch manual about line-drawing when it depends - upon UTF-8.
-- -
- -improve discussion of line-drawing characters in the - - add_wch manual.
-- -
- -explain in - clear's manual page that - it writes to the standard output.
-- -
- -improve description of - endwin.
-- -
- -improve discussion of field validation in the - form driver manual page.
-- -
- -clarify the use of
-wint_t
vs -wchar_t
in - get_wstr manual page.- -
- -clarify in the - getch manual that the keypad mode affects an - application's ability to read
- -KEY_MOUSE
codes, - but does not affectKEY_RESIZE
.trim some obsolete/incorrect wording about -
- -EINTR
from the getch manual pageimprove manual pages for - getch and - get_wch to point out that they might return - user-defined values which have no predefined names in -
-<curses.h>
- -
- -improve description of the
--R
option in the - - infocmp manual page- -
- -clarify in the - resizeterm manual page how -
-KEY_RESIZE
is pushed onto the input stream.- -
- +document return value of -
-use_extended_names
- -
+document differences in -
-ESCDELAY
versus AIX's implementation in the - variables manual page.Corrections:
-- -
+The
-_nc_free_tinfo
function is now documented - in the - memory-leaks manual page, because it could be - used in tack for memory-leak - checking.+
- +
-make opts extension for getcchar + work as documented for ncurses + 6.1, adding “-g” flag to + demo_new_pair to illustrate.
+- -
add a note to the - tic manual page about -W versus -f options.
+- +
+modify tset + “-q” option to refrain from modifying + terminal modes, to match the documentation.
+- -
+improve terminfo manual description of - terminfo syntax.
+New/improved history and portability sections:
-improve terminfo manual page discussion of - control- and graphics- characters.
++
- +
-improve documentation for + tparm and static/dynamic variables.
+improve - color-handling section in terminfo manual page
-- +
-add history note to curs_scanw.3x + for <stdarg.h> and <varargs.h>
+- -
clarify description in - tput manual page regarding - support for termcap names
+- +
-add history note to curs_printw.3x + for <stdarg.h> and <varargs.h>
+update - tput manual page to - reflect changes to manipulate terminal modes by sharing - functions with tset.
- +- +
-add portability note to ncurses.3x + regarding <stdarg.h>
+- -
+clarify in manual pages that the optional verbose option - level of - tic and - infocmp is available only - when ncurses is configured for - tracing.
-- +
-add historical notes to tput, + + curses-terminfo and curses-color + manpages based on source-code for SVr2, SVr3 and + SVr4.
+- -
improve manual page description of tset/reset - versus window-size.
+- +
+improve history section for tset manpage + based on the 1BSD tarball, which preceded BSD's SCCS + checkins by more than three years.
+- -
-improve description of - tgoto parameters
-Other improvements:
-There are new manual pages:
++
+- +
-explain in + ncurses.3x that functions in the tinfo library do not + rely upon wide-characters.
+-
+- - user_caps documents the terminfo extensions used by - ncurses.
+- +
-improve manual page for panel + library, extending the portability section as well as + documenting error-returns.
+- -
-- scr_dump documents the screen-dump format.
-- +
-add section on margins to terminfo.5, + adapted from X/Open Curses.
+Some of the improvements are more subtle, relating to the way - the information is presented:
+- +
-improve man/term.5 + section on legacy storage format.
+-
- -
+Made minor fixes to manpage NAME/SYNOPSIS - sections to consistently use rule that either all functions - which are prototyped in SYNOPSIS are listed in the - NAME section, or the manual-page name is the sole - item listed in the NAME section. The latter is used - to reduce clutter, e.g., for the top-level library manual - pages as well as for certain feature-pages such as - SP-funcs and - threading.
-- +
-add a note in + terminfo.5 explaining that no-parameter strings such + as sgr0 or cnorm + should not be used with tparm.
+- -
+improve manual pages for utilities with respect to POSIX - versus X/Open Curses.
-- +
-improve description of BSD-style padding in curs_termcap.3x
+- -
improve organization of the - attributes and color manual - pages.
+- +
+ +improve discussion of padding versus tparm + and tputs in + man/curs_terminfo.3x
+- +
+ +add a note in manual page to explain + ungetch vs unget_wch.
+- +
+improve description of error-returns in waddch + and waddnstr + manual pages.
+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, hyphenation is + suppressed in the HTML files generated from manual pages because + an upgrade to groff gave noticeably poorer results, + interfering with the process of creating links between the + resulting webpages.
+Interesting bug-fixes
+While there were many bugs fixed during development of ncurses + 6.3, 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:
+@@ -1930,416 +991,198 @@ p,li { max-width:700px; }
- -
modify toe to not exit if - unable to read a terminal description, e.g., if there is a - permission problem.
+modify wbkgd and + wbkgrnd to + avoid storing a null in the background character, because it + may be used in cases where the corresponding 0x80 is not + treated as a null.
+ +This was a regression introduced in ncurses 6.2 (reported + on the mailing list), for which the workaround was to specify + a blank for the background character.
- -
-correct 20100515 change for weak signals versus - sigprocmask
+remove output-related checks for nl/nonl (also + + reported on the mailing list).
- work around Ada tool-breakage in Debian 9 and later by - invoking
-gprconfig
to specify the C compiler to be - used bygnatmake
, and conditionally suppressing -Library_Options
line for static libraries.- -
There were, as well, several bug-fixes to handle illegal - input for tic. Because those - did not correspond to useful terminal descriptions, most - users are unaffected.
+improve tparm implementation of %P and + %g, more closely matching SVr4 terminfo. Those + denote static and dynamic variables in + terminfo expressions.
+ +Exactly what those terms meant was never documented before + in any implementation of curses, aside from source code. + Unlike the other two fixes, the problem was discovered while + studying OpenBSD's version of tset.
Major changes
-This release provides a new binary format for terminal - descriptions that use extended numeric capabilities. Applications - built with the wide-character ncursesw library can use - these extended numbers.
- --
- -- -
- -This includes utilities such as tic and infocmp, because (as noted in New features), the feature - relies upon an extension to the low-level tinfo - library.
-- -
-A few software packagers use a configuration option of - ncurses which allows the - low-level tinfo library to be shared between the - high-level ncurses and ncursesw libraries. - This new feature was designed to work in that configuration - as well.
-Other applications (i.e., using the 8-bit ncurses - library) which read the extended terminal descriptions see those - numeric capabilities set to the maximum value for a signed 16-bit - number.
- -Older versions of ncurses' - tic accept out-of-range numeric - capabilities, storing those as the maximum value for a signed - 16-bit number. Other implementations of curses (mentioned in the - discussion of - picsmap) give zero for these - out-of-range capabilities.
+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.
Configuration options
-These changes provide support for tack 1.08, released in - July 2017:
+There are a few new/modified configure options:
--
+- -
+add
---without-tack
configure option to refine ---with-progs
configure option. Normally - tack is built outside the - ncurses tree, but a few - packagers combine it during the build. If -term_entry.h
is installed, there is no advantage - to in-tree builds.+
- --enable-fvisibility +
-- -
+adjust configure-script to define -
-HAVE_CURSES_DATA_BOOLNAMES
symbol needed for - tack 1.08 when built in-tree. - Rather than relying upon internal "_nc_" functions, - tack now uses the boolean, - number and string capability name-arrays provided by - ncurses and SVr4 Unix curses. - It still usesterm_entry.h
for the definitions - of the extended capability arrays.- +
-new configure option and check for gcc + -fvisibility=hidden feature
+- -
-add dependency upon ncurses_cfg.h to tic's header-files; any program using - tic-library will have to - supply this file. Legacy tack - versions supply this file; ongoing tack development has dropped the - dependency upon tic-library - and new releases will not be affected.
-- --enable-leaks +
-Other changes to the configure-script and generated files - include
+- +
-corrected to allow turning leak-checking off later in a + set of options.
+-
+- -
+add configure options to disable checks for form, menu and - panel libraries so that ncurses-examples can be built with - non-SVr4 curses implementations.
-- --enable-stdnoreturn +
-- -
+add configure option
---enable-opaque-curses
- for ncurses library and similar options for the - other libraries.- +
-new configure option makes the
+_Noreturn
+ keyword optional to ease transition.- -
+add configure option
---disable-wattr-macros
- for use in cases where one wants to use the same headers for - ncurses5/ncurses6 development, by suppressing the - wattr* macros which differ due to the introduction - of extended colors- --disable-pkg-ldflags +
-- -
+modify configure macro for shared-library rules to use -
--Wl,-rpath
rather than-rpath
to - work around a bug in scons- +
-revised option also controls whether
+$LDFLAGS
+ from the build is provided in “-config” + and “.pc” files.- -
+improve ncurses-examples' configure script to define as - needed
-NCURSES_WIDECHAR
for platforms where -_XOPEN_SOURCE_EXTENDED
does not work. Also - modified the test program to ensure that if building with - ncurses, that the -cchar_t
type is checked, since that is normally - (since 20111030) - ifdef'd depending on this test.- --disable-root-access +
-- -
+modify configure script to handle the case where - tic-library is renamed, but - the
---with-debug
option is used by itself - without normal or shared libraries- +
-add configure option which tells ncurses to disallow most + file-opens by setuid processes.
+- -
+modify editing script which generates resulting.map to - work with the clang configuration on recent FreeBSD, which - gives an error on an empty "local" section.
-- --disable-wattr-macros +
-- -
+improve configure check for setting the -
-WILDCARD_SYMS
variable; on ppc64 the variable is - in the Data section rather than - Text.- +
-changed default to help packagers who reuse wide ncursesw + header file with non-wide ncurses library.
+- -
+correct result of configure option -
---without-fallbacks
, which caused FALLBACK_LIST - to be set to "no"- --with-pkg-config-libdir +
-- -
+modify
---with-pkg-config-libdir
option to - make it possible to install “.pc” files even if - pkg-config is not found. Limit - this change, to suppress the actual install if it is not - overridden to a valid directory at install time.- +
-revised option uses the actual search path from + pkg-config or pkgconf using the output from + --debug.
+- -
-disallow “no” as a possible value for -
---with-shlib-version
option, overlooked in - cleanup-changes for 20000708.- --with-ada-libname
+ +
+ --with-form-libname
+ --with-menu-libname
+ --with-panel-libname +- +
+new several --with-xxx-libname options, + to help with pkgsrc
+Portability
+Portability
Many of the portability changes are implemented via the configure script:
-
- -
- -improve configure script's
-CF_CC_ENV_FLAGS
- macro to allow for compiler wrappers such as ccache. This change moves only the - preprocessor, optimization and warning flags to -CPPFLAGS
andCFLAGS
, leaving the - residue inCC
. That happens to work for - gcc's various - “model” options, but may require tuning for other - compilers.- -
+modify ncurses-examples' configure script to use - pkg-config for the extra - form/menu/panel libraries, to be more consistent with the - handling of the curses/ncurses library.
-add a special case in the configure script to work around + one of the build-time breakages reported for OpenBSD 6 here:
-- -
add configuration checks to build with NetBSD - curses, which for example lacks -
+use_env
.++ https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+- -
change ncurses-examples to use
+attr_t
vs -chtype
to follow X/Open documentation more - closely since Solaris xpg4-curses uses different values for -WA_xxx
vsA_xxx
- that rely on attr_t being an unsigned short. Tru64 aka OSF1, - HPUX, AIX did as ncurses does, - equating the two sets.modify configure check for libtool to prevent + accidental use of an OpenBSD program which uses the same + name.
- -
modify several test programs to reflect that ncurses honors existing signal handlers in - initscr, while other implementations do not.
+modify configuration checks for build-time tic/infocmp to + use AC_CHECK_TOOL. That can still be overridden by + --with-tic-path and --with-infocmp-path + when fallbacks are used, but even if not using fallbacks, the + improved check may help with cross-compiling.
- -
add configure check for
+openpty
to - ncurses-examples' configure script, for ditto.relax modification-time comparison in + CF_LINK_FUNCS to allow it to accept link() function + with NFS filesystems which change the mtime on the link + target, e.g., several BSD systems.
- -
improve check for working
+poll
function by - usingposix_openpt
as a fallback in case there - is no valid terminal on the standard inputmodify configure check for c89/c99 aliases of + clang to use its -std option instead, + because some platforms, in particular macOS, do not provide + workable c89/c99 aliases.
- -
modify ncurses-examples' configure script to check for - pthread dependency of - ncursest or ncursestw library when building - the ncurses examples, e.g., in - case weak symbols are used.
+modify CF_NCURSES_CONFIG to work around + Xcode's c99 "-W" option, which conflicts with + conventional use for passing linker options.
- -
+add checks in ncurses-examples' configure script for some - functions neither in 4.3BSD curses, nor based on X/Open - Curses:
- --
+- -
- -modify a loop limit in firework.c to work around - absense of limit checks in some libraries.
-- -
-fill the last row of a window with - “
-?
” in firstlast if waddch does - not returnERR
on the lower-right - corner.modify configure scripts to filter out redefinitions of + _XOPEN_SOURCE, e.g., for NetBSD which generally supports 500, + but 600 is needed for ncursesw.
- +build-fixes for the Portland Group (PGI) compilers
- --
-- -
- -accept whitespace in sed expression for generating - expanded.c
-- -
- -modify configure check that g++ compiler warnings are - not used.
-- -
-add configure check for -fPIC option needed for shared - libraries.
-Here are some of the other portability fixes:
++
- -
modify configure script for clang as used on FreeBSD, to - work around clang's differences in exit codes vs gcc.
+change configure-check and source-code for gcc's noreturn + attribute to assume it is a prefix rather than suffix, + matching c11's _Noreturn convention.
- -
fixes for configure/build using clang on OSX
- --
+- -
- -do not redefine “inline” in -
-ncurses_cfg.h
; this was originally to solve - a problem with gcc/g++, but is aggravated by clang's - misuse of symbols to pretend it is gcc.- -
- -add braces to configure script to prevent unwanted - addition of “
--lstdc++
” option to - theCXXLIBS
symbol.- -
- -improve/update test-program used for checking - existence of stdc++ library.
-- -
-if
-$CXXLIBS
is set, the linkage test uses - that in addition to$LIBS
.modify mk-1st.awk to account for extra-suffix configure + option.
- -
fixes for OS/2:
- --
+- -
- -use button instead of
-kbuf[0]
in - EMX-specific part oflib_mouse.c
- -
- -support building with libtool on OS/2
-- -
- -use stdc++ library with OS/2 kLIBC
-- -
-clear configure script's
-cf_XOPEN_SOURCE
- for OS/2, to work with its header filesbuild-fix for termsort module when configured with + termcap.
- -
add “newer” baudrate symbols to the -
+baudrate
function in the ncurses library as - well as to a corresponding table in tset.modify configure script and makefiles to support ".PHONY" + make program feature.
- -
modify ncurses-examples savescreen to work with AIX and HPUX.
+amend libtool configuration to add dependency for + install.tic, etc., in ncurses/Makefile on the lower-level + libraries.
- -
define
+WIN32_LEAN_AND_MEAN
for MinGW port, - making builds faster.modify Ada95 source-generation utility to write to a file + given as parameter rather than to the standard output, + allowing builds with MinGW.
- -
add a configure check for wcwidth versus the - ncurses line-drawing - characters, to use in special-casing systems such as Solaris. - Solaris, however, requires a special case that maps Unicode - line-drawing characters into the acsc string for non-Unicode - locales. Solaris also has a misconfigured wcwidth which marks - all of the line drawing characters as double-width.
+amend tic/infocmp check to allow for the respective tool's + absence.
- -
string-hacks (non-standard):
- --
+- -
- -fix configure script to record when -
-strlcat
is found on OpenBSD.- -
- -add
---enable-string-hacks
option to - ncurses-examples' configure script.- -
- -completed string-hacks for sprintf, etc., - including the ncurses-examples programs.
-- -
-make
---enable-string-hacks
option work - with Debian by checking for the "bsd" library and its - associated "<bsd/string.h>" header.build-fixes for gnat 10.1.1, whose gnatmake drops + integration with gprbuild.
- -
workaround for Debian's antique/unmaintained version of - mawk:
- --
+- -
- -see Debian #65617, which was fixed in mawk's upstream releases in - 2009.
-- -
-related fixes when building link_test.
-correct configure version-check/warning for g++ to allow + for 10.x
Features of @@ -2412,7 +1255,7 @@ p,li { max-width:700px; }
The ncurses utilities have options to allow you to filter terminfo entries for use with less capable curses/terminfo versions such - as the HP/UX and AIX ports.
+ as the HP-UX and AIX ports. @@ -2423,10 +1266,10 @@ p,li { max-width:700px; }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).
+ 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).@@ -2468,6 +1311,11 @@ p,li { max-width:700px; } than one control sequence to map to a given key code. ++ +Support for direct-color terminals, such as modern + xterm.
+@@ -2512,19 +1360,18 @@ p,li { max-width:700px; } Support for 256-color terminals, such as modern xterm.
- The - tic/captoinfo - utility provided with ncurses - has the ability to translate many termcaps from the XENIX, - IBM and AT&T extension sets.
+The tic/captoinfo utility + provided with ncurses has the + ability to translate many termcaps from the XENIX, IBM and + AT&T extension sets.
utility is provided. A BSD-like - tset utility is provided.
+ "@HOMEPAGE@/man/tset.1.html">tset@@ -2553,24 +1400,25 @@ p,li { max-width:700px; } The table-of-entries utility - toe makes it easy for users to see exactly what - terminal types are available on the system.
+ "@HOMEPAGE@/man/toe.1m.html">toe makes it easy for users to see + exactly what terminal types are available on the system.The library meets the XSI requirement that every macro - entry point have a corresponding function which may be linked + entry point has a corresponding function which may be linked (and will be prototype-checked) if the macro definition is disabled with
#undef
.@@ -2580,14 +1428,15 @@ p,li { max-width:700px; } Extensive documentation is provided (see the - Additional Reading section of the - ncurses FAQ for online documentation).
+ "@HOMEPAGE@/ncurses.faq.html#additional_reading">Additional + Reading section of the ncurses FAQ for online + documentation).The ncurses distribution includes a selection of test programs (including a few games). These are available separately as ncurses-examples
+ "@HOMEPAGE@/ncurses-examples.html">ncurses-examplesThe ncurses library has been tested with a wide variety of applications including:
+ containing the line:-
- aptitude
+- aptitude +
- -
FrontEnd to Apt, the debian package manager
@@ -2596,37 +1445,38 @@ p,li { max-width:700px; } "https://wiki.debian.org/Aptitude">https://wiki.debian.org/Aptitude- cdk
+- cdk +
- -
Curses Development Kit
-- ded
+- ded +
- -
directory-editor
- +- dialog
+- dialog +
- -
the underlying application used in Slackware's setup, and the basis for similar install/configure applications on many systems.
- +- lynx
+- lynx +
- -
the text WWW browser
@@ -2635,16 +1485,17 @@ p,li { max-width:700px; } "https://lynx.invisible-island.net/">https://lynx.invisible-island.net/- mutt
+- mutt +
- -
mail utility
- +- ncftp
+- ncftp +
- -
file-transfer utility
@@ -2653,17 +1504,20 @@ p,li { max-width:700px; } "https://www.ncftp.com/">https://www.ncftp.com/- nvi
+- nvi +
- -
New vi uses ncurses.
- ranger
+- ranger +
- -
A console file manager with VI key bindings in @@ -2673,16 +1527,17 @@ p,li { max-width:700px; } "https://ranger.github.io/">https://ranger.github.io/
- tin
+- tin +
- -
newsreader, supporting color, MIME
- +- vifm
+- vifm +
File manager with vi like keybindings
@@ -2697,7 +1552,8 @@ p,li { max-width:700px; }@@ -2749,7 +1606,8 @@ p,li { max-width:700px; }-
- minicom
+- minicom +
- -
terminal emulator for serial modem connections
@@ -2706,25 +1562,26 @@ p,li { max-width:700px; } "https://alioth.debian.org/projects/minicom/">https://alioth.debian.org/projects/minicom/- mosh
+- mosh +
- -
a replacement for
- +ssh
.- tack
+- tack +
- -
terminfo action checker
- +- tmux
+- tmux +
- -
terminal multiplexor
@@ -2733,14 +1590,14 @@ p,li { max-width:700px; } "https://github.com/tmux/tmux/wiki">https://github.com/tmux/tmux/wiki- vile
+- vile +
- -
vi-like-emacs may be built to use the terminfo, termcap - or curses interfaces.
+vi-like-emacs may be built to use the terminfo, + termcap or curses interfaces.
- +@@ -2794,12 +1654,18 @@ p,li { max-width:700px; }-
- emacs
+- emacs +
- -
text editor
@@ -2758,7 +1616,8 @@ p,li { max-width:700px; } "https://www.gnu.org/software/emacs/">https://www.gnu.org/software/emacs/- less
+- less +
- -
The most commonly used pager (a program that @@ -2768,7 +1627,8 @@ p,li { max-width:700px; } "http://www.greenwoodsoftware.com/less/">http://www.greenwoodsoftware.com/less/
- screen
+- screen +
- -
terminal multiplexor
@@ -2777,13 +1637,13 @@ p,li { max-width:700px; } "https://www.gnu.org/software/screen/">https://www.gnu.org/software/screen/- vim
+- 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 development work is done by - Thomas Dickey. - Thomas Dickey also acts as the maintainer for the Free Software - Foundation, which holds the copyright - on ncurses.
+ the form and menu libraries. + +Ongoing development work is done by Thomas E. Dickey. Thomas + E. Dickey has acted as the maintainer for the Free Software + Foundation, which held a copyright on ncurses for + releases 4.2 through 6.1. Following the release of ncurses 6.1, + effective as of release 6.2, copyright for ncurses reverted to + Thomas E. Dickey (see the ncurses FAQ for + additional information).
Contact the current maintainers at
@@ -2812,8 +1678,8 @@ p,li { max-width:700px; }bug-ncurses-request@gnu.org -containing the line: - +@@ -2822,15 +1688,25 @@ p,li { max-width:700px; }
subscribe
<name>@<host.domain>This list is open to anyone interested in helping with the development and testing of this package.
-Beta versions of ncurses and - patches to the current release are made available at
+Beta versions of ncurses are + made available at
+ +ftp://ftp.invisible-island.net/ncurses/ + "ftp://ftp.invisible-island.net/ncurses/current/">ftp://ftp.invisible-island.net/ncurses/current/ and
+ "https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/ . +
https://invisible-mirror.net/archives/ncurses/ .Patches to the current release are made available at
+ ++ftp://ftp.invisible-island.net/ncurses/6.2/ + and
+ https://invisible-mirror.net/archives/ncurses/6.2/ .There is an archive of the mailing list here:
@@ -2849,30 +1725,28 @@ p,li { max-width:700px; } which may be interesting by themselves:-
- - ncurses licensing
+- ncurses licensing
-- Symbol - versioning in ncurses
+- Symbol versioning + in ncurses
-- Comments - on ncurses versus Comments on + ncurses versus slang (S-Lang)
-- tack – - terminfo action checker
+- Comments on + OpenBSD
-- tctest - – termcap library checker
+- tack – terminfo action + checker
+ +- tctest – termcap + library checker
- - Terminal Database
+ "@HOMEPAGE@/ncurses.html#download_database">Terminal + DatabaseOther @@ -2889,7 +1763,10 @@ p,li { max-width:700px; }
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.