X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fannounce.html;h=51433167009c0f15554f6c81a02ded012ae2b074;hb=d1a029866f6d84087781eaa81de19949d8533426;hp=234c703145a7d570ee8e7ade5c2758068ea438c4;hpb=e70a86c3d48b8cbad0f6d1c33ba5b027a243834e;p=ncurses.git diff --git a/doc/html/announce.html b/doc/html/announce.html index 234c7031..51433167 100644 --- a/doc/html/announce.html +++ b/doc/html/announce.html @@ -1,8 +1,7 @@ - - -
-- -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.
- -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.
-
-The ncurses distribution is available via anonymous FTP at
-the GNU distribution site
-ftp://ftp.gnu.org/gnu/ncurses/ .
-
It is also available at
-ftp://invisible-island.net/ncurses/ .
-
-
-Interface changes: -
NCURSES_OPAQUE
symbol to curses.h, will
- use to make structs opaque in selected configurations.
-
- NCURSES_EXT_FUNCS
and
- NCURSES_EXT_COLORS
symbols to curses.h to make
- it simpler to tell if the extended functions and/or colors
- are declared.
-
- adacurses-config
to the Ada95 install.
-
- -f
option to format spaces as
- \s
to prevent them from being lost when that
- is read back in unformatted strings.
-
- tack
program is now distributed separately
- from ncurses.
- Eterm-256color
,
- Eterm-88color
and
- rxvt-88color
- aterm
- konsole-256color
- mrxvt
- screen.mlterm
- screen.rxvt
- teraterm4.59
is now the primary primary
- teraterm entry, renamed original to
- teraterm2.3
- 9term
terminal
- gnome
to version 2.22.3
- h19
, z100
- konsole
to version 1.6.6
- mlterm
, mlterm+pcfkeys
- xterm
, and building-blocks for function-keys
- to xterm patch #230.
- konsole
terminfo entry).
-
- mk-1st.awk
so the generated makefile rules for
- linking or installing shared libraries do not first remove the
- library, in case it is in use, e.g., libncurses.so
by
- /bin/sh
.
-
- win_wchnstr()
to ensure that only a base cell
- is returned for each multi-column character.
-
- waddch()
and winsch()
handling of
- EILSEQ from mbrtowc()
by using unctrl()
- to display illegal bytes rather than trying to append further bytes
- to make up a valid sequence.
-
- curs_set()
state after
- endwin()
/refresh()
-
- keyname()
to use "^X" form only if
- meta()
has been called, or if keyname()
- is called without initializing curses, e.g., via
- initscr()
or newterm()
.
-
- unctrl()
to check codes in 128-255 range versus
- isprint()
.
- If they are not printable, and locale was set, use a "M-" or "~"
- sequence.
-
- resizeterm()
by moving ripped-off lines, and
- repainting the soft-keys.
-
- NCURSES_MOUSE_MASK()
in definition of
- BUTTON_RELEASE()
, etc., to make those work properly
- with the --enable-ext-mouse
configuration
-
- strndup
.
-
- MKlib_gen.sh
from '%' to '@', to
- avoid substitution by IBM xlc to '#' as part of its extensions to
- digraphs.
- wcrtomb()
, making it work on
- Solaris. This is used in the form library to determine the length
- of the buffer needed by field_buffer
.
- 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.
-#undef
.
-- -The ncurses code has been tested with a wide variety of applications -including (versions starting with those noted): -
- -The ncurses distribution includes a selection of test programs (including -a few games). - -
-
-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/ . - -
- -You can find lots of information on terminal-related topics -not covered in the terminfo file at -Richard Shuford's -archive . - - - + + +
+ +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.
+ +Since 1995, ncurses has been + ported to many systems:
+ +The distribution includes the library and support utilities, + including
+ +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 + 6.4, 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.
+ +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.
+These are corrections to existing features:
+ +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.
+install ncurses-examples programs in libexecdir, adding a + wrapper script to invoke those.
+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:
+ +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
+Many of the portability changes are implemented via the + configure script:
+ +amend configure option's auto-search to account for + systems where none of the directories known to + pkg-config exist
+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 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)
+
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, 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 . The collection of computer + manuals at bitsavers.org has also been + useful.
+ + + +