X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=announce.html.in;h=caaa2899b0e3f527478d3dd22ca072aa6c8c39d6;hb=f399f54c6c4ea2143afcbf704ce9af0be52b63fc;hp=c73a5dd2c04976c1e06bc4e3fdaf1e440ebdde7a;hpb=3c19a91c36092255fbac7de00e3db8830aefc053;p=ncurses.git diff --git a/announce.html.in b/announce.html.in index c73a5dd2..caaa2899 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,8 +1,7 @@ - - +
- + "HTML Tidy for HTML5 for Linux version 5.6.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. + +Since 1995, ncurses has been + ported to many systems:
-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!
+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.
+ including + +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 October 21, 2021.
+ +This release is designed to be source-compatible with + 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 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 ncurses distribution is available via anonymous FTP at the
- GNU distribution site ftp://ftp.gnu.org/gnu/ncurses/ .
+
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.2 release.
- It is also available at ftp://invisible-island.net/ncurses/ . +This is a bug-fix release, correcting a small number of urgent - problems in the ncurses library from the 5.8 release.
+There are a few new features:
+ +A new (experimental) driver, for the Windows Terminal + configuration is provided.
+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).
+Additionally, to improve performance other changes (and + extensions) are provided in this release:
+ +modify lib_mouse.c to check for out-of-range button + numbers, convert those to position reports.
+add sp-funcs for + erasewchar, + killwchar.
+These are revised features:
+ +It also improves the Ada95 binding:
+These were done to limit or ultimately deprecate features:
Those were a proof of concept. For the 5.9 release, those - scripts are augmented with rpm- and dpkg-scripts used in test - builds against a variety of gnat- and system ncurses versions - as old as gnat 3.15 and ncurses 5.4 (see snapshots and - systems tested here.
-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.
+reduce build-warnings by excluding ncurses-internals from + deprecation warnings.
+These are improvements to existing features:
drop symbols GCC_PRINTF and GCC_SCANF + from <curses.h>, to simplify use.
+apply gcc format attribute to prototypes which use a + va_list parameter rather than a “...” + variable-length parameter list.
+modify <term.h> so that it is not necessary to + include <curses.h> before <term.h>.
+provide for wide-characters as background character in + wbkgrnd
+improve parameter-checking for tparm, adding function + _nc_tiparm() to handle the most-used case, which accepts only + numeric parameters.
+use return-value from vsnprintf to reallocate as + needed to allow for buffers larger than the screen size.
+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.
+These are corrections to existing features:
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
.add a check to guard against repeat_char emitting + digits which could be interpreted as BSD-style padding when + --enable-bsdpad is configured.
+check for screen size-change in scr_init and + scr_restore, in + case a screen dump does not match the current screen + dimensions
+The ncurses code has been tested with a wide variety of - applications including (versions starting with those noted):
+Several improvements were made to the + utility programs:
implement “+m” option
+add check for duplicate “use=” + clauses.
+add check to report instances where tparm + would detect an error in an expression.
+add user-defined capabilities from mintty to + Caps-ncurses, for checking consistency.
+improve warning when oc/op do not mention SGR 39/49
+ for xterm compatible XT
flag.
improve checks for number of parameters of
+ smglp
, smgrp
,
+ smgtp
, and smgbp
.
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.
+modify output of “toe -as” to + show first description found rather than the last.
+add a check to ensure that a “termcap + file” is text rather than binary.
+modify to allow multiple commands per line.
+improve parameter-checking by analyzing all extended
+ string capabilities, e.g., as used in the Cs
+ and Ms
capabilities of the tmux
+ description.
make warning messages consistently using alias names + when those are used, rather than the underlying program's + name.
+improve usage message for aliases such as + clear, by eliminating tput-specific + portions.
+modify initialization to avoid opening + /dev/tty for cases other than + reset/init, e.g., for clear.
+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:
-add “-r” option to the dots + test-programs, to help with scripting a performance + comparison.
+build-fix for test_opaque, for configurations + without opaque curses structs, e.g., ncurses 5.7.
+improve tracemunch logic for "RUN" + compaction.
+improve tracemunch's coverage of form/menu/panel + libraries.
+improve tracemunch's checking/reporting the type + for the first parameter, e.g., "WINDOW*" rather than + "#1".
+modify tracemunch and the panel library to show + readable traces for panel- and user-pointers.
+There are other new demo/test programs and reusable + examples:
-There are several new terminal descriptions:
+ +++ +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.
+
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:
+ +++ +kitty+common, + mlterm3, + ms-terminal
+
while these are specific fixes based on reviewing + documentation, user reports, or warnings from tic:
+ +A few entries use extensions (user-defined terminal + capabilities):
+ +As usual, this release
+ +improves documentation by describing new features,
+attempts to improve the description of features which + users have found confusing
+fills in overlooked descriptions of features which were + described in the NEWS file + but treated sketchily in manual pages.
+In addition to providing background information to explain + these features and show how they evolved, there are corrections, + clarifications, etc.:
+ +Corrections:
+ +make opts extension for getcchar + work as documented for ncurses + 6.1, adding “-g” flag to + demo_new_pair to illustrate.
+modify tset + “-q” option to refrain from modifying + terminal modes, to match the documentation.
+New/improved history and portability sections:
+ +improve documentation for + tparm and static/dynamic variables.
+add history note to curs_scanw.3x + for <stdarg.h> and <varargs.h>
+add history note to curs_printw.3x + for <stdarg.h> and <varargs.h>
+add portability note to ncurses.3x + regarding <stdarg.h>
+add historical notes to tput, + + curses-terminfo and curses-color + manpages based on source-code for SVr2, SVr3 and + SVr4.
+improve history section for tset manpage + based on the 1BSD tarball, which preceded BSD's SCCS + checkins by more than three years.
+Other improvements:
+ +explain in + ncurses.3x that functions in the tinfo library do not + rely upon wide-characters.
+improve manual page for panel + library, extending the portability section as well as + documenting error-returns.
+add section on margins to terminfo.5, + adapted from X/Open Curses.
+improve man/term.5 + section on legacy storage format.
+add a note in + terminfo.5 explaining that no-parameter strings such + as sgr0 or cnorm + should not be used with tparm.
+improve description of BSD-style padding in curs_termcap.3x
+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.
+ +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:
+ +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.
+remove output-related checks for nl/nonl (also + + reported on the mailing list).
+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.
+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:
new configure option and check for gcc + -fvisibility=hidden feature
+corrected to allow turning leak-checking off later in a + set of options.
+new configure option makes the _Noreturn
+ keyword optional to ease transition.
revised option also controls whether $LDFLAGS
+ from the build is provided in “-config”
+ and “.pc” files.
add configure option which tells ncurses to disallow most + file-opens by setuid processes.
+changed default to help packagers who reuse wide ncursesw + header file with non-wide ncurses library.
+revised option uses the actual search path from + pkg-config or pkgconf using the output from + --debug.
+new several --with-xxx-libname options, + to help with pkgsrc
+The ncurses distribution includes a selection of test programs - (including a few games).
+Many of the portability changes are implemented via the + configure script:
+ +add a special case in the configure script to work around + one of the build-time breakages reported for OpenBSD 6 here:
+ ++++ https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+
modify configure check for libtool to prevent + accidental use of an OpenBSD program which uses the same + name.
+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.
+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.
+modify 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 CF_NCURSES_CONFIG to work around + Xcode's c99 "-W" option, which conflicts with + conventional use for passing linker options.
+modify configure scripts to filter out redefinitions of + _XOPEN_SOURCE, e.g., for NetBSD which generally supports 500, + but 600 is needed for ncursesw.
+Here are some of the other portability fixes:
+ +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.
+modify mk-1st.awk to account for extra-suffix configure + option.
+build-fix for termsort module when configured with + termcap.
+modify configure script and makefiles to support ".PHONY" + make program feature.
+amend libtool configuration to add dependency for + install.tic, etc., in ncurses/Makefile on the lower-level + libraries.
+modify Ada95 source-generation utility to write to a file + given as parameter rather than to the standard output, + allowing builds with MinGW.
+amend tic/infocmp check to allow for the respective tool's + absence.
+build-fixes for gnat 10.1.1, whose gnatmake drops + integration with gprbuild.
+correct configure version-check/warning for g++ to allow + for 10.x
+The ncurses package is fully + upward-compatible with SVr4 (System V Release 4) curses:
+ +All of the SVr4 calls have been implemented (and are + documented).
+ncurses supports all of the + for SVr4 curses features including keyboard mapping, color, + forms-drawing with ACS characters, and automatic recognition + of keypad and function keys.
+ncurses provides these SVr4 + add-on libraries (not part of X/Open Curses):
+ +the panels library, supporting a stack of windows with + backing store.
+the menus library, supporting a uniform but flexible + interface for menu programming.
+the form library, supporting data collection through + on-screen forms.
+ncurses's terminal database + is fully compatible with that used by SVr4 curses.
+ +ncurses supports + user-defined capabilities which it can see, but which are + hidden from SVr4 curses applications using the + same terminal database.
+It can be optionally configured to match the format + used in related systems such as AIX and Tru64.
+Alternatively, ncurses + can be configured to use hashed databases rather than the + directory of files used by SVr4 curses.
+The ncurses utilities have + options to allow you to filter terminfo entries for use with + less capable curses/terminfo versions such + as the HP-UX and AIX ports.
+The ncurses package also has + many useful extensions over SVr4:
+ +The API is 8-bit clean and base-level conformant with the + X/OPEN curses specification, XSI curses (that is, it + implements all BASE level features, and most + EXTENDED features). It includes many function calls + not supported under SVr4 curses (but portability of all calls + is documented so you can use the SVr4 subset only).
+Unlike SVr3 curses, ncurses + can write to the rightmost-bottommost corner of the screen if + your terminal has an insert-character capability.
+Ada95 and C++ bindings.
+Support for mouse event reporting with X Window xterm and + FreeBSD and OS/2 console windows.
+Extended mouse support via Alessandro Rubini's gpm + package.
+The function wresize
allows you to resize
+ windows, preserving their data.
The function use_default_colors
allows you to
+ use the terminal's default colors for the default color pair,
+ achieving the effect of transparent colors.
The functions keyok
and
+ define_key
allow you to better control the use
+ of function keys, e.g., disabling the ncurses KEY_MOUSE, or by defining more
+ than one control sequence to map to a given key code.
Support for direct-color terminals, such as modern + xterm.
+Support for 256-color terminals, such as modern xterm.
+Support for 16-color terminals, such as aixterm + and modern xterm.
+Better cursor-movement optimization. The package now + features a cursor-local-movement computation more efficient + than either BSD's or System V's.
+Super hardware scrolling support. The screen-update code
+ incorporates a novel, simple, and cheap algorithm that
+ enables it to make optimal use of hardware scrolling,
+ line-insertion, and line-deletion for screen-line movements.
+ This algorithm is more powerful than the 4.4BSD curses
+ quickch
routine.
Real support for terminals with the magic-cookie glitch. + The screen-update code will refrain from drawing a highlight + if the magic- cookie unattributed spaces required just before + the beginning and after the end would step on a non-space + character. It will automatically shift highlight boundaries + when doing so would make it possible to draw the highlight + without changing the visual appearance of the screen.
+It is possible to generate the library with a list of + pre-loaded fallback entries linked to it so that it can serve + those terminal types even when no terminfo tree or termcap + file is accessible (this may be useful for support of + screen-oriented programs that must run in single-user + mode).
+The 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 has 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 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 +
+ +- +
+ +FrontEnd to Apt, the debian package manager
+ + +- cdk +
+ +- +
+ +Curses Development Kit
+ + +- ded +
+ +- +
+ +directory-editor
+ + +- dialog +
+ +- +
+ +the underlying application used in Slackware's setup, + and the basis for similar install/configure applications on + many systems.
+ + +- lynx +
+ +- +
+ +the text WWW browser
+ + +- mutt +
+ +- +
+ +mail utility
+ + +- ncftp +
+ +- +
+ +file-transfer utility
+ + +- nvi +
+ +- +
+ +New vi uses ncurses.
+ + +- ranger +
+ +- +
+ +A console file manager with VI key bindings in + Python.
+ + +- tin +
+ +- +
+ +newsreader, supporting color, MIME
+ + +- vifm +
+ +- +
+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
+ + +- 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 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
+ ++ 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.2/ + and
+
+ https://invisible-mirror.net/archives/ncurses/6.2/ .
There is an archive of the mailing list here:
-http://lists.gnu.org/archive/html/bug-ncurses - (also https)
++-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. + +