X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=announce.html.in;h=ebeee52430fef983cc92630e4106409d17f3a21a;hb=91494ab0071e71177728916199a406768f5ef963;hp=84b9d4297de5879a7d15349313114813d6c657fa;hpb=7884aa084f9440fd964f14fe31853a5f85db5104;p=ncurses.git diff --git a/announce.html.in b/announce.html.in index 84b9d429..ebeee524 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,7 +1,7 @@ -
- + "HTML Tidy for HTML5 for Linux version 5.6.0">-ftp://ftp.invisible-island.net/ncurses/ + "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/ or
https://invisible-mirror.net/archives/ncurses/ .
It is also available via anonymous FTP at the GNU distribution - site
+It is also available at the GNU distribution site
+ "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/ .
These notes are for ncurses - @VERSION@, released February 12, 2020.
+ @VERSION@, released December 31, 2022.This release is designed to be source-compatible with - ncurses 5.0 through 6.1; providing + 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 @@ -173,292 +169,73 @@ this announcement.
The most important - bug-fixes/improvements dealt with user-defined capabilities - in terminal descriptions. The release notes also mention some - other bug-fixes, but are focused on new features and improvements - to existing features since ncurses - 6.1 release.
+ 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 several new features:
- -O_EDGE_INSERT_STAY - tells the form library to optionally delay cursor movement on - a field edge/boundary
-O_INPUT_FIELD - extension to form library allows a dynamic field to shrink if - the new limit is smaller than the current field size.
-added exit_curses and - exit_terminfo to - replace internal symbols for leak-checking.
-added curses_trace, - to replace trace().
-Additionally, to improve performance other changes (and - extensions) are provided in this release:
- -mouse decoding now handles shift/control/alt logic when - decoding xterm's 1006 mode
-ncurses now defines a limit for wgetnstr, wgetn_wstr when - length is negative or “too large”.
-there is now no buffer-size limit when reading the - $TERMCAP - variable.
-the $TERMCAP - variable may be interpreted as a fallback to a terminfo - entry
-- mvcur now decides whether to use hard-tabs, using - xt, tbc - and hts as clues.
-extended colors are improved by modifying an internal call - to - vid_puts to pass extended color pairs e.g., from - tty_update.c and lib_mvcur.c
-the initialization functions now avoid - relying upon persistent data for the result from getenv
-scrolling is improved:
- -improved loop limits in _nc_scroll_window - handle a case where the scrolled data is a pad which is - taller than the window.
-There are no new features in this release.
These are revised features:
- -used “const” in some prototypes - rather than NCURSES_CONST where X/Open Curses was - updated to do this, e.g., wscanw, newterm, - the terminfo interface. Also use “const” - for consistency in the termcap interface, which was withdrawn - by X/Open Curses in Issue 5 (2007). As of Issue 7, X/Open - Curses still lacks “const” for certain - return values, e.g., keyname.
-modified wbkgd - and wbkgrnd - to improve compatibility with SVr4 curses, changing the way - the window rendition is updated when the background character - is modified
-improved terminfo write/read by modifying the fourth item - of the extended header to denote the number of valid strings - in the extended string table (see term(5)).
-modified the initialization checks for mouse so that the - xterm+sm+1006 - block will work with terminal descriptions not mentioning - xterm.
-These were done to limit or ultimately deprecate features:
- -deprecated safe-sprintf, since the - vsnprintf function, which does what was needed, was - standardized long ago.
-marked vwprintw - and vwscanw as deprecated; recommend using vw_printw - and vw_scanw, respectively.
-added deprecation warnings for internal functions called - by older versions of tack.
-removed unused _nc_import_termtype2 function.
-These are improvements to existing features:
check parameter of set_escdelay, - return ERR if negative.
+modify delscreen to more effectively delete all + windows on the given screen.
check parameter of set_tabsize, return - ERR if not greater than zero
+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
correct a status-check in _nc_read_tic_entry() so that if - reading a hex/b64 $TERMINFO, - and the $TERM - does not match, fall-through to the compiled-in search - list.
+modify curses_trace() to show the trace-mask as symbols, + e.g., TRACE_ORDINARY, DEBUG_LEVEL(3).
amend check for - repeat_char to handle a case where setlocale() was - called after initscr
+improve checks for valid mouse events when an intermediate + mouse state is not part of the mousemask specified by the + caller
move macro for is_linetouched - inside NCURSES_NOMACROS - ifndef.
+allow extended-color number in opts parameter of + wattr_on.
use _nc_copy_termtype2 rather than direct - assignment in setupterm, - in case it is called repeatedly using fallback terminfo - descriptions
+improve _tracecchar_t2 formatting of + base+combining character.
improve workaround for Solaris wcwidth versus line-drawing - characters
+trim out some unwanted linker options from ncurses*config + and .pc files seen in Fedora 36+.
add checks in repair_subwindows - to keep the current position and scroll-margins inside the - resized subwindow.
+improve shell-scripts with shellcheck
correct a buffer-limit in write_entry.c for - systems that use caseless filenames.
+improve use of "trap" in shell scripts, using a + script.
improved build-time utility report_offsets:
- -add categories, e.g., "w" for wide-character, "t" for - threads to make the report more readable. Reorganized the - structures reported to make the categories more - apparent.
-add NCURSES_GLOBALS and - NCURSES_PRESCREEN to report to show how similar - the different libtinfo configurations are.
-modified some header files to ensure that those include - necessary files except for the previously-documented - cases
-added some traces in initialization to show whether a - fallback entry is used.
-made minor optimization to reduce calls to - _nc_reserve_pairs
+modify make-tar.sh scripts to make timestamps + more predictable.
fix a special case in PutAttrChar where a cell is - marked as alternate-character set, but the terminal does not - actually support the given graphic character. This would - happen in an older terminal such as vt52, which - lacks most line-drawing capability.
+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
corrected flag for "seq" method of db 1.8.5 interface, - needed by toe on some of the BSDs.
+set trailing null on string passed from winsnstr + to wins_nwstr.
modify comparison in make_hash.c to correct a special case - in collision handling for Caps-hpux11
-add extended_slk_color{,_sp} symbols to the appropriate - package/*.{map,sym} files
-modify lib_setup to avoid calling pthread_self() without - first verifying that the address is valid, i.e., for weak - symbols
-add a couple of broken-linker symbols to the list of - versioned symbols to help with link-time optimization versus - weak symbols.
+modify waddch_literal to allow for double-width + base character when merging a combining character
Several improvements were made to the utility programs:
+Several improvements were made to the + utility programs:
Several changes were made to the generated ncurses*config - scripts and the analogous “.pc” files to - reduce differences between the configurations they report:
+Along with the library and utilities, improvements were made + to the ncurses-examples. Most of + this activity aimed at improving the test-packages:
modified the ncurse*-config and pc-files to more closely - match for the -I and -l options.
+add minimal -h (usage) and -V (version) + getopt logic to all ncurses-examples programs.
filtered out linker-specs from the --libs - report.
+fix an error in "@" command in test/ncurses.c + F-menu
amended the ncurses*-config and pc-files to take into - account the rpath hack which differed between those - files.
+add curses_trace to ifdef's for START_TRACE in + test/test.priv.h
modified generated ncurses*config and ncurses.pc, - ncursesw.pc, etc., to list helper libraries such as gpm for - static linking.
+improve pthread-configuration for test/worm.c
Along with the library and utilities, improvements were made - to the ncurses-examples. Most of - this activity aimed at improving the test-packages. A few changes - are more generally useful, e.g., for the main ncurses - test-program, and for analyzing traces using the - tracemunch script:
- -improve recovery from error when reading command-character - in test/ncurses.c, showing the relevant error - message and not exiting on EINTR.
+add setlocale call to several test-programs.
improve tracemunch, by keeping track of - TERMINAL* values, and if tracing was first turned on - after initialization, attempt to show distinct screen, window - and terminal names anyway.
+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.
modify tracemunch to accept filename parameters - in addition to use as a pipe/filter.
+use static libraries for AdaCurses test-package for + Mageia, since no gprbuild package is available.
update tracemunch to work with perl - 5.26.2, which changed the rules for escaping regular - expressions.
+install Ada95 sample programs in libexecdir, adding a + wrapper script to invoke those.
add some checks in tracemunch for undefined - variables.
-modify TurnOn/TurnOff macros (in - lib_vidattr.c and lib_vid_attr.c) to avoid expansion of - “CUR” in trace.
+install ncurses-examples programs in libexecdir, adding a + wrapper script to invoke those.
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.
+There are several new terminal descriptions:
add “-l” option to test/background, - to dump screen contents in a form that lets different curses - implementations be compared.
+add “@” command to test/ncurses - F-test, to allow rapid jump to different character pages.
+added enum, regex examples to test/demo_forms
+amend Scaled256() macro in test/picsmap.c to cover the - full range 0..1000
+corrected pathname used in Ada95 sample programs for - explain.txt, to work with test-packages, and used an - awk script to split the resulting pathname when it would be - too long for a single line.
+ignore interrupted system-call in test/ncurses's - command-line, e.g., if the terminal were resized.
+There are many changes to existing terminal descriptions. Some + were updates to several descriptions:
+improved ifdef's for TABSIZE variable, to help - with AIX/HPUX ports.
+make description-fields distinct
fix errata in description fields
+There are several new terminal descriptions:
+add/use several building-blocks:
--+alacritty, domterm, kitty, - mintty, mintty-direct, ms-terminal, - n7900, nsterm-build309, - nsterm-direct, screen5, ti703, - ti707, ti703-w, ti707-w - vscode, vscode-direct, xterm-mono, - xterm.js
-
There are many changes to existing terminal descriptions. Some - were updates to several descriptions:
+while others affected specific descriptions. These were retested, to take into account changes by their developers:
--+terminator, st
-
while these are specific fixes based on reviewing
documentation, user reports, or warnings from
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).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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.
+Clarify in manual pages that vwprintw
- and vwscanw
- are obsolete.
- They have not been part of X/Open Curses since 2007.
New/improved history and portability sections:
Improvements for user_caps.5:
- -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).
-Some of the improvements are more subtle, relating to the way - the information is presented. For instance, the generated - terminfo.5 file uses a different table layout, allowing it to use - space on wide terminals more effectively.
-While there were many bugs fixed during development of ncurses - 6.2, only a few (the reason for this release) were both important + 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.
+ are detailed in the NEWS file no elaboration is + needed here. -The interesting bugs were in tic/infocmp's handling of - user-defined capabilities. These were not recent bugs. Initially - it was a simple problem:
+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.
One of simpleterm's contributors copied some definitions - for using tmux's user-defined capabilities in - - late in 2016.
- --+-diff --git a/st.info b/st.info -@@ -185,7 +185,10 @@ st| simpleterm, - tsl=\E]0;, - xenl, - vpa=\E[%i%p1%dd, -- -+# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1) -+ Se, -+ Ss, -+ Tc, - - st-256color| simpleterm with 256 colors, - use=st, --
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.
Later, in (referring to a version from - mid-2017), a user asked to have it updated in - ncurses.
+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.
However, it had an error from the change in late 2016. The - terminal description made what tmux expected to be - string actually a - boolean.
- -Over the years, there were problems with each of - simpleterm's terminal descriptions. I repaired those, and - usually dealt with the problem.
+The 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 difference in this case was that when compiling the - terminal database, tic may have in memory the - definitions for more than one terminal description (so that - it can resolve “use=” clauses). Seeing - two different types for the same name, in certain situations - it would incorrectly merge the symbol tables for the two - terminal descriptions.
-On simpleterm's side, their bug was finally fixed in - - late 2019, three years after the bug was created.
+The string allocations in tic are + likewise improved.
For ncurses, the elapsed time to fix this bug was less than - three years. Someone reported a problem with the terminal - description a few weeks after releasing ncurses 6.1 (in tmux #1264), and - the terminal description was updated that week (ncurses patch - 20180224):
- --- --20180224 - + modify _nc_resolve_uses2() to detect incompatible types when merging - a "use=" clause of extended capabilities. The problem was seen in a - defective terminfo integrated from simpleterm sources in 20171111, - compounded by repair in 20180121. - + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD --
The larger part of that change added a check to prevent a - simple merge of terminal descriptions where the same user-defined - name was used with different types. But it raised some - questions:
- -Was there a reliable way to manage terminal descriptions - which used the same extended name in different ways?
-Should ncurses provide a registry of well-known extended - names, with their types?
-Since the correction to terminfo.src - could have been readily adopted by packagers, there was nothing - more to be done from ncurses' standpoint on that part. But - improving ncurses to prevent issues like that is the reason for - making a release.
- -Nothing more (constructive) was mentioned with regard to - simpleterm. But a few problems were found in the handling of - user-defined capabilities:
- -Forward-references to user-defined capabilities in a - “use=” clause did not allocate new data - for each use. In tic, successive compilation of - terminal entries could add user-defined capabilities to the - wrong terminal entry.
- -This was not noticed before, since xterm's terminal - descriptions were the main users of the feature, and almost - all of the uses of the building-blocks which contained - user-defined capabilities were backward-references.
-There is one (documented) case where ncurses 6.1 supports - a user-defined capability that could be any type (i.e., - “RGB”). The check added in February 2018 to guard - against mismatches did not handle all of the combinations - needed.
-Both of these issues dated from the original implementation of - user-defined capabilities. Fixing them does not change the - terminal database, but a older tic without the fixes - will not be able to handle terminfo sources which rely upon those - fixes. Starting in June 2019, the download link for the terminfo - source file was capped at that date. The development sources have - an up-to-date copy of the file, for people with a legitimate need - for it.
- -The “-c” (check) option of tic - is not very useful if it cannot offer advice on parameters needed - for user-defined capabilities. The various Caps files - were reorganized to reduce redundancy, and in the common portion - (Caps-ncurses), - a registry of user-defined capabilities is provided for use by - tic. While users can still define their own custom - capabilities, tic will not offer any advice when their - parameters do not match.
- -In ncurses 6.2, tic makes a special check to allow - any type for RGB, but its being able to do this relies - upon fixes made in the ncurses library in mid-2019.
-There are no major changes. Several new options were added to - ease integration of packages with systems using different - versions of GNAT and ncurses. Also, +
There are no major changes. No new options were added. Several improvements were made to configure checks.
helps work around a filename conflict with Debian packages - versus test-packages.
+add ABI 7 defaults to configure script.
allows one to rename the “AdaCurses” library - (at least one packager prefers a lowercase name).
+add warning in configure script if file specified for + “--with-caps” does not exist.
now ensures there is a value, and adds the fallback - information to top-level Makefile summary.
+bzip2 and xz compression are now supported
check for pcre-posix library to help with MinGW port.
-help work around problems building fallback source using - pre-6.0 tic/infocmp.
-option value can now be a relative pathname.
+add check/warning in configure script if option + “--with-xterm-kbs” is missing or + inconsistent
ignore $TERMINFO - as a default value in configure script if it came from the - infocmp -Q option.
+amend configure option's auto-search to account for + systems where none of the directories known to + pkg-config exist
distinguish gcc from icc and clang when the - --enable-warnings option is not used, to avoid - unnecessary warnings about unrecognized inline options
+corrected regex needed for older pkg-config used + in Solaris 10
consistently prepend new libraries as they are found - during configuration, rather than relying upon the linker to - resolve order dependencies of libraries.
+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
modified configure scripts to reduce relinking/ranlib - during library install :
- -if the --with-pkg-config-libdir option is not + given, use ${libdir}/pkgconfig as a default
add configure check for getenv to work around - implementation shown in Emscripten which overwrites the - previous return value on each call.
- -Use that to optionally suppress START_TRACE - macro, whose call to getenv may not work - properly
+improve search-path check for pkg-config, e.g., + for Debian testing which installs pkg-config with + architecture-prefixes.
change target configure level for _XOPEN_SOURCE - to 600 to address use of vsscanf and - setenv.
+build-fix for cross-compiling to MingW, conditionally add + -lssp
reduce use of _GNU_SOURCE for current glibc where - _DEFAULT_SOURCE combines with - _XOPEN_SOURCE
- -Allow for Cygwin's newlib when checking for the - _DEFAULT_SOURCE symbol.
- -MidnightBSD is now checked for the - _XOPEN_SOURCE-related definitions.
+improve configure check for getttynam
If the check for va_copy or __va_copy - fails,
+fixes to build with dietlibc:
several changes to support a port to Ultrix 3.1:
- -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
The test/configure script (used for ncurses-examples) - is improved:
- -modify configure/scripts to work around interference by + GNU grep 3.8
added dummy "check" rule in top-level and test-Makefile to - simplify building test-packages for ArchLinux.
+change man_db.renames to template, to handle + ncurses*-config script with the + --extra-suffix configure option.
dropped library-dependency on psapi for MinGW port, since - win_driver.c defines PSAPI_VERSION to 2, making it - use GetProcessImageFileName from kernel32.dll
+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.
made build-fixes for configuration using --program-suffix - with Ada95, noticed with MacOS but applicable to other - platforms without libpanelw, etc.
+work around musl's nonstandard use of feature + test macros by adding a definition for + NCURSES_WIDECHAR to the generated “.pc” + and *-config files.
modified ncurses/Makefile.in to fix a case where - Debian/testing changes to the ld --as-needed configuration - broke ncurses-examples test packages.
-used _WIN32/_WIN64 in preference to - __MINGW32__/__MINGW64__ symbols to simplify - building with Microsoft Visual C++, since the former are - defined in both compiler configurations.
+use “command -v” rather than + “type” in Ada95/gen/Makefile.in + to fix a portability issue.
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. @@ -1616,10 +995,10 @@ diff --git a/st.info b/st.infoThe 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).Support for direct-color terminals, such as modern + xterm.
+Support for 256-color terminals, such as modern xterm.
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
.
a replacement for ssh
.
Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey has acted as the maintainer for the Free Software - Foundation, which holds a copyright on ncurses for releases 4.2 through 6.1. Following the release of ncurses 6.1, effective as of release 6.2, copyright for ncurses reverted to @@ -2026,7 +1409,6 @@ diff --git a/st.info b/st.info "mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org
@@ -2040,7 +1422,7 @@ diff --git a/st.info b/st.info
subscribe
<name>@<host.domain>ftp://ftp.invisible-island.net/ncurses/current/ + "https://invisible-island.net/archives/ncurses/current/">https://invisible-island.net/archives/ncurses/current/ and
@@ -2050,10 +1432,10 @@ diff --git a/st.info b/st.info
https://invisible-mirror.net/archives/ncurses/current/ .ftp://ftp.invisible-island.net/ncurses/6.1/ + "https://invisible-island.net/archives/ncurses/6.3/">https://invisible-island.net/archives/ncurses/6.3/ and
+ "https://invisible-mirror.net/archives/ncurses/6.3/">https://invisible-mirror.net/archives/ncurses/6.3/ .
https://invisible-mirror.net/archives/ncurses/6.1/ .There is an archive of the mailing list here:
@@ -2082,6 +1464,9 @@ diff --git a/st.info b/st.info ncurses versus slang (S-Lang) +Comments on + OpenBSD +tack – terminfo action checker @@ -2118,11 +1503,9 @@ diff --git a/st.info b/st.infoRelease Notes -
- Library improvements -
- New features
@@ -2133,7 +1516,6 @@ diff --git a/st.info b/st.info- Program improvements -
- Utilities
@@ -2149,7 +1531,6 @@ diff --git a/st.info b/st.info- Configuration changes -