diff options
Diffstat (limited to 'announce.html.in')
-rw-r--r-- | announce.html.in | 1548 |
1 files changed, 600 insertions, 948 deletions
diff --git a/announce.html.in b/announce.html.in index 2ac7d7d..caaa289 100644 --- a/announce.html.in +++ b/announce.html.in @@ -1,7 +1,7 @@ <!-- - $Id: announce.html.in,v 1.96 2020/02/09 21:50:48 tom Exp $ + $Id: announce.html.in,v 1.102 2021/10/20 22:41:55 tom Exp $ **************************************************************************** - * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2018-2020,2021 Thomas E. Dickey * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,12 +29,10 @@ **************************************************************************** --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> - <html> <head> <meta name="generator" content= - "HTML Tidy for HTML5 for Linux version 5.2.0"> - + "HTML Tidy for HTML5 for Linux version 5.6.0"> <title>Announcing ncurses @VERSION@</title> <link rel="author" href="mailto:bug-ncurses@gnu.org"> <meta http-equiv="Content-Type" content= @@ -57,7 +55,6 @@ } </style> </head> - <body> <h1 class="no-header">Announcing ncurses @VERSION@</h1> @@ -158,10 +155,10 @@ Notes</a></h2> <p>These notes are for <span class="main-name">ncurses</span> - @VERSION@, released <strong>February 12, 2020</strong>.</p> + @VERSION@, released <strong>October 21, 2021</strong>.</p> <p>This release is designed to be source-compatible with - <span class="main-name">ncurses</span> 5.0 through 6.1; providing + <span class="main-name">ncurses</span> 5.0 through 6.2; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the <span class= "main-name">ncurses</span> 5 ABI, the reason for the release is @@ -173,45 +170,28 @@ this announcement.</p> <p>The most <a href="#h3-bug-fixes">important - bug-fixes/improvements</a> 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 <span class="main-name">ncurses</span> - 6.1 release.</p> + bug-fixes/improvements</a> 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 + <span class="main-name">ncurses</span> 6.2 release.</p> <h3><a name="h3-library" id="h3-library">Library improvements</a></h3> <h4><a name="h4-new-library" id="h4-new-library">New features</a></h4> - <p>There are several new features:</p> + <p>There are a few new features:</p> <ul> <li> - <p><a href= - "@HOMEPAGE@/man/form_field_opts.3x.html">O_EDGE_INSERT_STAY</a> - tells the form library to optionally delay cursor movement on - a field edge/boundary</p> + <p>A new (experimental) driver, for the Windows Terminal + configuration is provided.</p> </li> <li> - <p><a href= - "@HOMEPAGE@/man/form_field_opts.3x.html">O_INPUT_FIELD</a> - extension to form library allows a dynamic field to shrink if - the new limit is smaller than the current field size.</p> - </li> - - <li> - <p>added <a href= - "@HOMEPAGE@/man/curs_memleaks.3x.html">exit_curses</a> and - <a href= - "@HOMEPAGE@/man/curs_memleaks.3x.html">exit_terminfo</a> to - replace internal symbols for leak-checking.</p> - </li> - - <li> - <p>added <a href= - "@HOMEPAGE@/man/curs_trace.3x.html#h3-Functions">curses_trace</a>, - to replace trace().</p> + <p>A script is provided which enables <a href= + "@HOMEPAGE@/ncurses-openbsd.html">OpenBSD</a> users to + upgrade their system to use ncurses 6.3 (OpenBSD developers + are also invited to do this).</p> </li> </ul> @@ -220,71 +200,16 @@ <ul> <li> - <p>mouse decoding now handles shift/control/alt logic when - decoding xterm's 1006 mode</p> - </li> - - <li> - <p>ncurses now defines a limit for <a href= - "@HOMEPAGE@/man/curs_getstr.3x.html">wgetnstr</a>, <a href= - "@HOMEPAGE@/man/curs_get_wstr.3x.html">wgetn_wstr</a> when - length is negative or “too large”.</p> - </li> - - <li>reordered loop-limit checks in <a href= - "@HOMEPAGE@/man/curs_insstr.3x.html">winsnstr</a> in case the - string has no terminating null and only the number of - characters is used.</li> - - <li> - <p>there is now no buffer-size limit when reading the - <a href="@HOMEPAGE@/man/ncurses.3x.html#h3-TERMCAP"><tt>$TERMCAP</tt></a> - variable.</p> - </li> - - <li> - <p>the <a href= - "@HOMEPAGE@/man/ncurses.3x.html#h3-TERMCAP"><tt>$TERMCAP</tt></a> - variable may be interpreted as a fallback to a terminfo - entry</p> - </li> - - <li> - <p><a href= - "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Output-Functions"><tt> - mvcur</tt></a> now decides whether to use hard-tabs, using - <strong><tt>xt</tt></strong>, <strong><tt>tbc</tt></strong> - and <strong><tt>hts</tt></strong> as clues.</p> - </li> - - <li> - <p>extended colors are improved by modifying an internal call - to <a href= - "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Output-Functions"><tt> - vid_puts</tt></a> to pass extended color pairs e.g., from - <tt>tty_update.c</tt> and <tt>lib_mvcur.c</tt></p> + <p>modify lib_mouse.c to check for out-of-range button + numbers, convert those to position reports.</p> </li> <li> - <p id="getenv-fixes">the initialization functions now avoid - relying upon persistent data for the result from <a href= - "#getenv-check"><tt>getenv</tt></a></p> - </li> - - <li> - <p>scrolling is improved:</p> - - <ul> - <li>a limit check in <tt>newline_forces_scroll</tt> handles - the case where the row is inside scroll-margins, but not at - the end.</li> - - <li> - <p>improved loop limits in <tt>_nc_scroll_window</tt> - handle a case where the scrolled data is a pad which is - taller than the window.</p> - </li> - </ul> + <p>add sp-funcs for <a href= + "@HOMEPAGE@/man/curs_termattrs.3x.html#h3-erasechar_-erasewchar"> + erasewchar</a>, <a href= + "@HOMEPAGE@/man/curs_termattrs.3x.html#h3-killchar_-killwchar"> + killwchar</a>.</p> </li> </ul> @@ -294,70 +219,35 @@ <p>These are revised features:</p> <ul> - <li> - <p>used “<tt>const</tt>” in some prototypes - rather than <tt>NCURSES_CONST</tt> where X/Open Curses was - updated to do this, e.g., <tt>wscanw</tt>, <tt>newterm</tt>, - the terminfo interface. Also use “<tt>const</tt>” - 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 “<tt>const</tt>” for certain - return values, e.g., <a href= - "@HOMEPAGE@/man/curs_util.3x.html#h3-keyname_key_name">keyname</a>.</p> - </li> - - <li> - <p>modified <a href= - "@HOMEPAGE@/man/curs_bkgd.3x.html#h3-bkgd"><tt>wbkgd</tt></a> - and <a href= - "@HOMEPAGE@/man/curs_bkgrnd.3x.html#h3-bkgrnd"><tt>wbkgrnd</tt></a> - to improve compatibility with SVr4 curses, changing the way - the window rendition is updated when the background character - is modified</p> - </li> - - <li> - <p>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 <a href= - "@HOMEPAGE@/man/term.5.html#h3-EXTENDED-STORAGE-FORMAT">term(5)</a>).</p> - </li> - - <li> - <p>modified the initialization checks for mouse so that the - <a href= - "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a> - block will work with terminal descriptions not mentioning - <em>xterm</em>.</p> - </li> + <li>modify wgetnstr, wgetn_wstr to improve compatibility with + SVr4 curses in its treatment of interrupt and quit + characters</li> </ul> <p>These were done to limit or ultimately deprecate features:</p> <ul> <li> - <p>deprecated <a href= - "@HOMEPAGE@/NEWS.html#t970831">safe-sprintf</a>, since the - <tt>vsnprintf</tt> function, which does what was needed, was - standardized long ago.</p> - </li> + <p>mark wgetch-events feature as deprecated.</p> - <li> - <p>marked <a href= - "@HOMEPAGE@/man/curs_printw.3x.html#h3-PORTABILITY"><tt>vwprintw</tt></a> - and <tt>vwscanw</tt> as deprecated; recommend using <a href= - "@HOMEPAGE@/man/curs_printw.3x.html"><tt>vw_printw</tt></a> - and <tt>vw_scanw</tt>, respectively.</p> - </li> + <ul> + <li> + <p>prevent <tt>KEY_EVENT</tt> from appearing in + <tt>curses.h</tt> unless the configure option + <code>--enable-wgetch-events</code> is used.</p> + </li> - <li> - <p>added deprecation warnings for internal functions called - by older versions of <a href= - "@HOMEPAGE@/tack.html">tack</a>.</p> + <li> + <p>modify <tt>MKkey_defs.sh</tt> to hide ncurses' + definition of <tt>KEY_EVENTS</tt> to reduce <em>Visual + Studio C++</em> redefinition warnings.</p> + </li> + </ul> </li> <li> - <p>removed unused <tt>_nc_import_termtype2</tt> function.</p> + <p>reduce build-warnings by excluding ncurses-internals from + deprecation warnings.</p> </li> </ul> @@ -365,100 +255,42 @@ <ul> <li> - <p>check parameter of <a href= - "@HOMEPAGE@/man/curs_threads.3x.html">set_escdelay</a>, - return ERR if negative.</p> - </li> - - <li> - <p>check parameter of <a href= - "@HOMEPAGE@/man/curs_threads.3x.html">set_tabsize</a>, return - ERR if not greater than zero</p> - </li> - - <li> - <p>correct a status-check in _nc_read_tic_entry() so that if - reading a hex/b64 <a href= - "@HOMEPAGE@/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a>, - and the <a href= - "@HOMEPAGE@/man/ncurses.3x.html#h3-TERM"><tt>$TERM</tt></a> - does not match, fall-through to the compiled-in search - list.</p> - </li> - - <li> - <p>amend check for <a href= - "@HOMEPAGE@/man/terminfo.5.html#h3-Predefined-Capabilities"><tt> - repeat_char</tt></a> to handle a case where setlocale() was - called after <a href= - "@HOMEPAGE@/man/curs_initscr.3x.html"><tt>initscr</tt></a></p> - </li> - - <li> - <p>move macro for <a href= - "@HOMEPAGE@/man/curs_touch.3x.html"><tt>is_linetouched</tt></a> - inside <strong><tt>NCURSES_NOMACROS</tt></strong> - <em><tt>ifndef</tt></em>.</p> - </li> - - <li> - <p>use <tt>_nc_copy_termtype2</tt> rather than direct - assignment in <a href= - "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Initialization">setupterm</a>, - in case it is called repeatedly using fallback terminfo - descriptions</p> + <p>drop symbols <em>GCC_PRINTF</em> and <em>GCC_SCANF</em> + from <curses.h>, to simplify use.</p> </li> <li> - <p>improve workaround for Solaris wcwidth versus line-drawing - characters</p> + <p>apply gcc format attribute to prototypes which use a + va_list parameter rather than a “<tt>...</tt>” + variable-length parameter list.</p> </li> <li> - <p>add checks in <a href= - "@HOMEPAGE@/man/resizeterm.3x.html"><tt>repair_subwindows</tt></a> - to keep the current position and scroll-margins inside the - resized subwindow.</p> + <p>modify <term.h> so that it is not necessary to + include <curses.h> before <term.h>.</p> </li> <li> - <p>correct a buffer-limit in <tt>write_entry.c</tt> for - systems that use caseless filenames.</p> - </li> - - <li> - <p>improved build-time utility <em>report_offsets</em>:</p> - - <ul> - <li> - <p>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.</p> - </li> - - <li> - <p>add <tt>NCURSES_GLOBALS</tt> and - <tt>NCURSES_PRESCREEN</tt> to report to show how similar - the different <em>libtinfo</em> configurations are.</p> - </li> - </ul> + <p>provide for wide-characters as background character in + wbkgrnd</p> </li> <li> - <p>modified some header files to ensure that those include - necessary files except for the previously-documented - cases</p> + <p>improve parameter-checking for tparm, adding function + _nc_tiparm() to handle the most-used case, which accepts only + numeric parameters.</p> </li> <li> - <p>added some traces in initialization to show whether a - fallback entry is used.</p> + <p>use return-value from <em>vsnprintf</em> to reallocate as + needed to allow for buffers larger than the screen size.</p> </li> <li> - <p>made minor optimization to reduce calls to - _nc_reserve_pairs</p> + <p>add another <em>fflush(stdout)</em> in <em>_nc_flush</em> + to handle time-delays in the middle of strings such as flash + when the application uses low-level calls rather than + curses.</p> </li> </ul> @@ -466,165 +298,158 @@ <ul> <li> - <p>fix a special case in <tt>PutAttrChar</tt> 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 <em>vt52</em>, which - lacks most line-drawing capability.</p> - </li> - - <li> - <p>corrected flag for "seq" method of db 1.8.5 interface, - needed by toe on some of the BSDs.</p> - </li> - - <li> - <p>modify comparison in make_hash.c to correct a special case - in collision handling for Caps-hpux11</p> - </li> - - <li> - <p>add extended_slk_color{,_sp} symbols to the appropriate - package/*.{map,sym} files</p> - </li> - - <li> - <p>modify lib_setup to avoid calling pthread_self() without - first verifying that the address is valid, i.e., for weak - symbols</p> + <p>add a check to guard against <em>repeat_char</em> emitting + digits which could be interpreted as BSD-style padding when + <tt>--enable-bsdpad</tt> is configured.</p> </li> <li> - <p>add a couple of broken-linker symbols to the list of - versioned symbols to help with link-time optimization versus - weak symbols.</p> + <p>check for screen size-change in <a href= + "@HOMEPAGE@/man/curs_scr_dump.3x.html">scr_init</a> and + <a href= + "@HOMEPAGE@/man/curs_scr_dump.3x.html">scr_restore</a>, in + case a screen dump does not match the current screen + dimensions</p> </li> </ul> <h3><a name="h3-programs" id="h3-programs">Program improvements</a></h3> - <p>Several improvements were made to the utility programs:</p> + <p id="h4-utilities">Several improvements were made to the + utility programs:</p> <dl> - <dt><span class="part-name">clear</span> + <dt><span class="part-name"><a href= + "@HOMEPAGE@/man/tabs.1.html">tabs</a></span> </dt> <dd> <ul> - <li>improved logic for clearing with the <em>E3</em> - extension, in case the terminal scrolls content onto its - saved-lines before actually clearing the display, by - clearing the saved-lines after clearing the display</li> + <li> + <p>implement “<tt>+m</tt>” option</p> + </li> </ul> </dd> - <dt><span class="part-name">infocmp</span> + <dt><span class="part-name"><a href= + "@HOMEPAGE@/man/tic.1m.html">tic</a></span> </dt> <dd> <ul> - <li>omit filtering of “<tt>OTxx</tt>” names - which are used for obsolete capabilities, when the output - is sorted by long-names. This change helps when making a - table of the short/long capability names.</li> - </ul> - </dd> + <li> + <p>add check for duplicate “<tt>use=</tt>” + clauses.</p> + </li> - <dt><span class="part-name">tic</span> - </dt> + <li> + <p>add check to report instances where <tt>tparm</tt> + would detect an error in an expression.</p> + </li> - <dd> - <ul> - <li>added check for consistent alternate character set - capabilities.</li> + <li> + <p>add user-defined capabilities from <em>mintty</em> to + <tt>Caps-ncurses</tt>, for checking consistency.</p> + </li> - <li>added check for paired <tt>indn</tt>/<tt>rin</tt>.</li> + <li> + <p>improve warning when oc/op do not mention SGR 39/49 + for <em>xterm</em> compatible <code>XT</code> flag.</p> + </li> - <li>added check for terminals with <tt>parm_dch</tt> vs - <tt>parm_ich</tt>.</li> + <li> + <p>improve checks for number of parameters of + <code>smglp</code>, <code>smgrp</code>, + <code>smgtp</code>, and <code>smgbp</code>.</p> + </li> - <li>added check for the case where - <tt>setf</tt>/<tt>setb</tt> are given using different - strings, but provide identical results to - <tt>setaf</tt>/<tt>setab</tt>.</li> + <li> + <p>improve “<tt>-c</tt>” 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.</p> + </li> - <li>corrected check for <tt>ich1</tt>.</li> + <li> + <p>improve check for errors detected in + <code>tparm</code>.</p> + </li> - <li>changed a too-large terminal entry from a fatal error - to a warning.</li> - </ul> - </dd> + <li> + <p>improve format of output, to ensure that the messages + contain only printable text.</p> + </li> - <dt><span class="part-name">toe</span> - </dt> + <li> + <p>modify to eliminate unnecessary + “<code>\</code>” to escape + “<code>:</code>” in terminfo format.</p> + </li> - <dd> - <ul> - <li>ignores any hex/b64 <tt>$TERMINFO</tt> value in the - list of terminfo databases.</li> + <li> + <p>remove check that assumes that none or both + parameterized and non-parameterized margin-setting + capabilities are present.</p> + </li> </ul> </dd> - <dt><span class="part-name">tset</span> + <dt><span class="part-name"><a href= + "@HOMEPAGE@/man/toe.1m.html">toe</a></span> </dt> <dd> <ul> - <li>replace check in <span class="part-name">reset</span> - command for obsolete “<tt>pt</tt>” capability - using <tt>tbc</tt> and <tt>hts</tt> capabilities as - clues</li> - - <li>modify <span class="part-name">reset</span> to allow - for tabstops at intervals other than 8.</li> - - <li>change <span class="part-name">reset</span>'s behavior - for margins to simply clear soft-margins if possible, - rather than clearing and then setting them according to the - terminal's width.</li> + <li> + <p>modify output of “<tt>toe -as</tt>” to + show first description found rather than the last.</p> + </li> + + <li> + <p>add a check to ensure that a “termcap + file” is text rather than binary.</p> + </li> </ul> </dd> - <dt><span class="part-name">tput</span> + <dt><span class="part-name"><a href= + "@HOMEPAGE@/man/tput.1.html">tput</a></span> </dt> <dd> <ul> - <li>add “<tt>x</tt>” to <tt>getopt</tt> string - so that “<tt>tput -x clear</tt>” - works.</li> - </ul> - </dd> - </dl> - - <p>Several changes were made to the generated ncurses*config - scripts and the analogous “<tt>.pc</tt>” files to - reduce differences between the configurations they report:</p> + <li> + <p>modify to allow multiple commands per line.</p> + </li> - <ul> - <li> - <p>modified the ncurse*-config and pc-files to more closely - match for the <tt>-I</tt> and <tt>-l</tt> options.</p> - </li> + <li> + <p>improve parameter-checking by analyzing all extended + string capabilities, e.g., as used in the <code>Cs</code> + and <code>Ms</code> capabilities of the <em>tmux</em> + description.</p> + </li> - <li> - <p>filtered out linker-specs from the <tt>--libs</tt> - report.</p> - </li> + <li> + <p>make warning messages consistently using alias names + when those are used, rather than the underlying program's + name.</p> + </li> - <li> - <p>amended the ncurses*-config and pc-files to take into - account the rpath hack which differed between those - files.</p> - </li> + <li> + <p>improve usage message for aliases such as + <em>clear</em>, by eliminating <em>tput</em>-specific + portions.</p> + </li> - <li> - <p>modified generated ncurses*config and ncurses.pc, - ncursesw.pc, etc., to list helper libraries such as gpm for - static linking.</p> - </li> - </ul> + <li> + <p>modify initialization to avoid opening + <tt>/dev/tty</tt> for cases other than + <em>reset/init</em>, e.g., for <em>clear</em>.</p> + </li> + </ul> + </dd> + </dl> <h4><a name="h4-examples" id="h4-examples">Examples</a></h4> @@ -638,38 +463,35 @@ <ul> <li> - <p>improve recovery from error when reading command-character - in <tt>test/ncurses.c</tt>, showing the relevant error - message and not exiting on EINTR.</p> + <p>add “<tt>-r</tt>” option to the <em>dots</em> + test-programs, to help with scripting a performance + comparison.</p> </li> <li> - <p>improve <em>tracemunch</em>, by keeping track of - <tt>TERMINAL*</tt> values, and if tracing was first turned on - after initialization, attempt to show distinct screen, window - and terminal names anyway.</p> + <p>build-fix for <em>test_opaque</em>, for configurations + without opaque curses structs, e.g., ncurses 5.7.</p> </li> <li> - <p>modify <em>tracemunch</em> to accept filename parameters - in addition to use as a pipe/filter.</p> + <p>improve <em>tracemunch</em> logic for "RUN" + compaction.</p> </li> <li> - <p>update <em>tracemunch</em> to work with <em>perl - 5.26.2</em>, which changed the rules for escaping regular - expressions.</p> + <p>improve <em>tracemunch</em>'s coverage of form/menu/panel + libraries.</p> </li> <li> - <p>add some checks in <em>tracemunch</em> for undefined - variables.</p> + <p>improve <em>tracemunch</em>'s checking/reporting the type + for the first parameter, e.g., "WINDOW*" rather than + "#1".</p> </li> <li> - <p>modify <tt>TurnOn</tt>/<tt>TurnOff</tt> macros (in - lib_vidattr.c and lib_vid_attr.c) to avoid expansion of - “<tt>CUR</tt>” in trace.</p> + <p>modify <em>tracemunch</em> and the panel library to show + readable traces for panel- and user-pointers.</p> </li> </ul> @@ -677,135 +499,131 @@ examples:</p> <dl> - <dt><span class="part-name">color_content</span> - </dt> - - <dd>Demonstrate the <tt>color_content</tt> and - <tt>extended_color_content</tt> functions.</dd> - - <dt><span class="part-name">demo_tabs</span> - </dt> - - <dd>A simple demo of tabs in curses.</dd> - - <dt><span class="part-name">dump_window</span> - </dt> - - <dd>A portable curses screen-dump, used to compare ncurses - screen contents with Solaris.</dd> - - <dt><span class="part-name">pair_content</span> + <dt><span class="part-name"><em>back_ground</em></span> </dt> - <dd>Demonstrate the <tt>pair_content</tt> and - <tt>extended_pair_content</tt> functions.</dd> + <dd>to exercise the wide-character background functions.</dd> - <dt><span class="part-name">report_hashing</span> + <dt><span class="part-name"><em>move_field</em></span> </dt> - <dd>Check hash-tables used for terminfo and termcap names.</dd> + <dd>to demonstrate <a href= + "@HOMEPAGE@/man/form_field.3x.html">move_field</a>, and a stub + for a corresponding demo of <a href= + "@HOMEPAGE@/man/form_field_new.3x.html">dup_field</a>.</dd> - <dt><span class="part-name">parse_rgb</span> + <dt><span class="part-name"><em>test_tparm</em></span> </dt> - <dd>Sample implementation of the ncurses RGB extension from - <a href="@HOMEPAGE@/man/user_caps.5.html">user_caps.5</a>, used - in <em>picsmap</em> and <em>savescreen</em> programs.</dd> + <dd>for checking <em>tparm</em> changes.</dd> </dl> - <p>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.</p> - - <ul> - <li> - <p>add “<tt>-l</tt>” option to test/background, - to dump screen contents in a form that lets different curses - implementations be compared.</p> - </li> - - <li> - <p>add “<tt>@</tt>” command to test/ncurses - F-test, to allow rapid jump to different character pages.</p> - </li> - - <li> - <p>added enum, regex examples to test/demo_forms</p> - </li> - - <li> - <p>amend Scaled256() macro in test/picsmap.c to cover the - full range 0..1000</p> - </li> - - <li> - <p>corrected pathname used in Ada95 sample programs for - <tt>explain.txt</tt>, 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.</p> - </li> - - <li> - <p>ignore interrupted system-call in test/ncurses's - command-line, e.g., if the terminal were resized.</p> - </li> - - <li> - <p>improved ifdef's for <tt>TABSIZE</tt> variable, to help - with AIX/HPUX ports.</p> - </li> - </ul> - <h3><a name="h3-database" id="h3-database">Terminal database</a></h3> <p>There are several new terminal descriptions:</p> <blockquote style="word-break:keep-all"> - <p><tt>alacritty</tt>, <tt>domterm</tt>, <tt>kitty</tt>, - <tt>mintty</tt>, <tt>mintty-direct</tt>, <tt>ms-terminal</tt>, - <tt>n7900</tt>, <tt>nsterm-build309</tt>, - <tt>nsterm-direct</tt>, <tt>screen5</tt>, <tt>ti703</tt>, - <tt>ti707</tt>, <tt>ti703-w</tt>, <tt>ti707-w</tt> - <tt>vscode</tt>, <tt>vscode-direct</tt>, <tt>xterm-mono</tt>, - <tt>xterm.js</tt></p> + <p><tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-absolute">absolute</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-att610_cvis">att610+cvis</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-foot">foot</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-foot-direct">foot-direct</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-hp98550-color">hp98550-color</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-hpterm-color2">hpterm-color2</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-hterm">hterm</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-hterm-256color">hterm-256color</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-linux-s">linux-s</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-putty_keypad">putty+keypad</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-putty_screen">putty+screen</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-putty-screen">putty-screen</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-screen.linux-s">screen.linux-s</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-scrt/securecrt">scrt/securecrt</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-tmux-direct">tmux-direct</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt220_cvis">vt220+cvis</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt220_cvis8">vt220+cvis8</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt220_pcedit">vt220+pcedit</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt220_vtedit">vt220+vtedit</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt220-base">vt220-base</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt52_keypad">vt52+keypad</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm_256color2">xterm+256color2</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm_88color2">xterm+88color2</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm-direct16">xterm-direct16</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm-direct256">xterm-direct256</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm_nofkeys">xterm+nofkeys</a></tt>, + and <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm_nopcfkeys">xterm+nopcfkeys</a></tt>.</p> </blockquote> <p>There are many changes to existing terminal descriptions. Some were updates to several descriptions:</p> <ul> - <li>use <a href= - "/ncurses/terminfo.src.html#tic-ansi_rep"><tt>ansi+rep</tt></a> - in a dozen places</li> - - <li>add rs1 to konsole, mlterm</li> - - <li>improve several flash capabilities with trailing mandatory - delays</li> + <li>correct use-ordering in some <a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm-direct">xterm-direct</a> + flavors</li> + + <li>fix some sgr inconsistencies in <a href= + "@HOMEPAGE@/terminfo.src.html#tic-d230c">d230c</a>, <a href= + "@HOMEPAGE@/terminfo.src.html#tic-ibm6153">ibm6153</a>, + <a href="@HOMEPAGE@/terminfo.src.html#tic-ibm6154">ibm6154</a>, + <a href= + "@HOMEPAGE@/terminfo.src.html#tic-ncrvt100an">ncrvt100an</a></li> - <li>drop <tt>ich1</tt> from <tt>rxvt-basic</tt>, <tt>Eterm</tt> - and <tt>mlterm</tt> to improve compatibility with old - non-curses programs</li> + <li>improve <a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt50h">vt50h</a> and <a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt52">vt52</a> based on + DECScope manual</li> - <li>add/use <a href= - "/ncurses/terminfo.src.html#tic-xterm_keypad"><tt>xterm+keypad</tt></a> - in <tt>xterm-new</tt></li> + <li>use <a href= + "@HOMEPAGE@/terminfo.src.html#tic-hp_arrows">hp+arrows</a> in a + few places</li> <li>use <a href= - "/ncurses/terminfo.src.html#tic-xterm_sl-twm"><tt>xterm+sl-twm</tt></a> - for consistency, nine places</li> + "@HOMEPAGE@/terminfo.src.html#tic-hp_pfk-cr">hp+pfk-cr</a> in a + few places</li> - <li>improve <em>xm</em> example in <a href= - "/ncurses/terminfo.src.html#tic-xterm_x11mouse">xterm+x11mouse</a> - and <a href= - "/ncurses/terminfo.src.html#tic-xterm_sm_1006">xterm+sm_1006</a>.</li> + <li>use <a href= + "@HOMEPAGE@/terminfo.src.html#tic-vt220_cvis">vt220+cvis</a> in + <tt>st</tt>, <tt>terminology</tt>, <tt>termite</tt> since they + ignore blinking-cursor detail in <a href= + "@HOMEPAGE@/terminfo.src.html#tic-att610_cvis">att610+cvis</a></li> </ul> <p>while others affected specific descriptions. These were retested, to take into account changes by their developers:</p> <blockquote> - <p><tt>terminator</tt>, <tt>st</tt></p> + <p><tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-kitty_common">kitty+common</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-mlterm3">mlterm3</a></tt>, + <tt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-ms-terminal">ms-terminal</a></tt></p> </blockquote> <p>while these are specific fixes based on reviewing @@ -814,156 +632,133 @@ <dl> <dt><a href= - "/ncurses/terminfo.src.html#tic-adds200">adds200</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-aaa_dec">aaa+dec</a>, + aaa+rv</dt> - <dd> - <ul> - <li>fix typo</li> - </ul> - </dd> + <dd>correct rmacs/smacs</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-gnome-256color">gnome-256color</a> + "@HOMEPAGE@/terminfo.src.html#tic-aaa_rv">aaa+rv</a> </dt> - <dd> - <ul> - <li>base entry on "gnome", not "vte", for consistency</li> - </ul> - </dd> + <dd>correct sgr</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-interix">interix</a> + "@HOMEPAGE@/terminfo.src.html#tic-icl6404">icl6404</a> </dt> - <dd> - <ul> - <li>trim unnecessary setf/setb</li> - </ul> - </dd> + <dd>correct csr</dd> + + <dt><a href="@HOMEPAGE@/terminfo.src.html#tic-kitty">kitty</a> + </dt> + + <dd>use att610+cvis, xterm+tmux and ansi+enq</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-linux-16color">linux-16color</a> + "@HOMEPAGE@/terminfo.src.html#tic-konsole-base">konsole-base</a> </dt> - <dd> - <ul> - <li>accommodate <a href= - "https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00061.html"> - Linux console driver</a> incompatibility introduced in - early 2018</li> - </ul> - </dd> + <dd>re-enable "bel"</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-nsterm-256color">nsterm-256color</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-linux2.6">linux2.6</a> + </dt> - <dd> - <ul> - <li>add nsterm-build309 to replace nsterm-256color, - assigning the latter as an alias of nsterm, to make mouse - work with nsterm-256color</li> - </ul> - </dd> + <dd>fix pound-sign mapping in acsc</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-regent40">regent40</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-linux3.0">linux3.0</a> + </dt> - <dd> - <ul> - <li>renumber function-keys to match manual</li> - </ul> - </dd> + <dd>modify to reflect default mapping of shift-tab by kbd + 1.14</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-regent60">regent60</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-pccons">pccons</a> + </dt> - <dd> - <ul> - <li>add cd (clr_eos)</li> + <dd>fill in some missing pieces, to make it comparable to the + vt220 entry</dd> - <li>corrected acsc</li> + <dt><a href="@HOMEPAGE@/terminfo.src.html#tic-putty">putty</a> + </dt> - <li>add shifted function-keys</li> - </ul> - </dd> + <dd>use vt100+fnkeys, add rep</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-tvi950">tvi950</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-screen">screen</a> + </dt> - <dd> - <ul> - <li>added function-key definitions to agree with Televideo - 950 manual</li> + <dd>use vt100+enq</dd> - <li>corrected acsc</li> + <dt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-terminator">terminator</a> + </dt> - <li>remove bogus kf0</li> + <dd>corrected tsl capability</dd> - <li>add bel</li> - </ul> - </dd> + <dt><a href="@HOMEPAGE@/terminfo.src.html#tic-ti916">ti916</a> + </dt> - <dt><a href= - "/ncurses/terminfo.src.html#tic-tvi955">tvi955</a>:</dt> + <dd>correct cup</dd> - <dd> - <ul> - <li>fix typo</li> - </ul> - </dd> + <dt><a href="@HOMEPAGE@/terminfo.src.html#tic-tmux">tmux</a> + </dt> - <dt><a href= - "/ncurses/terminfo.src.html#tic-vi200">vi200</a>:</dt> + <dd>change kbs to ^?</dd> - <dd> - <ul> - <li>add acsc string, including right/down-arrow</li> - </ul> - </dd> + <dt><a href="@HOMEPAGE@/terminfo.src.html#tic-vt220">vt220</a> + </dt> + + <dd>use vt220+cvis</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-wy50">wy50</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-vt420_lrmm">vt420+lrmm</a> + </dt> - <dd> - <ul> - <li>corrected acsc</li> - </ul> - </dd> + <dd>add smglp and smgrp</dd> - <dt><a href="/ncurses/terminfo.src.html#tic-wy50">wy50</a> and - <a href="/ncurses/terminfo.src.html#tic-wy60">wy60</a>:</dt> + <dt><a href="@HOMEPAGE@/terminfo.src.html#tic-vt420">vt420</a> + </dt> - <dd> - <ul> - <li>add shifted function-keys as kF1 to kF16</li> - </ul> - </dd> + <dd>use vt420+lrmm</dd> <dt><a href= - "/ncurses/terminfo.src.html#tic-xterm_x11hilite">xterm+x11hilite</a>:</dt> + "@HOMEPAGE@/terminfo.src.html#tic-xterm-new">xterm-new</a> + </dt> - <dd> - <ul> - <li>eliminate unused <em>p5</em> parameter.</li> - </ul> - </dd> + <dd>add nel</dd> + + <dt><a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm-vt52">xterm-vt52</a> + </dt> + + <dd>use vt52+keypad</dd> </dl> <p>A few entries use extensions (user-defined terminal capabilities):</p> <ul> - <li>use <a href= - "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a> - (aka “SGR 1006 mouse”) for konsole-base and - putty</li> + <li>add shifted Linux console keys in <a href= + "@HOMEPAGE@/terminfo.src.html#tic-linux_sfkeys">linux+sfkeys</a> + entry for <a href= + "@HOMEPAGE@/terminfo.src.html#tic-screen.linux">screen.linux</a></li> - <li>add <em><tt>Smol/Rmol</tt></em> user-defined capability to - <tt>tmux</tt> and <tt>vte-2018</tt></li> + <li>add Smulx to <a href= + "@HOMEPAGE@/terminfo.src.html#tic-alacritty">alacritty</a></li> - <li>add <em><tt>Smulx</tt></em> user-defined capability to - <tt>tmux</tt>, <tt>vte-2018</tt></li> + <li>add kbeg to <a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm_keypad">xterm+keypad</a> + to accommodate termcap applications</li> + + <li>add extensions in <a href= + "@HOMEPAGE@/terminfo.src.html#tic-xterm_tmux">xterm+tmux</a> + and <a href= + "@HOMEPAGE@/terminfo.src.html#tic-ecma_strikeout">ecma+strikeout</a> + to <a href= + "@HOMEPAGE@/terminfo.src.html#tic-ms-terminal">ms-terminal</a>, + but cancel the non-working Cr and Ms capabilities</li> </ul> <h3><a name="h3-documentation" id= @@ -997,88 +792,67 @@ <p>Corrections:</p> <ul> - <li>correct error-returns listed in manual pages for a few - form functions</li> - - <li>corrected prototypes in several manpages using script - to extract those in compilable form.</li> + <li> + <p>make <em>opts</em> extension for <a href= + "@HOMEPAGE@/man/curs_getcchar.3x.html#h3-getcchar"><tt>getcchar</tt></a> + work as documented for <a href= + "@HOMEPAGE@/announce-6.1.htmll#h4-new-library">ncurses + 6.1</a>, adding “<tt>-g</tt>” flag to + <em>demo_new_pair</em> to illustrate.</p> + </li> - <li>fix typo in <a href= - "@HOMEPAGE@/man/term.5.html#h3-EXTENDED-NUMBER-FORMAT">term.5</a>, - improve explanation of format</li> + <li> + <p>modify <a href="@HOMEPAGE@/man/tset.1.html">tset</a> + “-q” option to refrain from modifying + terminal modes, to match the documentation.</p> + </li> </ul> </li> <li> - <p>Clarify in manual pages that <a href= - "@HOMEPAGE@/man/curs_printw.3x.html#h2-PORTABILITY">vwprintw</a> - and <a href= - "@HOMEPAGE@/man/curs_scanw.3x.html#h2-PORTABILITY">vwscanw</a> - are obsolete.<br> - They have not been part of X/Open Curses since 2007.</p> - </li> - - <li> <p>New/improved history and portability sections:</p> <ul> - <li><a href= - "@HOMEPAGE@/man/curs_addch.3x.html#h3-ACS-Symbols">curs_addch.3x</a> - gives some background for ACS symbols.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_getcchar.3x.html#h2-PORTABILITY">curs_getcchar.3x</a> - explains a difference between ncurses and X/Open - Curses.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_getstr.3x.html#h2-PORTABILITY">curs_getstr.3x</a> - gives historical/portability background for the length - parameter of <tt>wgetnstr</tt>.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_slk.3x.html">curs_slk.3x</a> lists a - few differences between SVr4 curses and X/Open Curses for - soft-keys.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_terminfo.3x.html">curs_terminfo.3x</a> - explains that the initial implementation of terminfo in - SVr2 was mostly replaced by other developers in SVr3.</li> - - <li><a href="@HOMEPAGE@/man/infocmp.1m.html">infocmp.1</a> - explains that the initial version of terminfo had no tool - for decompiling descriptions. That came later, with SVr3, - with a different developer.</li> - - <li><a href="@HOMEPAGE@/man/tabs.1">tabs.1</a> tells more - than you wanted to know about the tool.</li> - - <li><a href="@HOMEPAGE@/man/tic.1m.html">tic.1</a> explains - that the initial version of terminfo had a rudimentary tool - (based on termcap) for compiling entries. The tool used - with Unix was developed by others for SVr3.</li> - - <li><a href="@HOMEPAGE@/man/toe.1m.html">toe.1</a> explains - the origin of this tool.</li> - </ul> - </li> + <li> + <p>improve documentation for <a href= + "@HOMEPAGE@/man/terminfo.5.html#h3-Parameterized-Strings"> + tparm</a> and static/dynamic variables.</p> + </li> - <li> - <p>Improvements for <a href= - "@HOMEPAGE@/man/user_caps.5.html">user_caps.5</a>:</p> + <li> + <p>add history note to <a href= + "@HOMEPAGE@/man/curs_scanw.3x.html#h2-HISTORY">curs_scanw.3x</a> + for <stdarg.h> and <varargs.h></p> + </li> - <ul> - <li>mention <tt>meml</tt>, <tt>memu</tt> and - <tt>box1</tt></li> + <li> + <p>add history note to <a href= + "@HOMEPAGE@/man/curs_printw.3x.html#h2-HISTORY">curs_printw.3x</a> + for <stdarg.h> and <varargs.h></p> + </li> - <li>expanded description of <tt>XM</tt></li> + <li> + <p>add portability note to <a href= + "@HOMEPAGE@/man/ncurses.3x.html#h3-Header-files">ncurses.3x</a> + regarding <stdarg.h></p> + </li> - <li>add a clarification regarding the <tt>RGB</tt> - capability.</li> + <li> + <p>add historical notes to <a href= + "@HOMEPAGE@/man/tput.1.html#h2-HISTORY">tput</a>, + <a href="@HOMEPAGE@/man/curs_terminfo.3x.html#h2-HISTORY"> + curses-terminfo</a> and <a href= + "@HOMEPAGE@/man/curs_color.3x.html#h2-HISTORY">curses-color</a> + manpages based on source-code for SVr2, SVr3 and + SVr4.</p> + </li> - <li>mention user_caps.5 in the tic and infocmp manual - pages.</li> + <li> + <p>improve history section for <a href= + "@HOMEPAGE@/man/tset.1.html#h2-HISTORY">tset</a> manpage + based on the 1BSD tarball, which preceded BSD's SCCS + checkins by more than three years.</p> + </li> </ul> </li> @@ -1086,49 +860,66 @@ <p>Other improvements:</p> <ul> - <li><a href= - "@HOMEPAGE@/man/curs_add_wch.3x.html#h3-Line-Graphics">curs_add_wch.3x</a> - adds note about Unicode terminology for the line-drawing - characters.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_color.3x.html#h3-RETURN-VALUE">curs_color.3x</a> - improves discussion of error returns and extensions.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_mouse.3x.html">curs_mouse.3x</a> - explains how the <tt>kmous</tt> and <tt>XM</tt> - capabilities are used for xterm-mouse input.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_refresh.3x.html#h3-wnoutrefresh_doupdate"> - curs_refresh.3x</a> improves documentation regarding the - virtual and physical screens.</li> - - <li><a href= - "@HOMEPAGE@/man/curs_util.3x.html">curs_util.3x</a> - mentions a difference between SVr4 and X/Open Curses for - <tt>unctrl.h</tt></li> - - <li><a href= - "@HOMEPAGE@/man/curs_variables.3x.html#h2-PORTABILITY">curs_variables.3x</a> - improves description of the <em>init_tabs</em> capability - and <tt>TABSIZE</tt> variable.</li> - - <li><a href= - "@HOMEPAGE@/man/ncurses.3x.html#h2-ALTERNATE-CONFIGURATIONS"> - ncurses.3x</a> improves documentation regarding - feature-test macros in curses.h</li> - - <li><a href= - "@HOMEPAGE@/man/resizeterm.3x.html#h3-resize_term">resizeterm.3x</a> - about top-level windows which touch the screen's - borders.</li> - - <li><a href= - "@HOMEPAGE@/man/tput.1.html#h3-Terminal-Size">tput.1</a> - clarifies how <em>tput</em> determines the terminal - size.</li> + <li> + <p>explain in <a href= + "@HOMEPAGE@/man/ncurses.3x.html#h2-ALTERNATE-CONFIGURATIONS"> + ncurses.3x</a> that functions in the tinfo library do not + rely upon wide-characters.</p> + </li> + + <li> + <p>improve manual page for <a href= + "@HOMEPAGE@/man/panel.3x.html#h2-PORTABILITY">panel</a> + library, extending the portability section as well as + documenting error-returns.</p> + </li> + + <li> + <p>add section on margins to <a href= + "@HOMEPAGE@/man/terminfo.5.html#h3-Margins">terminfo.5</a>, + adapted from X/Open Curses.</p> + </li> + + <li> + <p>improve <a href= + "@HOMEPAGE@/man/term.5.html#h3-LEGACY-STORAGE-FORMAT">man/term.5</a> + section on legacy storage format.</p> + </li> + + <li> + <p>add a note in <a href= + "@HOMEPAGE@/man/terminfo.5.html#h3-Predefined-Capabilities"> + terminfo.5</a> explaining that no-parameter strings such + as <em><tt>sgr0</tt></em> or <em><tt>cnorm</tt></em> + should not be used with tparm.</p> + </li> + + <li> + <p>improve description of BSD-style padding in <a href= + "@HOMEPAGE@/man/curs_termcap.3x.html#h2-BUGS">curs_termcap.3x</a></p> + </li> + + <li> + <p>improve discussion of padding versus <tt>tparm</tt> + and <tt>tputs</tt> in <a href= + "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Formatting-Output"> + man/curs_terminfo.3x</a></p> + </li> + + <li> + <p>add a note in manual page to explain <a href= + "@HOMEPAGE@/man/curs_getch.3x.html#h3-Ungetting-characters"> + ungetch</a> vs <a href= + "@HOMEPAGE@/man/curs_get_wch.3x.html#h3-unget_wch">unget_wch</a>.</p> + </li> + + <li> + <p>improve description of error-returns in <a href= + "@HOMEPAGE@/man/curs_addch.3x.html#h2-RETURN-VALUE">waddch</a> + and <a href= + "@HOMEPAGE@/man/curs_addstr.3x.html#h2-RETURN-VALUE">waddnstr</a> + manual pages.</p> + </li> </ul> </li> </ul> @@ -1137,184 +928,63 @@ are to existing pages).</p> <p>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.</p> + the information is presented. For instance, hyphenation is + suppressed in the HTML files generated from manual pages because + an upgrade to <em>groff</em> gave noticeably poorer results, + interfering with the process of creating links between the + resulting webpages.</p> <h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting bug-fixes</a></h3> <p>While there were many bugs fixed during development of ncurses - 6.2, only a few (the reason for this release) were both important + 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.</p> + are detailed in the <a href= + "@HOMEPAGE@/NEWS.html#t20211018">NEWS</a> file no elaboration is + needed here.</p> - <p>The interesting bugs were in tic/infocmp's handling of - user-defined capabilities. These were not recent bugs. Initially - it was a simple problem:</p> + <p>The interesting bugs were:</p> <ul> - <li>The user-defined capabilities can be any type (boolean, - number or string), but once given a type all uses of the name - must conform to that type—unless some special support for - a particular multi-typed name is built into ncurses.</li> - <li> - <p>One of simpleterm's contributors copied some definitions - for using <em>tmux</em>'s user-defined capabilities in + <p>modify <a href= + "@HOMEPAGE@/man/curs_bkgd.3x.html#h3-bkgd">wbkgd</a> and <a href= - "https://git.suckless.org/st/commit/06f8cf8ca87a81db15816658c40b2afcd1ad5332.html"> - late in 2016</a>.</p> - - <blockquote> - <pre class="demo-name"> -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, -</pre> - </blockquote> - </li> - - <li> - <p>Later, in (referring to a version from <a href= - "https://git.suckless.org/st/commit/c0882f2ed1d7a2dd0fa2efa52157e6fc6fde3652.html"> - mid-2017</a>), a user asked to have it updated in - ncurses.</p> - </li> + "@HOMEPAGE@/man/curs_bkgrnd.3x.html#h3-bkgrnd">wbkgrnd</a> 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.</p> - <li> - <p>However, it had an error from the change in late 2016. The - terminal description made what <em>tmux</em> expected to be - <strong>string</strong> actually a - <strong>boolean</strong>.</p> - - <p>Over the years, there were problems with each of - simpleterm's terminal descriptions. I repaired those, and - usually dealt with the problem.</p> + <p>This was a regression introduced in ncurses 6.2 (<a href= + "https://lists.gnu.org/archive/html/bug-ncurses/2020-03/msg00000.html">reported</a> + on the mailing list), for which the workaround was to specify + a blank for the background character.</p> </li> <li> - <p>The difference in this case was that when compiling the - terminal database, <em>tic</em> may have in memory the - definitions for more than one terminal description (so that - it can resolve “<tt>use=</tt>” clauses). Seeing - two different types for the same name, in certain situations - it would incorrectly merge the symbol tables for the two - terminal descriptions.</p> - </li> - - <li> - <p>On simpleterm's side, their bug was finally fixed in + <p>remove output-related checks for <a href= + "@HOMEPAGE@/man/curs_outopts.3x.html">nl/nonl</a> (also <a href= - "https://git.suckless.org/st/commit/83866428de031300eab03fbb116bcf7d2b1d4f60.html"> - late 2019</a>, three years after the bug was created.</p> - </li> - </ul> - - <p>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 <a href= - "https://github.com/tmux/tmux/issues/1264">tmux #1264</a>), and - the terminal description was updated that week (ncurses patch - <a href="@HOMEPAGE@/NEWS.html#t20180224">20180224</a>):</p> - - <blockquote> - <pre class="demo-name"> -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 -</pre> - </blockquote> - - <p>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:</p> - - <ul> - <li> - <p>Was there a reliable way to manage terminal descriptions - which used the same extended name in different ways?</p> + "https://lists.gnu.org/archive/html/bug-ncurses/2020-09/msg00018.html"> + reported</a> on the mailing list).</p> </li> <li> - <p>Should ncurses provide a registry of well-known extended - names, with their types?</p> - </li> - </ul> + <p>improve tparm implementation of <tt>%P</tt> and + <tt>%g</tt>, more closely matching SVr4 terminfo. Those + denote <em>static</em> and <em>dynamic</em> variables in + terminfo expressions.</p> - <p>Since the correction to <a href= - "@HOMEPAGE@/ncurses.html#download_database"><tt>terminfo.src</tt></a> - 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.</p> - - <p>Nothing more (constructive) was mentioned with regard to - simpleterm. But a few problems were found in the handling of - user-defined capabilities:</p> - - <ul> - <li> - <p>Forward-references to user-defined capabilities in a - “<tt>use=</tt>” clause did not allocate new data - for each use. In <em>tic</em>, successive compilation of - terminal entries could add user-defined capabilities to the - wrong terminal entry.</p> - - <p>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.</p> - </li> - - <li> - <p>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.</p> + <p>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 <a href= + "@HOMEPAGE@/ncurses-openbsd.html#issue_tput">tset</a>.</p> </li> </ul> - <p>Both of these issues dated from the original implementation of - user-defined capabilities. Fixing them does not change the - terminal database, but a older <em>tic</em> 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.</p> - - <p>The “<tt>-c</tt>” (check) option of <em>tic</em> - is not very useful if it cannot offer advice on parameters needed - for user-defined capabilities. The various <em>Caps</em> files - were reorganized to reduce redundancy, and in the common portion - (<a href= - "https://github.com/ThomasDickey/ncurses-snapshots/blob/master/include/Caps-ncurses">Caps-ncurses</a>), - a registry of user-defined capabilities is provided for use by - <em>tic</em>. While users can still define their own custom - capabilities, <em>tic</em> will not offer any advice when their - parameters do not match.</p> - - <p>In ncurses 6.2, <em>tic</em> makes a special check to allow - any type for <em>RGB</em>, but its being able to do this relies - upon fixes made in the ncurses library in mid-2019.</p> - <h3><a name="h3-config-config" id= "h3-config-config">Configuration changes</a></h3> @@ -1332,52 +1002,73 @@ diff --git a/st.info b/st.info <p>There are a few new/modified configure options:</p> <dl> - <dt><tt>--with-config-suffix</tt> + <dt><tt>--enable-fvisibility</tt> </dt> <dd> - <p>helps work around a filename conflict with Debian packages - versus test-packages.</p> + <p>new configure option and check for <em>gcc</em> + <tt>-fvisibility=hidden</tt> feature</p> </dd> - <dt><tt>--with-ada-libname</tt> + <dt><tt>--enable-leaks</tt> </dt> <dd> - <p>allows one to rename the “AdaCurses” library - (at least one packager prefers a lowercase name).</p> + <p>corrected to allow turning leak-checking off later in a + set of options.</p> </dd> - <dt><tt>--with-fallbacks</tt> + <dt><tt>--enable-stdnoreturn</tt> </dt> <dd> - <p>now ensures there is a value, and adds the fallback - information to top-level Makefile summary.</p> + <p>new configure option makes the <code>_Noreturn</code> + keyword optional to ease transition.</p> </dd> - <dt><tt>--with-pcre2</tt> + <dt><tt>--disable-pkg-ldflags</tt> </dt> <dd> - <p>check for pcre-posix library to help with MinGW port.</p> + <p>revised option also controls whether <code>$LDFLAGS</code> + from the build is provided in “<tt>-config</tt>” + and “<tt>.pc</tt>” files.</p> </dd> - <dt><tt>--with-tic-path</tt> and<br></dt> + <dt><tt>--disable-root-access</tt> + </dt> + + <dd> + <p>add configure option which tells ncurses to disallow most + file-opens by setuid processes.</p> + </dd> - <dt><tt>--with-infocmp-path</tt> + <dt><tt>--disable-wattr-macros</tt> </dt> <dd> - <p>help work around problems building fallback source using - pre-6.0 tic/infocmp.</p> + <p>changed default to help packagers who reuse wide ncursesw + header file with non-wide ncurses library.</p> </dd> - <dt><tt>--with-versioned-syms</tt> + <dt><tt>--with-pkg-config-libdir</tt> </dt> <dd> - <p>option value can now be a relative pathname.</p> + <p>revised option uses the actual search path from + <em>pkg-config</em> or <em>pkgconf</em> using the output from + <tt>--debug</tt>.</p> + </dd> + + <dt><tt>--with-ada-libname</tt><br> + <tt>--with-form-libname</tt><br> + <tt>--with-menu-libname</tt><br> + <tt>--with-panel-libname</tt> + </dt> + + <dd> + <p>new several <tt>--with-<em>xxx</em>-libname</tt> options, + to help with pkgsrc</p> </dd> </dl> @@ -1388,148 +1079,107 @@ diff --git a/st.info b/st.info <ul> <li> - <p>ignore <a href= - "/ncurses/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a> - as a default value in configure script if it came from the - <tt>infocmp</tt> <strong><tt>-Q</tt></strong> option.</p> + <p>add a special case in the configure script to work around + one of the build-time breakages reported for <a href= + "@HOMEPAGE@/ncurses-openbsd.html">OpenBSD 6</a> here:</p> + + <blockquote> + <p><a href= + "https://www.mail-archive.com/bugs@openbsd.org/msg13200.html"> + https://www.mail-archive.com/bugs@openbsd.org/msg13200.html</a></p> + </blockquote> </li> <li> - <p>distinguish gcc from icc and clang when the - <tt>--enable-warnings</tt> option is not used, to avoid - unnecessary warnings about unrecognized inline options</p> + <p>modify configure check for <em>libtool</em> to prevent + accidental use of an OpenBSD program which uses the same + name.</p> </li> <li> - <p>consistently prepend new libraries as they are found - during configuration, rather than relying upon the linker to - resolve order dependencies of libraries.</p> + <p>modify configuration checks for build-time tic/infocmp to + use <em>AC_CHECK_TOOL</em>. That can still be overridden by + <tt>--with-tic-path</tt> and <tt>--with-infocmp-path</tt> + when fallbacks are used, but even if not using fallbacks, the + improved check may help with cross-compiling.</p> </li> <li> - <p>modified configure scripts to reduce relinking/ranlib - during library install :</p> - - <ul> - <li>use “<tt>install -p</tt>” when available, - to avoid need for ranlib of static libraries.</li> - - <li>scripts which use - “<tt>--disable-relink</tt>;” add a 1-second - sleep to work around tools which use whole-second - timestamps, e.g., in <tt>utime</tt> rather than the actual - file system resolution.</li> - </ul> + <p>relax modification-time comparison in + <em>CF_LINK_FUNCS</em> to allow it to accept link() function + with NFS filesystems which change the mtime on the link + target, e.g., several BSD systems.</p> </li> <li> - <p id="getenv-check">add configure check for <a href= - "#getenv-fixes"><tt>getenv</tt></a> to work around - implementation shown in Emscripten which overwrites the - previous return value on each call.</p> - - <p>Use that to optionally suppress <tt>START_TRACE</tt> - macro, whose call to <tt>getenv</tt> may not work - properly</p> + <p>modify configure check for c89/c99 aliases of + <em>clang</em> to use its <tt>-std</tt> option instead, + because some platforms, in particular macOS, do not provide + workable c89/c99 aliases.</p> </li> <li> - <p>change target configure level for <tt>_XOPEN_SOURCE</tt> - to 600 to address use of <tt>vsscanf</tt> and - <tt>setenv</tt>.</p> + <p>modify <em>CF_NCURSES_CONFIG</em> to work around + <em>Xcode</em>'s c99 "-W" option, which conflicts with + conventional use for passing linker options.</p> </li> <li> - <p>reduce use of <tt>_GNU_SOURCE</tt> for current glibc where - <tt>_DEFAULT_SOURCE</tt> combines with - <tt>_XOPEN_SOURCE</tt></p> + <p>modify configure scripts to filter out redefinitions of + _XOPEN_SOURCE, e.g., for NetBSD which generally supports 500, + but 600 is needed for ncursesw.</p> + </li> + </ul> - <p>Allow for Cygwin's newlib when checking for the - _DEFAULT_SOURCE symbol.</p> + <p>Here are some of the other portability fixes:</p> - <p>MidnightBSD is now checked for the - <tt>_XOPEN_SOURCE</tt>-related definitions.</p> + <ul> + <li> + <p>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.</p> </li> <li> - <p>If the check for <tt>va_copy</tt> or <tt>__va_copy</tt> - fails,</p> - - <ul> - <li>configure now tries copying the pointers for - <tt>va_list</tt>, or as an array.</li> - - <li>alternatively, it checks for - <tt>__builtin_va_copy</tt>(), which could be used with AIX - <tt>xlc</tt> in <em>c89</em> mode.</li> - </ul> + <p>modify mk-1st.awk to account for extra-suffix configure + option.</p> </li> <li> - <p>several changes to support a port to Ultrix 3.1:</p> - - <ul> - <li>check if "b" binary feature of fopen works</li> - - <li>check for missing feature of locale.h</li> - - <li>add fallback for strstr() in test-programs</li> - - <li>add fallback for STDOUT_FILENO in test-programs</li> - </ul> + <p>build-fix for termsort module when configured with + termcap.</p> </li> <li> - <p>The <em>test/configure</em> script (used for <a href= - "/ncurses/ncurses-examples.html"><em>ncurses-examples</em></a>) - is improved:</p> - - <ul> - <li>work around non-ncurses termcap.h file, e.g., in - Slackware.</li> - - <li>check for <a href= - "/ncurses/man/curs_variables.3x.html#h3-TABSIZE"><tt>TABSIZE</tt></a> - variable.</li> - - <li>checks for the X11/Intrinsic.h header, accommodate - recent MacOS changes which largely emptied - <tt>/usr/include</tt>.</li> - </ul> + <p>modify configure script and makefiles to support ".PHONY" + make program feature.</p> </li> - </ul> - <p>Here are some of the other portability fixes:</p> - - <ul> <li> - <p>added dummy "check" rule in top-level and test-Makefile to - simplify building test-packages for ArchLinux.</p> + <p>amend <em>libtool</em> configuration to add dependency for + install.tic, etc., in ncurses/Makefile on the lower-level + libraries.</p> </li> <li> - <p>dropped library-dependency on psapi for MinGW port, since - win_driver.c defines <tt>PSAPI_VERSION</tt> to 2, making it - use <tt>GetProcessImageFileName</tt> from kernel32.dll</p> + <p>modify Ada95 source-generation utility to write to a file + given as parameter rather than to the standard output, + allowing builds with MinGW.</p> </li> <li> - <p>made build-fixes for configuration using --program-suffix - with Ada95, noticed with MacOS but applicable to other - platforms without libpanelw, etc.</p> + <p>amend tic/infocmp check to allow for the respective tool's + absence.</p> </li> <li> - <p>modified ncurses/Makefile.in to fix a case where - Debian/testing changes to the ld --as-needed configuration - broke ncurses-examples test packages.</p> + <p>build-fixes for gnat 10.1.1, whose gnatmake drops + integration with gprbuild.</p> </li> <li> - <p>used <tt>_WIN32</tt>/<tt>_WIN64</tt> in preference to - <tt>__MINGW32__</tt>/<tt>__MINGW64__</tt> symbols to simplify - building with Microsoft Visual C++, since the former are - defined in both compiler configurations.</p> + <p>correct configure version-check/warning for g++ to allow + for 10.x</p> </li> </ul> @@ -1605,7 +1255,7 @@ diff --git a/st.info b/st.info <p>The <span class="main-name">ncurses</span> utilities have options to allow you to filter terminfo entries for use with less capable <em>curses</em>/<em>terminfo</em> versions such - as the HP/UX and AIX ports.</p> + as the HP-UX and AIX ports.</p> </li> </ul> @@ -1616,10 +1266,10 @@ diff --git a/st.info b/st.info <li> <p>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).</p> + implements all <em>BASE</em> level features, and most + <em>EXTENDED</em> 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).</p> </li> <li> @@ -1662,6 +1312,11 @@ diff --git a/st.info b/st.info </li> <li> + <p>Support for direct-color terminals, such as modern + xterm.</p> + </li> + + <li> <p>Support for 256-color terminals, such as modern xterm.</p> </li> @@ -1752,7 +1407,7 @@ diff --git a/st.info b/st.info <li> <p>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 <code>#undef</code>.</p> </li> @@ -1913,8 +1568,7 @@ diff --git a/st.info b/st.info <dd> <p>a replacement for <code>ssh</code>.</p> - <p><a href= - "https://mosh.mit.edu/">https://mosh.mit.edu/</a></p> + <p><a href="https://mosh.org/">https://mosh.org/</a></p> </dd> <dt><span class="part-name">tack</span> @@ -2005,7 +1659,7 @@ diff --git a/st.info b/st.info <p>Ongoing development work is done by <a href= "mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas E. Dickey has acted as the maintainer for the Free Software - Foundation, which holds a <a href= + Foundation, which held a <a href= "@HOMEPAGE@/ncurses-license.html">copyright on ncurses</a> 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 +1680,6 @@ diff --git a/st.info b/st.info "mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a> </blockquote> containing the line: - <blockquote> <p><code>subscribe</code> <em><name>@<host.domain></em></p> @@ -2050,10 +1703,10 @@ diff --git a/st.info b/st.info <blockquote> <p><a href= - "ftp://ftp.invisible-island.net/ncurses/6.1/">ftp://ftp.invisible-island.net/ncurses/6.1/</a> + "ftp://ftp.invisible-island.net/ncurses/6.2/">ftp://ftp.invisible-island.net/ncurses/6.2/</a> and<br> <a href= - "https://invisible-mirror.net/archives/ncurses/6.1/">https://invisible-mirror.net/archives/ncurses/6.1/</a> .</p> + "https://invisible-mirror.net/archives/ncurses/6.2/">https://invisible-mirror.net/archives/ncurses/6.2/</a> .</p> </blockquote> <p>There is an archive of the mailing list here:</p> @@ -2082,6 +1735,9 @@ diff --git a/st.info b/st.info <span class="main-name">ncurses</span> versus <span class= "main-name">slang</span> (S-Lang)</a></li> + <li><a href="@HOMEPAGE@/ncurses-openbsd.html">Comments on + <span class="main-name">OpenBSD</span></a></li> + <li><a href="@HOMEPAGE@/tack.html">tack – terminfo action checker</a></li> @@ -2118,11 +1774,9 @@ diff --git a/st.info b/st.info <li> <a href="#h2-release-notes">Release Notes</a> - <ul> <li> <a href="#h3-library">Library improvements</a> - <ul> <li><a href="#h4-new-library">New features</a></li> @@ -2133,7 +1787,6 @@ diff --git a/st.info b/st.info <li> <a href="#h3-programs">Program improvements</a> - <ul> <li><a href="#h4-utilities">Utilities</a></li> @@ -2149,7 +1802,6 @@ diff --git a/st.info b/st.info <li> <a href="#h3-config-config">Configuration changes</a> - <ul> <li><a href="#h4-config-major">Major changes</a></li> |