2 $Id: announce.html,v 1.67 2022/11/26 17:41:51 tom Exp $
3 ****************************************************************************
4 * Copyright 2018-2021,2022 Thomas E. Dickey *
6 * Permission is hereby granted, free of charge, to any person obtaining a *
7 * copy of this software and associated documentation files (the *
8 * "Software"), to deal in the Software without restriction, including *
9 * without limitation the rights to use, copy, modify, merge, publish, *
10 * distribute, distribute with modifications, sublicense, and/or sell *
11 * copies of the Software, and to permit persons to whom the Software is *
12 * furnished to do so, subject to the following conditions: *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
20 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
23 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
25 * Except as contained in this notice, the name(s) of the above copyright *
26 * holders shall not be used in advertising or otherwise to promote the *
27 * sale, use or other dealings in this Software without prior written *
29 ****************************************************************************
31 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
34 <meta name="generator" content=
35 "HTML Tidy for HTML5 for Linux version 5.6.0">
36 <title>Announcing ncurses 6.3</title>
37 <link rel="author" href="mailto:bug-ncurses@gnu.org">
38 <meta http-equiv="Content-Type" content=
39 "text/html; charset=us-ascii">
40 <style type="text/css">
41 p,li { max-width:700px; }
42 dd { max-width:630px; }
45 font-variant: small-caps;
48 font-family: "Andale Mono", "Monotype.com", monospace;
53 font-family: "Andale Mono", "Monotype.com", monospace;
59 <h1 class="no-header">Announcing ncurses 6.3</h1>
61 <h2><a name="h2-overview" id="h2-overview">Overview</a></h2>
63 <p>The <span class="main-name">ncurses</span> (new curses)
64 library is a free software emulation of curses in System V
65 Release 4.0 (SVr4), and more. It uses terminfo format, supports
66 pads and color and multiple highlights and forms characters and
67 function-key mapping, and has all the other SVr4-curses
68 enhancements over BSD curses. SVr4 curses became the basis of
71 <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
72 that he considered 4.4BSD curses obsolete, and encouraged the
73 keepers of <span class="main-name">unix</span> releases such as
74 BSD/OS, FreeBSD and NetBSD to switch over to <span class=
75 "main-name">ncurses</span>.</p>
77 <p>Since 1995, <span class="main-name">ncurses</span> has been
78 ported to many systems:</p>
81 <li>It is used in almost every system based on the Linux kernel
82 (aside from some embedded applications).</li>
84 <li>It is used as the system curses library on OpenBSD, FreeBSD
87 <li>It is used in environments such as Cygwin and MinGW. The
88 first of these was EMX on OS/2 Warp.</li>
90 <li>It is used (though usually not as the <em>system</em>
91 curses) on all of the vendor <span class=
92 "main-name">unix</span> systems, e.g., AIX, HP-UX, IRIX64, SCO,
95 <li>It should work readily on any ANSI/POSIX-conforming
96 <span class="main-name">unix</span>.</li>
99 <p>The distribution includes the library and support utilities,
104 "https://invisible-island.net/ncurses/man/captoinfo.1m.html"><span class="part-name">
105 captoinfo</span></a>, a termcap conversion tool</li>
108 "https://invisible-island.net/ncurses/man/clear.1.html"><span class="part-name">
109 clear</span></a>, utility for clearing the screen</li>
112 "https://invisible-island.net/ncurses/man/infocmp.1m.html"><span class="part-name">
113 infocmp</span></a>, the terminfo decompiler</li>
116 "https://invisible-island.net/ncurses/man/tabs.1.html"><span class="part-name">
117 tabs</span></a>, set tabs on a terminal</li>
120 "https://invisible-island.net/ncurses/man/tic.1m.html"><span class="part-name">
121 tic</span></a>, the terminfo compiler</li>
124 "https://invisible-island.net/ncurses/man/toe.1m.html"><span class="part-name">
125 toe</span></a>, list (table of) terminfo entries</li>
128 "https://invisible-island.net/ncurses/man/tput.1.html"><span class="part-name">
129 tput</span></a>, utility for retrieving terminal capabilities
130 in shell scripts</li>
133 "https://invisible-island.net/ncurses/man/tset.1.html"><span class="part-name">
134 tset</span></a>, to initialize the terminal</li>
137 <p>Full manual pages are provided for the library and tools.</p>
139 <p>The <span class="main-name">ncurses</span> distribution is
140 available at <span class="main-name">ncurses</span>' <a href=
141 "https://invisible-island.net/ncurses/">homepage</a>:</p>
145 "ftp://ftp.invisible-island.net/ncurses/">ftp://ftp.invisible-island.net/ncurses/</a>
148 "https://invisible-mirror.net/archives/ncurses/">https://invisible-mirror.net/archives/ncurses/</a> .</p>
151 <p>It is also available via anonymous FTP at the GNU distribution
156 "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a> .</p>
159 <h2><a name="h2-release-notes" id="h2-release-notes">Release
162 <p>These notes are for <span class="main-name">ncurses</span>
163 6.3, released <strong>October 21, 2021</strong>.</p>
165 <p>This release is designed to be source-compatible with
166 <span class="main-name">ncurses</span> 5.0 through 6.2; providing
167 extensions to the application binary interface (ABI). Although
168 the source can still be configured to support the <span class=
169 "main-name">ncurses</span> 5 ABI, the reason for the release is
170 to reflect improvements to the <span class=
171 "main-name">ncurses</span> 6 ABI and the supporting utility
174 <p>There are, of course, numerous other improvements, listed in
175 this announcement.</p>
177 <p>The most <a href="#h3-bug-fixes">important
178 bug-fixes/improvements</a> dealt with portability issues. The
179 release notes also mention some other bug-fixes, but are focused
180 on new features and improvements to existing features since
181 <span class="main-name">ncurses</span> 6.2 release.</p>
183 <h3><a name="h3-library" id="h3-library">Library improvements</a></h3>
185 <h4><a name="h4-new-library" id="h4-new-library">New features</a></h4>
187 <p>There are a few new features:</p>
191 <p>A new (experimental) driver, for the Windows Terminal
192 configuration is provided.</p>
196 <p>A script is provided which enables <a href=
197 "https://invisible-island.net/ncurses/ncurses-openbsd.html">OpenBSD</a>
198 users to upgrade their system to use ncurses 6.3 (OpenBSD
199 developers are also invited to do this).</p>
203 <p>Additionally, to improve performance other changes (and
204 extensions) are provided in this release:</p>
208 <p>modify lib_mouse.c to check for out-of-range button
209 numbers, convert those to position reports.</p>
213 <p>add sp-funcs for <a href=
214 "https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-erasechar_-erasewchar">
215 erasewchar</a>, <a href=
216 "https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-killchar_-killwchar">
221 <h4><a name="h4-fixes-library" id="h4-fixes-library">Other
222 improvements</a></h4>
224 <p>These are revised features:</p>
227 <li>modify wgetnstr, wgetn_wstr to improve compatibility with
228 SVr4 curses in its treatment of interrupt and quit
232 <p>These were done to limit or ultimately deprecate features:</p>
236 <p>mark wgetch-events feature as deprecated.</p>
240 <p>prevent <tt>KEY_EVENT</tt> from appearing in
241 <tt>curses.h</tt> unless the configure option
242 <code>--enable-wgetch-events</code> is used.</p>
246 <p>modify <tt>MKkey_defs.sh</tt> to hide ncurses'
247 definition of <tt>KEY_EVENTS</tt> to reduce <em>Visual
248 Studio C++</em> redefinition warnings.</p>
254 <p>reduce build-warnings by excluding ncurses-internals from
255 deprecation warnings.</p>
259 <p>These are improvements to existing features:</p>
263 <p>drop symbols <em>GCC_PRINTF</em> and <em>GCC_SCANF</em>
264 from <curses.h>, to simplify use.</p>
268 <p>apply gcc format attribute to prototypes which use a
269 va_list parameter rather than a “<tt>...</tt>”
270 variable-length parameter list.</p>
274 <p>modify <term.h> so that it is not necessary to
275 include <curses.h> before <term.h>.</p>
279 <p>provide for wide-characters as background character in
284 <p>improve parameter-checking for tparm, adding function
285 _nc_tiparm() to handle the most-used case, which accepts only
286 numeric parameters.</p>
290 <p>use return-value from <em>vsnprintf</em> to reallocate as
291 needed to allow for buffers larger than the screen size.</p>
295 <p>add another <em>fflush(stdout)</em> in <em>_nc_flush</em>
296 to handle time-delays in the middle of strings such as flash
297 when the application uses low-level calls rather than
302 <p>These are corrections to existing features:</p>
306 <p>add a check to guard against <em>repeat_char</em> emitting
307 digits which could be interpreted as BSD-style padding when
308 <tt>--enable-bsdpad</tt> is configured.</p>
312 <p>check for screen size-change in <a href=
313 "https://invisible-island.net/ncurses/man/curs_scr_dump.3x.html">
314 scr_init</a> and <a href=
315 "https://invisible-island.net/ncurses/man/curs_scr_dump.3x.html">
316 scr_restore</a>, in case a screen dump does not match the
317 current screen dimensions</p>
321 <h3><a name="h3-programs" id="h3-programs">Program
322 improvements</a></h3>
324 <p id="h4-utilities">Several improvements were made to the
325 utility programs:</p>
328 <dt><span class="part-name"><a href=
329 "https://invisible-island.net/ncurses/man/tabs.1.html">tabs</a></span>
335 <p>implement “<tt>+m</tt>” option</p>
340 <dt><span class="part-name"><a href=
341 "https://invisible-island.net/ncurses/man/tic.1m.html">tic</a></span>
347 <p>add check for duplicate “<tt>use=</tt>”
352 <p>add check to report instances where <tt>tparm</tt>
353 would detect an error in an expression.</p>
357 <p>add user-defined capabilities from <em>mintty</em> to
358 <tt>Caps-ncurses</tt>, for checking consistency.</p>
362 <p>improve warning when oc/op do not mention SGR 39/49
363 for <em>xterm</em> compatible <code>XT</code> flag.</p>
367 <p>improve checks for number of parameters of
368 <code>smglp</code>, <code>smgrp</code>,
369 <code>smgtp</code>, and <code>smgbp</code>.</p>
373 <p>improve “<tt>-c</tt>” option to validate
374 the number and type of parameters and compare against
375 expected number/type before deciding which set of
376 parameter-lists to use in tparm calls.</p>
380 <p>improve check for errors detected in
381 <code>tparm</code>.</p>
385 <p>improve format of output, to ensure that the messages
386 contain only printable text.</p>
390 <p>modify to eliminate unnecessary
391 “<code>\</code>” to escape
392 “<code>:</code>” in terminfo format.</p>
396 <p>remove check that assumes that none or both
397 parameterized and non-parameterized margin-setting
398 capabilities are present.</p>
403 <dt><span class="part-name"><a href=
404 "https://invisible-island.net/ncurses/man/toe.1m.html">toe</a></span>
410 <p>modify output of “<tt>toe -as</tt>” to
411 show first description found rather than the last.</p>
415 <p>add a check to ensure that a “termcap
416 file” is text rather than binary.</p>
421 <dt><span class="part-name"><a href=
422 "https://invisible-island.net/ncurses/man/tput.1.html">tput</a></span>
428 <p>modify to allow multiple commands per line.</p>
432 <p>improve parameter-checking by analyzing all extended
433 string capabilities, e.g., as used in the <code>Cs</code>
434 and <code>Ms</code> capabilities of the <em>tmux</em>
439 <p>make warning messages consistently using alias names
440 when those are used, rather than the underlying program's
445 <p>improve usage message for aliases such as
446 <em>clear</em>, by eliminating <em>tput</em>-specific
451 <p>modify initialization to avoid opening
452 <tt>/dev/tty</tt> for cases other than
453 <em>reset/init</em>, e.g., for <em>clear</em>.</p>
459 <h4><a name="h4-examples" id="h4-examples">Examples</a></h4>
461 <p>Along with the library and utilities, improvements were made
463 "https://invisible-island.net/ncurses/ncurses-examples.html">ncurses-examples</a>.
464 Most of this activity aimed at improving the test-packages. A few
465 changes are more generally useful, e.g., for the main ncurses
466 test-program, and for analyzing traces using the
467 <em>tracemunch</em> script:</p>
471 <p>add “<tt>-r</tt>” option to the <em>dots</em>
472 test-programs, to help with scripting a performance
477 <p>build-fix for <em>test_opaque</em>, for configurations
478 without opaque curses structs, e.g., ncurses 5.7.</p>
482 <p>improve <em>tracemunch</em> logic for "RUN"
487 <p>improve <em>tracemunch</em>'s coverage of form/menu/panel
492 <p>improve <em>tracemunch</em>'s checking/reporting the type
493 for the first parameter, e.g., "WINDOW*" rather than
498 <p>modify <em>tracemunch</em> and the panel library to show
499 readable traces for panel- and user-pointers.</p>
503 <p>There are other new demo/test programs and reusable
507 <dt><span class="part-name"><em>back_ground</em></span>
510 <dd>to exercise the wide-character background functions.</dd>
512 <dt><span class="part-name"><em>move_field</em></span>
515 <dd>to demonstrate <a href=
516 "https://invisible-island.net/ncurses/man/form_field.3x.html">move_field</a>,
517 and a stub for a corresponding demo of <a href=
518 "https://invisible-island.net/ncurses/man/form_field_new.3x.html">
521 <dt><span class="part-name"><em>test_tparm</em></span>
524 <dd>for checking <em>tparm</em> changes.</dd>
527 <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
529 <p>There are several new terminal descriptions:</p>
531 <blockquote style="word-break:keep-all">
533 "https://invisible-island.net/ncurses/terminfo.src.html#tic-absolute">
534 absolute</a></tt>, <tt><a href=
535 "https://invisible-island.net/ncurses/terminfo.src.html#tic-att610_cvis">
536 att610+cvis</a></tt>, <tt><a href=
537 "https://invisible-island.net/ncurses/terminfo.src.html#tic-foot">
538 foot</a></tt>, <tt><a href=
539 "https://invisible-island.net/ncurses/terminfo.src.html#tic-foot-direct">
540 foot-direct</a></tt>, <tt><a href=
541 "https://invisible-island.net/ncurses/terminfo.src.html#tic-hp98550-color">
542 hp98550-color</a></tt>, <tt><a href=
543 "https://invisible-island.net/ncurses/terminfo.src.html#tic-hpterm-color2">
544 hpterm-color2</a></tt>, <tt><a href=
545 "https://invisible-island.net/ncurses/terminfo.src.html#tic-hterm">
546 hterm</a></tt>, <tt><a href=
547 "https://invisible-island.net/ncurses/terminfo.src.html#tic-hterm-256color">
548 hterm-256color</a></tt>, <tt><a href=
549 "https://invisible-island.net/ncurses/terminfo.src.html#tic-linux-s">
550 linux-s</a></tt>, <tt><a href=
551 "https://invisible-island.net/ncurses/terminfo.src.html#tic-putty_keypad">
552 putty+keypad</a></tt>, <tt><a href=
553 "https://invisible-island.net/ncurses/terminfo.src.html#tic-putty_screen">
554 putty+screen</a></tt>, <tt><a href=
555 "https://invisible-island.net/ncurses/terminfo.src.html#tic-putty-screen">
556 putty-screen</a></tt>, <tt><a href=
557 "https://invisible-island.net/ncurses/terminfo.src.html#tic-screen.linux-s">
558 screen.linux-s</a></tt>, <tt><a href=
559 "https://invisible-island.net/ncurses/terminfo.src.html#tic-scrt/securecrt">
560 scrt/securecrt</a></tt>, <tt><a href=
561 "https://invisible-island.net/ncurses/terminfo.src.html#tic-tmux-direct">
562 tmux-direct</a></tt>, <tt><a href=
563 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220_cvis">
564 vt220+cvis</a></tt>, <tt><a href=
565 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220_cvis8">
566 vt220+cvis8</a></tt>, <tt><a href=
567 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220_pcedit">
568 vt220+pcedit</a></tt>, <tt><a href=
569 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220_vtedit">
570 vt220+vtedit</a></tt>, <tt><a href=
571 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220-base">
572 vt220-base</a></tt>, <tt><a href=
573 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt52_keypad">
574 vt52+keypad</a></tt>, <tt><a href=
575 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_256color2">
576 xterm+256color2</a></tt>, <tt><a href=
577 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_88color2">
578 xterm+88color2</a></tt>, <tt><a href=
579 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-direct16">
580 xterm-direct16</a></tt>, <tt><a href=
581 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-direct256">
582 xterm-direct256</a></tt>, <tt><a href=
583 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_nofkeys">
584 xterm+nofkeys</a></tt>, and <tt><a href=
585 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_nopcfkeys">
586 xterm+nopcfkeys</a></tt>.</p>
589 <p>There are many changes to existing terminal descriptions. Some
590 were updates to several descriptions:</p>
593 <li>correct use-ordering in some <a href=
594 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-direct">
595 xterm-direct</a> flavors</li>
597 <li>fix some sgr inconsistencies in <a href=
598 "https://invisible-island.net/ncurses/terminfo.src.html#tic-d230c">
600 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ibm6153">
601 ibm6153</a>, <a href=
602 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ibm6154">
603 ibm6154</a>, <a href=
604 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ncrvt100an">
608 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt50h">
609 vt50h</a> and <a href=
610 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt52">
611 vt52</a> based on DECScope manual</li>
614 "https://invisible-island.net/ncurses/terminfo.src.html#tic-hp_arrows">
615 hp+arrows</a> in a few places</li>
618 "https://invisible-island.net/ncurses/terminfo.src.html#tic-hp_pfk-cr">
619 hp+pfk-cr</a> in a few places</li>
622 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220_cvis">
623 vt220+cvis</a> in <tt>st</tt>, <tt>terminology</tt>,
624 <tt>termite</tt> since they ignore blinking-cursor detail in
626 "https://invisible-island.net/ncurses/terminfo.src.html#tic-att610_cvis">
630 <p>while others affected specific descriptions. These were
631 retested, to take into account changes by their developers:</p>
635 "https://invisible-island.net/ncurses/terminfo.src.html#tic-kitty_common">
636 kitty+common</a></tt>, <tt><a href=
637 "https://invisible-island.net/ncurses/terminfo.src.html#tic-mlterm3">
638 mlterm3</a></tt>, <tt><a href=
639 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ms-terminal">
640 ms-terminal</a></tt></p>
643 <p>while these are specific fixes based on reviewing
644 documentation, user reports, or warnings from <span class=
645 "part-name">tic</span>:</p>
649 "https://invisible-island.net/ncurses/terminfo.src.html#tic-aaa_dec">
650 aaa+dec</a>, aaa+rv</dt>
652 <dd>correct rmacs/smacs</dd>
655 "https://invisible-island.net/ncurses/terminfo.src.html#tic-aaa_rv">
662 "https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404">
669 "https://invisible-island.net/ncurses/terminfo.src.html#tic-kitty">
673 <dd>use att610+cvis, xterm+tmux and ansi+enq</dd>
676 "https://invisible-island.net/ncurses/terminfo.src.html#tic-konsole-base">
680 <dd>re-enable "bel"</dd>
683 "https://invisible-island.net/ncurses/terminfo.src.html#tic-linux2.6">
687 <dd>fix pound-sign mapping in acsc</dd>
690 "https://invisible-island.net/ncurses/terminfo.src.html#tic-linux3.0">
694 <dd>modify to reflect default mapping of shift-tab by kbd
698 "https://invisible-island.net/ncurses/terminfo.src.html#tic-pccons">
702 <dd>fill in some missing pieces, to make it comparable to the
706 "https://invisible-island.net/ncurses/terminfo.src.html#tic-putty">
710 <dd>use vt100+fnkeys, add rep</dd>
713 "https://invisible-island.net/ncurses/terminfo.src.html#tic-screen">
717 <dd>use vt100+enq</dd>
720 "https://invisible-island.net/ncurses/terminfo.src.html#tic-terminator">
724 <dd>corrected tsl capability</dd>
727 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ti916">
734 "https://invisible-island.net/ncurses/terminfo.src.html#tic-tmux">
738 <dd>change kbs to ^?</dd>
741 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt220">
745 <dd>use vt220+cvis</dd>
748 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt420_lrmm">
752 <dd>add smglp and smgrp</dd>
755 "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt420">
759 <dd>use vt420+lrmm</dd>
762 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-new">
769 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-vt52">
773 <dd>use vt52+keypad</dd>
776 <p>A few entries use extensions (user-defined terminal
780 <li>add shifted Linux console keys in <a href=
781 "https://invisible-island.net/ncurses/terminfo.src.html#tic-linux_sfkeys">
782 linux+sfkeys</a> entry for <a href=
783 "https://invisible-island.net/ncurses/terminfo.src.html#tic-screen.linux">
784 screen.linux</a></li>
786 <li>add Smulx to <a href=
787 "https://invisible-island.net/ncurses/terminfo.src.html#tic-alacritty">
790 <li>add kbeg to <a href=
791 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_keypad">
792 xterm+keypad</a> to accommodate termcap applications</li>
794 <li>add extensions in <a href=
795 "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_tmux">
796 xterm+tmux</a> and <a href=
797 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ecma_strikeout">
798 ecma+strikeout</a> to <a href=
799 "https://invisible-island.net/ncurses/terminfo.src.html#tic-ms-terminal">
800 ms-terminal</a>, but cancel the non-working Cr and Ms
804 <h3><a name="h3-documentation" id=
805 "h3-documentation">Documentation</a></h3>
807 <p>As usual, this release</p>
811 <p>improves documentation by describing new features,</p>
815 <p>attempts to improve the description of features which
816 users have found confusing</p>
820 <p>fills in overlooked descriptions of features which were
821 described in the <a href=
822 "https://invisible-island.net/ncurses/NEWS.html">NEWS</a>
823 file but treated sketchily in manual pages.</p>
827 <p>In addition to providing background information to explain
828 these features and show how they evolved, there are corrections,
829 clarifications, etc.:</p>
837 <p>make <em>opts</em> extension for <a href=
838 "https://invisible-island.net/ncurses/man/curs_getcchar.3x.html#h3-getcchar">
839 <tt>getcchar</tt></a> work as documented for <a href=
840 "https://invisible-island.net/ncurses/announce-6.1.html#h4-new-library">
841 ncurses 6.1</a>, adding “<tt>-g</tt>” flag to
842 <em>demo_new_pair</em> to illustrate.</p>
847 "https://invisible-island.net/ncurses/man/tset.1.html">tset</a>
848 “-q” option to refrain from modifying
849 terminal modes, to match the documentation.</p>
855 <p>New/improved history and portability sections:</p>
859 <p>improve documentation for <a href=
860 "https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Parameterized-Strings">
861 tparm</a> and static/dynamic variables.</p>
865 <p>add history note to <a href=
866 "https://invisible-island.net/ncurses/man/curs_scanw.3x.html#h2-HISTORY">
867 curs_scanw.3x</a> for <stdarg.h> and
868 <varargs.h></p>
872 <p>add history note to <a href=
873 "https://invisible-island.net/ncurses/man/curs_printw.3x.html#h2-HISTORY">
874 curs_printw.3x</a> for <stdarg.h> and
875 <varargs.h></p>
879 <p>add portability note to <a href=
880 "https://invisible-island.net/ncurses/man/ncurses.3x.html#h3-Header-files">
881 ncurses.3x</a> regarding <stdarg.h></p>
885 <p>add historical notes to <a href=
886 "https://invisible-island.net/ncurses/man/tput.1.html#h2-HISTORY">
888 "https://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h2-HISTORY">
889 curses-terminfo</a> and <a href=
890 "https://invisible-island.net/ncurses/man/curs_color.3x.html#h2-HISTORY">
891 curses-color</a> manpages based on source-code for SVr2,
896 <p>improve history section for <a href=
897 "https://invisible-island.net/ncurses/man/tset.1.html#h2-HISTORY">
898 tset</a> manpage based on the 1BSD tarball, which
899 preceded BSD's SCCS checkins by more than three
906 <p>Other improvements:</p>
910 <p>explain in <a href=
911 "https://invisible-island.net/ncurses/man/ncurses.3x.html#h2-ALTERNATE-CONFIGURATIONS">
912 ncurses.3x</a> that functions in the tinfo library do not
913 rely upon wide-characters.</p>
917 <p>improve manual page for <a href=
918 "https://invisible-island.net/ncurses/man/panel.3x.html#h2-PORTABILITY">
919 panel</a> library, extending the portability section as
920 well as documenting error-returns.</p>
924 <p>add section on margins to <a href=
925 "https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Margins">
926 terminfo.5</a>, adapted from X/Open Curses.</p>
931 "https://invisible-island.net/ncurses/man/term.5.html#h3-LEGACY-STORAGE-FORMAT">
932 man/term.5</a> section on legacy storage format.</p>
936 <p>add a note in <a href=
937 "https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Predefined-Capabilities">
938 terminfo.5</a> explaining that no-parameter strings such
939 as <em><tt>sgr0</tt></em> or <em><tt>cnorm</tt></em>
940 should not be used with tparm.</p>
944 <p>improve description of BSD-style padding in <a href=
945 "https://invisible-island.net/ncurses/man/curs_termcap.3x.html#h2-BUGS">
946 curs_termcap.3x</a></p>
950 <p>improve discussion of padding versus <tt>tparm</tt>
951 and <tt>tputs</tt> in <a href=
952 "https://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Formatting-Output">
953 man/curs_terminfo.3x</a></p>
957 <p>add a note in manual page to explain <a href=
958 "https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Ungetting-characters">
959 ungetch</a> vs <a href=
960 "https://invisible-island.net/ncurses/man/curs_get_wch.3x.html#h3-unget_wch">
965 <p>improve description of error-returns in <a href=
966 "https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-RETURN-VALUE">
967 waddch</a> and <a href=
968 "https://invisible-island.net/ncurses/man/curs_addstr.3x.html#h2-RETURN-VALUE">
969 waddnstr</a> manual pages.</p>
975 <p>There are no new manual pages (all of the manual page updates
976 are to existing pages).</p>
978 <p>Some of the improvements are more subtle, relating to the way
979 the information is presented. For instance, hyphenation is
980 suppressed in the HTML files generated from manual pages because
981 an upgrade to <em>groff</em> gave noticeably poorer results,
982 interfering with the process of creating links between the
983 resulting webpages.</p>
985 <h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting
988 <p>While there were many bugs fixed during development of ncurses
989 6.3, only a few (the reason for this release) were both important
990 and interesting. Most of the bug-fixes were for local issues
991 which did not affect compatibility across releases. Since those
992 are detailed in the <a href=
993 "https://invisible-island.net/ncurses/NEWS.html#t20211018">NEWS</a>
994 file no elaboration is needed here.</p>
996 <p>The interesting bugs were:</p>
1001 "https://invisible-island.net/ncurses/man/curs_bkgd.3x.html#h3-bkgd">
1002 wbkgd</a> and <a href=
1003 "https://invisible-island.net/ncurses/man/curs_bkgrnd.3x.html#h3-bkgrnd">
1004 wbkgrnd</a> to avoid storing a null in the background
1005 character, because it may be used in cases where the
1006 corresponding 0x80 is not treated as a null.</p>
1008 <p>This was a regression introduced in ncurses 6.2 (<a href=
1009 "https://lists.gnu.org/archive/html/bug-ncurses/2020-03/msg00000.html">reported</a>
1010 on the mailing list), for which the workaround was to specify
1011 a blank for the background character.</p>
1015 <p>remove output-related checks for <a href=
1016 "https://invisible-island.net/ncurses/man/curs_outopts.3x.html">
1017 nl/nonl</a> (also <a href=
1018 "https://lists.gnu.org/archive/html/bug-ncurses/2020-09/msg00018.html">
1019 reported</a> on the mailing list).</p>
1023 <p>improve tparm implementation of <tt>%P</tt> and
1024 <tt>%g</tt>, more closely matching SVr4 terminfo. Those
1025 denote <em>static</em> and <em>dynamic</em> variables in
1026 terminfo expressions.</p>
1028 <p>Exactly what those terms meant was never documented before
1029 in any implementation of curses, aside from source code.
1030 Unlike the other two fixes, the problem was discovered while
1031 studying OpenBSD's version of <a href=
1032 "https://invisible-island.net/ncurses/ncurses-openbsd.html#issue_tput">
1037 <h3><a name="h3-config-config" id=
1038 "h3-config-config">Configuration changes</a></h3>
1040 <h4><a name="h4-config-major" id="h4-config-major">Major
1043 <p>There are no major changes. Several new options were added to
1044 ease integration of packages with systems using different
1045 versions of <em>GNAT</em> and <em>ncurses</em>. Also,
1046 improvements were made to configure checks.</p>
1048 <h4><a name="h4-config-options" id=
1049 "h4-config-options">Configuration options</a></h4>
1051 <p>There are a few new/modified configure options:</p>
1054 <dt><tt>--enable-fvisibility</tt>
1058 <p>new configure option and check for <em>gcc</em>
1059 <tt>-fvisibility=hidden</tt> feature</p>
1062 <dt><tt>--enable-leaks</tt>
1066 <p>corrected to allow turning leak-checking off later in a
1070 <dt><tt>--enable-stdnoreturn</tt>
1074 <p>new configure option makes the <code>_Noreturn</code>
1075 keyword optional to ease transition.</p>
1078 <dt><tt>--disable-pkg-ldflags</tt>
1082 <p>revised option also controls whether <code>$LDFLAGS</code>
1083 from the build is provided in “<tt>-config</tt>”
1084 and “<tt>.pc</tt>” files.</p>
1087 <dt><tt>--disable-root-access</tt>
1091 <p>add configure option which tells ncurses to disallow most
1092 file-opens by setuid processes.</p>
1095 <dt><tt>--disable-wattr-macros</tt>
1099 <p>changed default to help packagers who reuse wide ncursesw
1100 header file with non-wide ncurses library.</p>
1103 <dt><tt>--with-pkg-config-libdir</tt>
1107 <p>revised option uses the actual search path from
1108 <em>pkg-config</em> or <em>pkgconf</em> using the output from
1109 <tt>--debug</tt>.</p>
1112 <dt><tt>--with-ada-libname</tt><br>
1113 <tt>--with-form-libname</tt><br>
1114 <tt>--with-menu-libname</tt><br>
1115 <tt>--with-panel-libname</tt>
1119 <p>new several <tt>--with-<em>xxx</em>-libname</tt> options,
1120 to help with pkgsrc</p>
1124 <h3><a name="h3-portability" id="h3-portability">Portability</a></h3>
1126 <p>Many of the portability changes are implemented via the
1127 configure script:</p>
1131 <p>add a special case in the configure script to work around
1132 one of the build-time breakages reported for <a href=
1133 "https://invisible-island.net/ncurses/ncurses-openbsd.html">OpenBSD
1138 "https://www.mail-archive.com/bugs@openbsd.org/msg13200.html">
1139 https://www.mail-archive.com/bugs@openbsd.org/msg13200.html</a></p>
1144 <p>modify configure check for <em>libtool</em> to prevent
1145 accidental use of an OpenBSD program which uses the same
1150 <p>modify configuration checks for build-time tic/infocmp to
1151 use <em>AC_CHECK_TOOL</em>. That can still be overridden by
1152 <tt>--with-tic-path</tt> and <tt>--with-infocmp-path</tt>
1153 when fallbacks are used, but even if not using fallbacks, the
1154 improved check may help with cross-compiling.</p>
1158 <p>relax modification-time comparison in
1159 <em>CF_LINK_FUNCS</em> to allow it to accept link() function
1160 with NFS filesystems which change the mtime on the link
1161 target, e.g., several BSD systems.</p>
1165 <p>modify configure check for c89/c99 aliases of
1166 <em>clang</em> to use its <tt>-std</tt> option instead,
1167 because some platforms, in particular macOS, do not provide
1168 workable c89/c99 aliases.</p>
1172 <p>modify <em>CF_NCURSES_CONFIG</em> to work around
1173 <em>Xcode</em>'s c99 "-W" option, which conflicts with
1174 conventional use for passing linker options.</p>
1178 <p>modify configure scripts to filter out redefinitions of
1179 _XOPEN_SOURCE, e.g., for NetBSD which generally supports 500,
1180 but 600 is needed for ncursesw.</p>
1184 <p>Here are some of the other portability fixes:</p>
1188 <p>change configure-check and source-code for gcc's noreturn
1189 attribute to assume it is a prefix rather than suffix,
1190 matching c11's _Noreturn convention.</p>
1194 <p>modify mk-1st.awk to account for extra-suffix configure
1199 <p>build-fix for termsort module when configured with
1204 <p>modify configure script and makefiles to support ".PHONY"
1205 make program feature.</p>
1209 <p>amend <em>libtool</em> configuration to add dependency for
1210 install.tic, etc., in ncurses/Makefile on the lower-level
1215 <p>modify Ada95 source-generation utility to write to a file
1216 given as parameter rather than to the standard output,
1217 allowing builds with MinGW.</p>
1221 <p>amend tic/infocmp check to allow for the respective tool's
1226 <p>build-fixes for gnat 10.1.1, whose gnatmake drops
1227 integration with gprbuild.</p>
1231 <p>correct configure version-check/warning for g++ to allow
1238 <h2><a name="h2-features" id="h2-features">Features of
1239 <span class="main-name">ncurses</span></a></h2>
1241 <p>The <span class="main-name">ncurses</span> package is fully
1242 upward-compatible with SVr4 (System V Release 4) curses:</p>
1246 <p>All of the SVr4 calls have been implemented (and are
1251 <p><span class="main-name">ncurses</span> supports all of the
1252 for SVr4 curses features including keyboard mapping, color,
1253 forms-drawing with ACS characters, and automatic recognition
1254 of keypad and function keys.</p>
1258 <p><span class="main-name">ncurses</span> provides these SVr4
1259 add-on libraries (not part of X/Open Curses):</p>
1263 <p>the panels library, supporting a stack of windows with
1268 <p>the menus library, supporting a uniform but flexible
1269 interface for menu programming.</p>
1273 <p>the form library, supporting data collection through
1274 on-screen forms.</p>
1280 <p><span class="main-name">ncurses</span>'s terminal database
1281 is fully compatible with that used by SVr4 curses.</p>
1285 <p><span class="main-name">ncurses</span> supports
1286 user-defined capabilities which it can see, but which are
1287 hidden from SVr4 curses applications using the
1288 <em>same</em> terminal database.</p>
1292 <p>It can be optionally configured to match the format
1293 used in related systems such as AIX and Tru64.</p>
1297 <p>Alternatively, <span class="main-name">ncurses</span>
1298 can be configured to use hashed databases rather than the
1299 directory of files used by SVr4 curses.</p>
1305 <p>The <span class="main-name">ncurses</span> utilities have
1306 options to allow you to filter terminfo entries for use with
1307 less capable <em>curses</em>/<em>terminfo</em> versions such
1308 as the HP-UX and AIX ports.</p>
1312 <p>The <span class="main-name">ncurses</span> package also has
1313 many useful extensions over SVr4:</p>
1317 <p>The API is 8-bit clean and base-level conformant with the
1318 X/OPEN curses specification, XSI curses (that is, it
1319 implements all <em>BASE</em> level features, and most
1320 <em>EXTENDED</em> features). It includes many function calls
1321 not supported under SVr4 curses (but portability of all calls
1322 is documented so you can use the SVr4 subset only).</p>
1326 <p>Unlike SVr3 curses, <span class="main-name">ncurses</span>
1327 can write to the rightmost-bottommost corner of the screen if
1328 your terminal has an insert-character capability.</p>
1332 <p>Ada95 and C++ bindings.</p>
1336 <p>Support for mouse event reporting with X Window xterm and
1337 FreeBSD and OS/2 console windows.</p>
1341 <p>Extended mouse support via Alessandro Rubini's gpm
1346 <p>The function <code>wresize</code> allows you to resize
1347 windows, preserving their data.</p>
1351 <p>The function <code>use_default_colors</code> allows you to
1352 use the terminal's default colors for the default color pair,
1353 achieving the effect of transparent colors.</p>
1357 <p>The functions <code>keyok</code> and
1358 <code>define_key</code> allow you to better control the use
1359 of function keys, e.g., disabling the <span class=
1360 "main-name">ncurses</span> KEY_MOUSE, or by defining more
1361 than one control sequence to map to a given key code.</p>
1365 <p>Support for direct-color terminals, such as modern
1370 <p>Support for 256-color terminals, such as modern xterm.</p>
1374 <p>Support for 16-color terminals, such as <em>aixterm</em>
1375 and <em>modern xterm</em>.</p>
1379 <p>Better cursor-movement optimization. The package now
1380 features a cursor-local-movement computation more efficient
1381 than either BSD's or System V's.</p>
1385 <p>Super hardware scrolling support. The screen-update code
1386 incorporates a novel, simple, and cheap algorithm that
1387 enables it to make optimal use of hardware scrolling,
1388 line-insertion, and line-deletion for screen-line movements.
1389 This algorithm is more powerful than the 4.4BSD curses
1390 <code>quickch</code> routine.</p>
1394 <p>Real support for terminals with the magic-cookie glitch.
1395 The screen-update code will refrain from drawing a highlight
1396 if the magic- cookie unattributed spaces required just before
1397 the beginning and after the end would step on a non-space
1398 character. It will automatically shift highlight boundaries
1399 when doing so would make it possible to draw the highlight
1400 without changing the visual appearance of the screen.</p>
1404 <p>It is possible to generate the library with a list of
1405 pre-loaded fallback entries linked to it so that it can serve
1406 those terminal types even when no terminfo tree or termcap
1407 file is accessible (this may be useful for support of
1408 screen-oriented programs that must run in single-user
1414 "https://invisible-island.net/ncurses/man/tic.1m.html"><span class="part-name">
1415 tic</span></a>/<a href=
1416 "https://invisible-island.net/ncurses/man/captoinfo.1m.html">captoinfo</a>
1417 utility provided with <span class="main-name">ncurses</span>
1418 has the ability to translate many termcaps from the XENIX,
1419 IBM and AT&T extension sets.</p>
1423 <p>A BSD-like <a href=
1424 "https://invisible-island.net/ncurses/man/tset.1.html"><span class="part-name">
1425 tset</span></a> utility is provided.</p>
1429 <p>The <span class="main-name">ncurses</span> library and
1430 utilities will automatically read terminfo entries from
1431 $HOME/.terminfo if it exists, and compile to that directory
1432 if it exists and the user has no write access to the system
1433 directory. This feature makes it easier for users to have
1434 personal terminfo entries without giving up access to the
1435 system terminfo directory.</p>
1439 <p>You may specify a path of directories to search for
1440 compiled descriptions with the environment variable
1441 TERMINFO_DIRS (this generalizes the feature provided by
1442 TERMINFO under stock System V.)</p>
1446 <p>In terminfo source files, use capabilities may refer not
1447 just to other entries in the same source file (as in System
1448 V) but also to compiled entries in either the system terminfo
1449 directory or the user's $HOME/.terminfo directory.</p>
1453 <p>The table-of-entries utility <a href=
1454 "https://invisible-island.net/ncurses/man/toe.1m.html"><span class="part-name">
1455 toe</span></a> makes it easy for users to see exactly what
1456 terminal types are available on the system.</p>
1460 <p>The library meets the XSI requirement that every macro
1461 entry point has a corresponding function which may be linked
1462 (and will be prototype-checked) if the macro definition is
1463 disabled with <code>#undef</code>.</p>
1467 <p>Extensive documentation is provided (see the <em><a href=
1468 "https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading">
1469 Additional Reading</a></em> section of the <em><a href=
1470 "https://invisible-island.net/ncurses/ncurses.faq.html"><span class="main-name">
1471 ncurses</span> FAQ</a></em> for online documentation).</p>
1475 <h2><a name="h2-who-uses" id="h2-who-uses">Applications using
1476 <span class="main-name">ncurses</span></a></h2>
1478 <p>The <span class="main-name">ncurses</span> distribution
1479 includes a selection of test programs (including a few games).
1480 These are available separately as <a href=
1481 "https://invisible-island.net/ncurses/ncurses-examples.html">ncurses-examples</a></p>
1483 <p>The ncurses library has been tested with a wide variety of
1484 applications including:</p>
1488 <dt><span class="part-name">aptitude</span>
1492 <p>FrontEnd to Apt, the debian package manager</p>
1495 "https://wiki.debian.org/Aptitude">https://wiki.debian.org/Aptitude</a></p>
1498 <dt><span class="part-name">cdk</span>
1502 <p>Curses Development Kit</p>
1505 "https://invisible-island.net/cdk/">https://invisible-island.net/cdk/</a><br>
1510 <dt><span class="part-name">ded</span>
1514 <p>directory-editor</p>
1517 "https://invisible-island.net/ded/">https://invisible-island.net/ded/</a></p>
1520 <dt><span class="part-name">dialog</span>
1524 <p>the underlying application used in Slackware's setup,
1525 and the basis for similar install/configure applications on
1529 "https://invisible-island.net/dialog/">https://invisible-island.net/dialog/</a></p>
1532 <dt><span class="part-name">lynx</span>
1536 <p>the text WWW browser</p>
1539 "https://lynx.invisible-island.net/">https://lynx.invisible-island.net/</a></p>
1542 <dt><span class="part-name">mutt</span>
1548 <p><a href="http://www.mutt.org/">http://www.mutt.org/</a></p>
1551 <dt><span class="part-name">ncftp</span>
1555 <p>file-transfer utility</p>
1558 "https://www.ncftp.com/">https://www.ncftp.com/</a></p>
1561 <dt><span class="part-name">nvi</span>
1565 <p>New vi uses ncurses.</p>
1568 "https://sites.google.com/a/bostic.com/keithbostic/vi">https://sites.google.com/a/bostic.com/keithbostic/vi</a><br>
1573 <dt><span class="part-name">ranger</span>
1577 <p>A console file manager with VI key bindings in
1578 <em>Python</em>.</p>
1581 "https://ranger.github.io/">https://ranger.github.io/</a></p>
1584 <dt><span class="part-name">tin</span>
1588 <p>newsreader, supporting color, MIME</p>
1590 <p><a href="http://www.tin.org/">http://www.tin.org/</a></p>
1593 <dt><span class="part-name">vifm</span>
1597 <p>File manager with vi like keybindings</p>
1599 <p><a href="https://vifm.info/">https://vifm.info/</a></p>
1604 <p>as well as some that use <span class=
1605 "main-name">ncurses</span> for the terminfo support alone:</p>
1609 <dt><span class="part-name">minicom</span>
1613 <p>terminal emulator for serial modem connections</p>
1616 "https://alioth.debian.org/projects/minicom/">https://alioth.debian.org/projects/minicom/</a></p>
1619 <dt><span class="part-name">mosh</span>
1623 <p>a replacement for <code>ssh</code>.</p>
1625 <p><a href="https://mosh.org/">https://mosh.org/</a></p>
1628 <dt><span class="part-name">tack</span>
1632 <p>terminfo action checker</p>
1635 "https://invisible-island.net/ncurses/tack.html">https://invisible-island.net/ncurses/tack.html</a></p>
1638 <dt><span class="part-name">tmux</span>
1642 <p>terminal multiplexor</p>
1645 "https://github.com/tmux/tmux/wiki">https://github.com/tmux/tmux/wiki</a></p>
1648 <dt><span class="part-name">vile</span>
1652 <p><em>vi-like-emacs</em> may be built to use the terminfo,
1653 termcap or curses interfaces.</p>
1656 "https://invisible-island.net/vile/">https://invisible-island.net/vile/</a></p>
1661 <p>and finally, those which use only the termcap interface:</p>
1665 <dt><span class="part-name">emacs</span>
1672 "https://www.gnu.org/software/emacs/">https://www.gnu.org/software/emacs/</a></p>
1675 <dt><span class="part-name">less</span>
1679 <p>The most commonly used <em>pager</em> (a program that
1680 displays text files).</p>
1683 "http://www.greenwoodsoftware.com/less/">http://www.greenwoodsoftware.com/less/</a></p>
1686 <dt><span class="part-name">screen</span>
1690 <p>terminal multiplexor</p>
1693 "https://www.gnu.org/software/screen/">https://www.gnu.org/software/screen/</a></p>
1696 <dt><span class="part-name">vim</span>
1702 <p><a href="https://www.vim.org/">https://www.vim.org/</a></p>
1707 <h2><a name="h2-development" id="h2-development">Development
1710 <p>Zeyd Ben-Halim started <span class="main-name">ncurses</span>
1711 from a previous package pcurses, written by Pavel Curtis. Eric S.
1712 Raymond continued development. Jürgen Pfeifer wrote most of
1713 the form and menu libraries.</p>
1715 <p>Ongoing development work is done by <a href=
1716 "mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas
1717 E. Dickey has acted as the maintainer for the Free Software
1718 Foundation, which held a <a href=
1719 "https://invisible-island.net/ncurses/ncurses-license.html">copyright
1720 on ncurses</a> for releases 4.2 through 6.1. Following the
1721 release of ncurses 6.1, effective as of release 6.2, copyright
1722 for ncurses reverted to Thomas E. Dickey (see the <a href=
1723 "https://invisible-island.net/ncurses/ncurses.faq.html#relicensed">
1724 ncurses FAQ</a> for additional information).</p>
1726 <p>Contact the current maintainers at</p>
1729 <a href="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>
1732 <p>To join the ncurses mailing list, please write email to</p>
1736 "mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a>
1738 containing the line:
1740 <p><code>subscribe</code>
1741 <em><name>@<host.domain></em></p>
1744 <p>This list is open to anyone interested in helping with the
1745 development and testing of this package.</p>
1747 <p>Beta versions of <span class="main-name">ncurses</span> are
1748 made available at</p>
1752 "ftp://ftp.invisible-island.net/ncurses/current/">ftp://ftp.invisible-island.net/ncurses/current/</a>
1755 "https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/</a> .</p>
1758 <p>Patches to the current release are made available at</p>
1762 "ftp://ftp.invisible-island.net/ncurses/6.2/">ftp://ftp.invisible-island.net/ncurses/6.2/</a>
1765 "https://invisible-mirror.net/archives/ncurses/6.2/">https://invisible-mirror.net/archives/ncurses/6.2/</a> .</p>
1768 <p>There is an archive of the mailing list here:</p>
1772 "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
1774 "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
1777 <h2><a name="h2-this-stuff" id="h2-this-stuff">Related
1780 <p>The release notes make scattered references to these pages,
1781 which may be interesting by themselves:</p>
1785 "https://invisible-island.net/ncurses/ncurses-license.html"><span class="main-name">
1786 ncurses</span> licensing</a></li>
1789 "https://invisible-island.net/ncurses/ncurses-mapsyms.html">Symbol
1790 versioning in <span class="main-name">ncurses</span></a></li>
1793 "https://invisible-island.net/ncurses/ncurses-slang.html">Comments
1794 on <span class="main-name">ncurses</span> versus <span class=
1795 "main-name">slang</span> (S-Lang)</a></li>
1798 "https://invisible-island.net/ncurses/ncurses-openbsd.html">Comments
1799 on <span class="main-name">OpenBSD</span></a></li>
1802 "https://invisible-island.net/ncurses/tack.html">tack –
1803 terminfo action checker</a></li>
1806 "https://invisible-island.net/ncurses/tctest.html">tctest
1807 – termcap library checker</a></li>
1810 "https://invisible-island.net/ncurses/ncurses.html#download_database">
1811 Terminal Database</a></li>
1814 <h2><a name="h2-other-stuff" id="h2-other-stuff">Other
1817 <p>The distribution provides a newer version of the
1818 terminfo-format terminal description file once maintained by
1819 <a href="http://www.catb.org/~esr/terminfo/">Eric
1820 Raymond</a> . Unlike the older version, the termcap and
1821 terminfo data are provided in the same file, which also provides
1822 several user-definable extensions beyond the X/Open
1825 <p>You can find lots of information on terminal-related topics
1826 not covered in the terminfo file at <a href=
1827 "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
1828 Richard Shuford's archive</a> . The collection of computer
1830 "http://www.bitsavers.org/pdf/">bitsavers.org</a> has also been
1835 <li><a href="#h2-overview">Overview</a></li>
1838 <a href="#h2-release-notes">Release Notes</a>
1841 <a href="#h3-library">Library improvements</a>
1843 <li><a href="#h4-new-library">New features</a></li>
1845 <li><a href="#h4-fixes-library">Other
1846 improvements</a></li>
1851 <a href="#h3-programs">Program improvements</a>
1853 <li><a href="#h4-utilities">Utilities</a></li>
1855 <li><a href="#h4-examples">Examples</a></li>
1859 <li><a href="#h3-database">Terminal database</a></li>
1861 <li><a href="#h3-documentation">Documentation</a></li>
1863 <li><a href="#h3-bug-fixes">Interesting bug-fixes</a></li>
1866 <a href="#h3-config-config">Configuration changes</a>
1868 <li><a href="#h4-config-major">Major changes</a></li>
1870 <li><a href="#h4-config-options">Configuration
1875 <li><a href="#h3-portability">Portability</a></li>
1879 <li><a href="#h2-features">Features of <span class=
1880 "main-name">ncurses</span></a></li>
1882 <li><a href="#h2-who-uses">Applications using <span class=
1883 "main-name">ncurses</span></a></li>
1885 <li><a href="#h2-development">Development activities</a></li>
1887 <li><a href="#h2-this-stuff">Related resources</a></li>
1889 <li><a href="#h2-other-stuff">Other resources</a></li>