X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=announce.html.in;h=ebeee52430fef983cc92630e4106409d17f3a21a;hb=9e084820c3f396f861b2cb74fbd5fc15aa10b6bc;hp=a07dc0573325af8767c15c096578add499bccacf;hpb=761e4f0825b330e970558e82a4bd638383914429;p=ncurses.git diff --git a/announce.html.in b/announce.html.in index a07dc057..ebeee524 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,7 +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.
+The ncurses (new curses) + library is a free software emulation of curses in System V + Release 4.0 (SVr4), and more. It uses terminfo format, supports + pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SVr4-curses + enhancements over BSD curses. SVr4 curses 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 -The ncurses distribution is available via anonymous FTP at the
- GNU distribution site ftp://ftp.gnu.org/gnu/ncurses/ .
+
This release is designed to be upward compatible from ncurses - 5.0 through 5.8; very few applications will require - recompilation, depending on the platform. These are the - highlights from the change-log since ncurses 5.8 release.
+This is a bug-fix release, correcting a small number of urgent - problems in the ncurses library from the 5.8 release.
+It also improves the Ada95 binding:
+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.
-Full manual pages are provided for the library and tools.
+ +The ncurses distribution is + available at ncurses' homepage:
+ +++ +https://invisible-island.net/archives/ncurses/ + or
+
+ https://invisible-mirror.net/archives/ncurses/ .
It is also available at the GNU distribution site
+ ++ ++ +
These notes are for ncurses + @VERSION@, released December 31, 2022.
+ +This release is designed to be source-compatible with + ncurses 5.0 through 6.3; 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 robustness issues. The + release notes also mention some other bug-fixes, but are focused + on new features and improvements to existing features since + ncurses 6.3 release.
+ +The ncurses package is fully compatible with SVr4 (System V - Release 4) curses:
+There are no new features in this release.
+ +These are improvements to existing features:
modify delscreen to more effectively delete all + windows on the given screen.
+modify wnoutrefresh to call pnoutrefresh + if its parameter is a pad, rather than treating it as an + error, and modify new_panel to permit its window-parameter to + be a pad
+modify curses_trace() to show the trace-mask as symbols, + e.g., TRACE_ORDINARY, DEBUG_LEVEL(3).
+improve checks for valid mouse events when an intermediate + mouse state is not part of the mousemask specified by the + caller
+allow extended-color number in opts parameter of + wattr_on.
+improve _tracecchar_t2 formatting of + base+combining character.
+trim out some unwanted linker options from ncurses*config + and .pc files seen in Fedora 36+.
+improve shell-scripts with shellcheck
+improve use of "trap" in shell scripts, using a + script.
+modify make-tar.sh scripts to make timestamps + more predictable.
+The ncurses package also has many useful extensions over - SVr4:
+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
.modify misc/gen-pkgconfig.in to allow for the + case where the library directory does not yet exist, since + this is processed before doing an install
+set trailing null on string passed from winsnstr + to wins_nwstr.
+modify waddch_literal to allow for double-width + base character when merging a combining character
+Several improvements were made to the + utility programs:
+ +Along with the library and utilities, improvements were made + to the ncurses-examples. Most of + this activity aimed at improving the test-packages:
+ +add minimal -h (usage) and -V (version) + getopt logic to all ncurses-examples programs.
+fix an error in "@" command in test/ncurses.c + F-menu
+add curses_trace to ifdef's for START_TRACE in + test/test.priv.h
+improve pthread-configuration for test/worm.c
+add setlocale call to several test-programs.
+workaround in test/picsmap.c for use of floating + point for rgb values by ImageMagick 6.9.11, which appears to + use the wrong upper limit.
+use static libraries for AdaCurses test-package for + Mageia, since no gprbuild package is available.
+install Ada95 sample programs in libexecdir, adding a + wrapper script to invoke those.
+Numerous bugs present in earlier versions have been fixed; the - library is far more reliable than it used to be. Bounds checking - in many `dangerous' entry points has been improved. The code is - now type-safe according to gcc -Wall. The library has been - checked for malloc leaks and arena corruption by the Purify - memory-allocation tester.
+install ncurses-examples programs in libexecdir, adding a + wrapper script to invoke those.
+The ncurses code has been tested with a wide variety of - applications including (versions starting with those noted):
+There are other new demo/test programs and reusable + examples:
There are several new terminal descriptions:
-There are many changes to existing terminal descriptions. Some + were updates to several descriptions:
+ +make description-fields distinct
+fix errata in description fields
+add/use several building-blocks:
-while others affected specific descriptions. These were + retested, to take into account changes by their developers:
+ + + +while these are specific fixes based on reviewing + documentation, user reports, or warnings from tic:
+ +as well as some that use ncurses for the terminfo support - alone:
+A few entries use extensions (user-defined terminal + capabilities):
+ +use ansi+enq and decid+cpr in cases + where the terminal probably supported the u6-u9 extension
+remove u6-u9 from teken-2018
+use NQ to flag entries where the terminal does + not support query and response
+add/use bracketed+paste + to help identify terminals supporting this xterm feature
+modify samples for xterm mouse 1002/1003 modes to use 1006 + mode, and also provide for focus in/out responses
+xterm patch #371 supports DEC-compatible status-line. add + dec+sl to xterm-new, per xterm #371, add xterm-p371, + add xterm-p370, + for use in older terminals, and set “xterm-new” + to “xterm-p370” (to ease adoption).
+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:
+ +remove a stray '/' from description of %g in + + terminfo(5).
+correct/improve font-formatting in curs_getch.3x, as + well as other manual pages.
+New/improved history and portability sections:
+ +add portability notes for delscreen + and delwin + in manual.
+improve curs_slk.3x + discussion of extensions and portability
+Other improvements:
+ +improve curs_bkgd.3x, + explaining that bkgdset can affect results for + bkgd
+add note on portable memory-leak checking in curs_memleaks.3x
+expanded description in resizeterm.3x
+add section on releasing memory to + curs_termcap.3x and + curs_terminfo.3x manpages.
+add clarification of the scope of dynamic variables in + terminfo(5).
+improve formatting of ncurses-intro.html + and hackguide.html
+improve curs_clear.3x + links to other pages
+update ncurses-howto, + making documentation fixes along with corrections to + example programs.
+use newer version 1.36 of gnathtml for generating Ada + html files.
+update external links in Ada95.html
+There are no new manual pages (all of the manual page updates + are to existing pages).
+ +While there were many bugs fixed during development of ncurses + 6.4, 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 those dealing with memory leaks and + buffer overflows. Although the utilities are designed for + text files (which they do properly), some choose to test + them with non-text files.
+ +Text files contain no embedded nulls. Also, they end with + a newline. Feeding tic non-text files + exposed a few cases where the program did not check for those + issues. As a result, further processing of the input found + limit-checks whose assumptions were invalid.
+Fixing the limit-checks (first) found a problem with + tic managing the list of strings in a + terminal description. In merging two terminal descriptions + (i.e., the “use=” feature), tic + was not allocating a complete copy. A quick repair for that + introduced a memory leak.
+The checks for non-text files are improved (i.e., embedded + nulls in the input file will cause tic to + reject it rather than attempting to process it).
+The string allocations in tic are + likewise improved.
+There are no major changes. No new options were added. Several + improvements were made to configure checks.
+ +There are a few new/modified configure options:
add ABI 7 defaults to configure script.
+add warning in configure script if file specified for + “--with-caps” does not exist.
+bzip2 and xz compression are now supported
+add check/warning in configure script if option + “--with-xterm-kbs” is missing or + inconsistent
+The ncurses distribution includes a selection of test programs - (including a few games).
+Many of the portability changes are implemented via the + configure script:
-Zeyd Ben-Halim started it 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.
+amend configure option's auto-search to account for + systems where none of the directories known to + pkg-config exist
+To join the ncurses mailing list, please write email to
- bug-ncurses-request@gnu.org
containing the line:
- subscribe <name>@<host.domain> -+
corrected regex needed for older pkg-config used + in Solaris 10
+improve handling of --with-pkg-config-libdir + option, allowing for the case where either + $PKG_CONFIG_LIBDIR or the option value has a + colon-separated list of directories
+if the --with-pkg-config-libdir option is not + given, use ${libdir}/pkgconfig as a default
+improve search-path check for pkg-config, e.g., + for Debian testing which installs pkg-config with + architecture-prefixes.
+build-fix for cross-compiling to MingW, conditionally add + -lssp
+improve configure check for getttynam
+fixes to build with dietlibc:
+ +modify configure macro CF_BUILD_CC to check if + the build-compiler works, rather than that it is different + from the cross-compiler, e.g., to accommodate a compiler + which can be used for either purpose with different flags
+modify configure/scripts to work around interference by + GNU grep 3.8
+Here are some of the other portability fixes:
+ +change man_db.renames to template, to handle + ncurses*-config script with the + --extra-suffix configure option.
+update CF_XOPEN_SOURCE macro, adding variants + “gnueabi" and “gnueabihf" to get + _DEFAULT_SOURCE special case, as well as adding GNU + libc suffixes for “abi64”, “abin32”, + “x32” to distinguish it from other libc + flavors.
+work around musl's nonstandard use of feature + test macros by adding a definition for + NCURSES_WIDECHAR to the generated “.pc” + and *-config files.
+use “command -v” rather than + “type” in Ada95/gen/Makefile.in + to fix a portability issue.
+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 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
+ +++ +https://invisible-island.net/archives/ncurses/current/ + and
+
+ https://invisible-mirror.net/archives/ncurses/current/ .
Patches to the current release are made available at
+ ++https://invisible-island.net/archives/ncurses/6.3/ + and
+
+ https://invisible-mirror.net/archives/ncurses/6.3/ .
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:
We need people to help with these projects. If you are - interested in working on them, please join the ncurses list.
+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. + +