10e3d5408SPeter Wemm<!-- 2*21817992SBaptiste Daroussin $Id: announce.html.in,v 1.107 2024/04/27 16:45:27 tom Exp $ 34a1a9510SRong-En Fan **************************************************************************** 4*21817992SBaptiste Daroussin * Copyright 2018-2023,2024 Thomas E. Dickey * 54a1a9510SRong-En Fan * * 64a1a9510SRong-En Fan * Permission is hereby granted, free of charge, to any person obtaining a * 74a1a9510SRong-En Fan * copy of this software and associated documentation files (the * 84a1a9510SRong-En Fan * "Software"), to deal in the Software without restriction, including * 94a1a9510SRong-En Fan * without limitation the rights to use, copy, modify, merge, publish, * 104a1a9510SRong-En Fan * distribute, distribute with modifications, sublicense, and/or sell * 114a1a9510SRong-En Fan * copies of the Software, and to permit persons to whom the Software is * 124a1a9510SRong-En Fan * furnished to do so, subject to the following conditions: * 134a1a9510SRong-En Fan * * 144a1a9510SRong-En Fan * The above copyright notice and this permission notice shall be included * 154a1a9510SRong-En Fan * in all copies or substantial portions of the Software. * 164a1a9510SRong-En Fan * * 174a1a9510SRong-En Fan * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 184a1a9510SRong-En Fan * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 194a1a9510SRong-En Fan * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 204a1a9510SRong-En Fan * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 214a1a9510SRong-En Fan * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 224a1a9510SRong-En Fan * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 234a1a9510SRong-En Fan * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 244a1a9510SRong-En Fan * * 254a1a9510SRong-En Fan * Except as contained in this notice, the name(s) of the above copyright * 264a1a9510SRong-En Fan * holders shall not be used in advertising or otherwise to promote the * 274a1a9510SRong-En Fan * sale, use or other dealings in this Software without prior written * 284a1a9510SRong-En Fan * authorization. * 294a1a9510SRong-En Fan **************************************************************************** 300e3d5408SPeter Wemm--> 3173f0a83dSXin LI<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 3206bfebdeSXin LI<html> 3306bfebdeSXin LI<head> 3406bfebdeSXin LI <meta name="generator" content= 35*21817992SBaptiste Daroussin "HTML Tidy for HTML5 for Linux version 5.6.0"> 3606bfebdeSXin LI <title>Announcing ncurses @VERSION@</title> 37e1865124SBaptiste Daroussin <link rel="author" href="mailto:bug-ncurses@gnu.org"> 3806bfebdeSXin LI <meta http-equiv="Content-Type" content= 3906bfebdeSXin LI "text/html; charset=us-ascii"> 40aae38d10SBaptiste Daroussin <style type="text/css"> 41aae38d10SBaptiste Daroussin p,li { max-width:700px; } 42aae38d10SBaptiste Daroussin dd { max-width:630px; } 43aae38d10SBaptiste Daroussin *.main-name { 44aae38d10SBaptiste Daroussin font-style: italic; 45aae38d10SBaptiste Daroussin font-variant: small-caps; 46aae38d10SBaptiste Daroussin } 47aae38d10SBaptiste Daroussin *.part-name { 48aae38d10SBaptiste Daroussin font-family: "Andale Mono", "Monotype.com", monospace; 49aae38d10SBaptiste Daroussin font-size: 12pt; 50aae38d10SBaptiste Daroussin font-weight: bold; 51aae38d10SBaptiste Daroussin } 52e1865124SBaptiste Daroussin *.demo-name { 53e1865124SBaptiste Daroussin font-family: "Andale Mono", "Monotype.com", monospace; 54e1865124SBaptiste Daroussin font-size: 10pt; 55e1865124SBaptiste Daroussin } 56aae38d10SBaptiste Daroussin </style> 5706bfebdeSXin LI</head> 5806bfebdeSXin LI<body> 59aae38d10SBaptiste Daroussin <h1 class="no-header">Announcing ncurses @VERSION@</h1> 6073f0a83dSXin LI 61aae38d10SBaptiste Daroussin <h2><a name="h2-overview" id="h2-overview">Overview</a></h2> 62aae38d10SBaptiste Daroussin 63aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> (new curses) 64aae38d10SBaptiste Daroussin library is a free software emulation of curses in System V 65aae38d10SBaptiste Daroussin Release 4.0 (SVr4), and more. It uses terminfo format, supports 66aae38d10SBaptiste Daroussin pads and color and multiple highlights and forms characters and 67aae38d10SBaptiste Daroussin function-key mapping, and has all the other SVr4-curses 68aae38d10SBaptiste Daroussin enhancements over BSD curses. SVr4 curses became the basis of 69aae38d10SBaptiste Daroussin X/Open Curses.</p> 700e3d5408SPeter Wemm 7106bfebdeSXin LI <p>In mid-June 1995, the maintainer of 4.4BSD curses declared 7206bfebdeSXin LI that he considered 4.4BSD curses obsolete, and encouraged the 73aae38d10SBaptiste Daroussin keepers of <span class="main-name">unix</span> releases such as 74aae38d10SBaptiste Daroussin BSD/OS, FreeBSD and NetBSD to switch over to <span class= 75aae38d10SBaptiste Daroussin "main-name">ncurses</span>.</p> 760e3d5408SPeter Wemm 77aae38d10SBaptiste Daroussin <p>Since 1995, <span class="main-name">ncurses</span> has been 78aae38d10SBaptiste Daroussin ported to many systems:</p> 79aae38d10SBaptiste Daroussin 80aae38d10SBaptiste Daroussin <ul> 81aae38d10SBaptiste Daroussin <li>It is used in almost every system based on the Linux kernel 82aae38d10SBaptiste Daroussin (aside from some embedded applications).</li> 83aae38d10SBaptiste Daroussin 84aae38d10SBaptiste Daroussin <li>It is used as the system curses library on OpenBSD, FreeBSD 85e1865124SBaptiste Daroussin and MacOS.</li> 86aae38d10SBaptiste Daroussin 87aae38d10SBaptiste Daroussin <li>It is used in environments such as Cygwin and MinGW. The 88aae38d10SBaptiste Daroussin first of these was EMX on OS/2 Warp.</li> 89aae38d10SBaptiste Daroussin 90aae38d10SBaptiste Daroussin <li>It is used (though usually not as the <em>system</em> 91aae38d10SBaptiste Daroussin curses) on all of the vendor <span class= 92aae38d10SBaptiste Daroussin "main-name">unix</span> systems, e.g., AIX, HP-UX, IRIX64, SCO, 93aae38d10SBaptiste Daroussin Solaris, Tru64.</li> 94aae38d10SBaptiste Daroussin 95aae38d10SBaptiste Daroussin <li>It should work readily on any ANSI/POSIX-conforming 96aae38d10SBaptiste Daroussin <span class="main-name">unix</span>.</li> 97aae38d10SBaptiste Daroussin </ul> 980e3d5408SPeter Wemm 9906bfebdeSXin LI <p>The distribution includes the library and support utilities, 100aae38d10SBaptiste Daroussin including</p> 10173f0a83dSXin LI 1020e3d5408SPeter Wemm <ul> 103e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/captoinfo.1m.html"><span class= 104e1865124SBaptiste Daroussin "part-name">captoinfo</span></a>, a termcap conversion 105e1865124SBaptiste Daroussin tool</li> 10673f0a83dSXin LI 107e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/clear.1.html"><span class= 108e1865124SBaptiste Daroussin "part-name">clear</span></a>, utility for clearing the 109e1865124SBaptiste Daroussin screen</li> 11073f0a83dSXin LI 111e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/infocmp.1m.html"><span class= 112e1865124SBaptiste Daroussin "part-name">infocmp</span></a>, the terminfo decompiler</li> 113aae38d10SBaptiste Daroussin 114e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/tabs.1.html"><span class= 115e1865124SBaptiste Daroussin "part-name">tabs</span></a>, set tabs on a terminal</li> 116aae38d10SBaptiste Daroussin 117e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/tic.1m.html"><span class= 118e1865124SBaptiste Daroussin "part-name">tic</span></a>, the terminfo compiler</li> 119aae38d10SBaptiste Daroussin 120e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/toe.1m.html"><span class= 121e1865124SBaptiste Daroussin "part-name">toe</span></a>, list (table of) terminfo 122e1865124SBaptiste Daroussin entries</li> 123aae38d10SBaptiste Daroussin 124e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/tput.1.html"><span class= 125e1865124SBaptiste Daroussin "part-name">tput</span></a>, utility for retrieving terminal 126e1865124SBaptiste Daroussin capabilities in shell scripts</li> 127aae38d10SBaptiste Daroussin 128e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/man/tset.1.html"><span class= 129e1865124SBaptiste Daroussin "part-name">tset</span></a>, to initialize the terminal</li> 130aae38d10SBaptiste Daroussin </ul> 131aae38d10SBaptiste Daroussin 132aae38d10SBaptiste Daroussin <p>Full manual pages are provided for the library and tools.</p> 133aae38d10SBaptiste Daroussin 134aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> distribution is 135aae38d10SBaptiste Daroussin available at <span class="main-name">ncurses</span>' <a href= 136e1865124SBaptiste Daroussin "@HOMEPAGE@/">homepage</a>:</p> 137aae38d10SBaptiste Daroussin 138aae38d10SBaptiste Daroussin <blockquote> 139aae38d10SBaptiste Daroussin <p><a href= 140*21817992SBaptiste Daroussin "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/</a> 141aae38d10SBaptiste Daroussin or<br> 142aae38d10SBaptiste Daroussin <a href= 143aae38d10SBaptiste Daroussin "https://invisible-mirror.net/archives/ncurses/">https://invisible-mirror.net/archives/ncurses/</a> .</p> 144aae38d10SBaptiste Daroussin </blockquote> 145aae38d10SBaptiste Daroussin 146*21817992SBaptiste Daroussin <p>It is also available at the GNU distribution site</p> 147aae38d10SBaptiste Daroussin 148aae38d10SBaptiste Daroussin <blockquote> 149aae38d10SBaptiste Daroussin <p><a href= 150*21817992SBaptiste Daroussin "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/</a> .</p> 151aae38d10SBaptiste Daroussin </blockquote> 152aae38d10SBaptiste Daroussin 153aae38d10SBaptiste Daroussin <h2><a name="h2-release-notes" id="h2-release-notes">Release 154aae38d10SBaptiste Daroussin Notes</a></h2> 155aae38d10SBaptiste Daroussin 156aae38d10SBaptiste Daroussin <p>These notes are for <span class="main-name">ncurses</span> 157*21817992SBaptiste Daroussin @VERSION@, released <strong>April 27, 2024</strong>.</p> 158aae38d10SBaptiste Daroussin 159aae38d10SBaptiste Daroussin <p>This release is designed to be source-compatible with 160*21817992SBaptiste Daroussin <span class="main-name">ncurses</span> 5.0 through 6.4; providing 161aae38d10SBaptiste Daroussin extensions to the application binary interface (ABI). Although 162aae38d10SBaptiste Daroussin the source can still be configured to support the <span class= 163e1865124SBaptiste Daroussin "main-name">ncurses</span> 5 ABI, the reason for the release is 164e1865124SBaptiste Daroussin to reflect improvements to the <span class= 165e1865124SBaptiste Daroussin "main-name">ncurses</span> 6 ABI and the supporting utility 166e1865124SBaptiste Daroussin programs.</p> 1670e3d5408SPeter Wemm 168aae38d10SBaptiste Daroussin <p>There are, of course, numerous other improvements, listed in 169aae38d10SBaptiste Daroussin this announcement.</p> 17073f0a83dSXin LI 171e1865124SBaptiste Daroussin <p>The most <a href="#h3-bug-fixes">important 172*21817992SBaptiste Daroussin bug-fixes/improvements</a> dealt with robustness issues. The 173*21817992SBaptiste Daroussin release notes also mention some other bug-fixes, but are focused 174*21817992SBaptiste Daroussin on new features and improvements to existing features since 175*21817992SBaptiste Daroussin <span class="main-name">ncurses</span> 6.4 release.</p> 176aae38d10SBaptiste Daroussin 177e1865124SBaptiste Daroussin <h3><a name="h3-library" id="h3-library">Library improvements</a></h3> 178aae38d10SBaptiste Daroussin 179e1865124SBaptiste Daroussin <h4><a name="h4-new-library" id="h4-new-library">New features</a></h4> 180aae38d10SBaptiste Daroussin 181*21817992SBaptiste Daroussin <p>These are new features:</p> 18206bfebdeSXin LI 18315589c42SPeter Wemm <ul> 184aae38d10SBaptiste Daroussin <li> 185*21817992SBaptiste Daroussin <p>The low-level terminfo and termcap interfaces are used 186*21817992SBaptiste Daroussin both by the higher-level curses library, as well as by many 187*21817992SBaptiste Daroussin applications.</p> 1887a69bbfbSPeter Wemm 189*21817992SBaptiste Daroussin <p>The functions which convert parameterized terminal 190*21817992SBaptiste Daroussin capability strings for output to the terminal 191*21817992SBaptiste Daroussin (<code>tiparm</code> and <code>tparm</code>) analyze the 192*21817992SBaptiste Daroussin capability string to determine which parameters are strings 193*21817992SBaptiste Daroussin (i.e., addresses), versus numbers (not addresses).</p> 1940e3d5408SPeter Wemm 195*21817992SBaptiste Daroussin <p>The library's analysis of a capability string may differ 196*21817992SBaptiste Daroussin from the calling application's design if environment 197*21817992SBaptiste Daroussin variables are used to point to an invalid terminal database. 198*21817992SBaptiste Daroussin This is a longstanding problem with <em>all</em> 199*21817992SBaptiste Daroussin implementations of terminfo, dating from the early 1980s.</p> 2000e3d5408SPeter Wemm 201*21817992SBaptiste Daroussin <p>Two new functions address this problem: by providing a 202*21817992SBaptiste Daroussin function which allows the calling application to tell ncurses 203*21817992SBaptiste Daroussin how many string-parameters to expect:</p> 20473f0a83dSXin LI 205aae38d10SBaptiste Daroussin <ul> 206*21817992SBaptiste Daroussin <li><code>tiscan_s</code> helps applications check 207*21817992SBaptiste Daroussin formatting capabilities that would be passed to 208*21817992SBaptiste Daroussin <code>tiparm_s</code>.</li> 20906bfebdeSXin LI 210*21817992SBaptiste Daroussin <li><code>tiparm_s</code> provides applications a way to 211*21817992SBaptiste Daroussin tell ncurses what the expected parameters are for a 212*21817992SBaptiste Daroussin capability.</li> 213e1865124SBaptiste Daroussin </ul> 214aae38d10SBaptiste Daroussin </li> 215*21817992SBaptiste Daroussin 216*21817992SBaptiste Daroussin <li> 217*21817992SBaptiste Daroussin <p>The ncurses library supports a compile-time feature 218*21817992SBaptiste Daroussin (enabled with the configure <code>--enable-check-size</code> 219*21817992SBaptiste Daroussin option) which simplifies initialization with terminals which 220*21817992SBaptiste Daroussin do not negotiate window (screen) size. This is done in 221*21817992SBaptiste Daroussin <code>setupterm</code>, by providing for using ANSI 222*21817992SBaptiste Daroussin cursor-position report (in user6/user7 terminfo capabilities) 223*21817992SBaptiste Daroussin to obtain the screen size if neither environment variables or 224*21817992SBaptiste Daroussin ioctl is used.</p> 225*21817992SBaptiste Daroussin 226*21817992SBaptiste Daroussin <p>The ncurses test-program with options 227*21817992SBaptiste Daroussin “<code>-E -T</code>” demonstrates this 228*21817992SBaptiste Daroussin feature.</p> 229*21817992SBaptiste Daroussin </li> 230*21817992SBaptiste Daroussin 231*21817992SBaptiste Daroussin <li>add functions to query tty-flags in 232*21817992SBaptiste Daroussin <code>SCREEN</code></li> 233aae38d10SBaptiste Daroussin </ul> 234aae38d10SBaptiste Daroussin 235*21817992SBaptiste Daroussin <p>This release drops compatibility with obsolete versions of 236*21817992SBaptiste Daroussin <a href="@HOMEPAGE@/tack/">tack</a>, e.g., pre-1.08</p> 237*21817992SBaptiste Daroussin 238aae38d10SBaptiste Daroussin <h4><a name="h4-fixes-library" id="h4-fixes-library">Other 239aae38d10SBaptiste Daroussin improvements</a></h4> 240aae38d10SBaptiste Daroussin 241aae38d10SBaptiste Daroussin <p>These are improvements to existing features:</p> 242aae38d10SBaptiste Daroussin 243aae38d10SBaptiste Daroussin <ul> 244aae38d10SBaptiste Daroussin <li> 245*21817992SBaptiste Daroussin <p>In addition to the new, safer function 246*21817992SBaptiste Daroussin <code>tiparm_s</code>, ncurses adds checks to make the older 247*21817992SBaptiste Daroussin <code>tiparm</code>, <code>tparm</code> and 248*21817992SBaptiste Daroussin <code>tgoto</code> functions safer:</p> 249aae38d10SBaptiste Daroussin 250aae38d10SBaptiste Daroussin <ul> 251aae38d10SBaptiste Daroussin <li> 252*21817992SBaptiste Daroussin <p>the terminfo functions <code>tiparm</code> and 253*21817992SBaptiste Daroussin <code>tparm</code> ensure that the capability string 254*21817992SBaptiste Daroussin comes from the terminal description which ncurses loads, 255*21817992SBaptiste Daroussin rather than from random data which the application 256*21817992SBaptiste Daroussin happens to have.</p> 257aae38d10SBaptiste Daroussin </li> 258aae38d10SBaptiste Daroussin 259aae38d10SBaptiste Daroussin <li> 260*21817992SBaptiste Daroussin <p>the <code>tgoto</code> function disallows capabilities 261*21817992SBaptiste Daroussin which its analysis shows will attempt to use string 262*21817992SBaptiste Daroussin parameters.</p> 263*21817992SBaptiste Daroussin </li> 264*21817992SBaptiste Daroussin 265*21817992SBaptiste Daroussin <li> 266*21817992SBaptiste Daroussin <p>ncurses uses internal functions which correspond to 267*21817992SBaptiste Daroussin <code>tiparm</code>, and <code>tgoto</code> which ensure 268*21817992SBaptiste Daroussin that the capability strings which are passed to these 269*21817992SBaptiste Daroussin functions come from the loaded terminal description.</p> 270aae38d10SBaptiste Daroussin </li> 271aae38d10SBaptiste Daroussin </ul> 272aae38d10SBaptiste Daroussin </li> 273aae38d10SBaptiste Daroussin 274aae38d10SBaptiste Daroussin <li> 275*21817992SBaptiste Daroussin <p>improve check in <code>lib_tparm.c</code>, ensuring that a 276*21817992SBaptiste Daroussin char* fits into a <code>TPARM_ARG</code></p> 277aae38d10SBaptiste Daroussin </li> 278aae38d10SBaptiste Daroussin 279aae38d10SBaptiste Daroussin <li> 280*21817992SBaptiste Daroussin <p>modify <code>_nc_syserr_abort</code> to use 281*21817992SBaptiste Daroussin <code>_nc_env_access</code>, rather than only checking root 282*21817992SBaptiste Daroussin uid</p> 283aae38d10SBaptiste Daroussin </li> 284aae38d10SBaptiste Daroussin 285aae38d10SBaptiste Daroussin <li> 286*21817992SBaptiste Daroussin <p>improve thread lock in <code>lib_trace.c</code></p> 287*21817992SBaptiste Daroussin </li> 288*21817992SBaptiste Daroussin 289*21817992SBaptiste Daroussin <li> 290*21817992SBaptiste Daroussin <p>modify <code>flushinp</code> to use file descriptors in 291*21817992SBaptiste Daroussin <code>SCREEN</code>, rather than from <code>TERMINAL</code>, 292*21817992SBaptiste Daroussin and check if they are for a terminal, like SVr4</p> 293*21817992SBaptiste Daroussin </li> 294*21817992SBaptiste Daroussin 295*21817992SBaptiste Daroussin <li> 296*21817992SBaptiste Daroussin <p>modify <code>mcprint</code> to use file descriptor in 297*21817992SBaptiste Daroussin <code>SCREEN</code>, for consistency</p> 298*21817992SBaptiste Daroussin </li> 299*21817992SBaptiste Daroussin 300*21817992SBaptiste Daroussin <li> 301*21817992SBaptiste Daroussin <p>modify internal function <code>_nc_read_file_entry</code> 302*21817992SBaptiste Daroussin to show relevant filename in warnings</p> 303*21817992SBaptiste Daroussin </li> 304*21817992SBaptiste Daroussin 305*21817992SBaptiste Daroussin <li> 306*21817992SBaptiste Daroussin <p>improve checks in internal function 307*21817992SBaptiste Daroussin <code>convert_string</code> for corrupt terminfo entry</p> 308*21817992SBaptiste Daroussin </li> 309*21817992SBaptiste Daroussin 310*21817992SBaptiste Daroussin <li> 311*21817992SBaptiste Daroussin <p>review/improve handling of out-of-memory conditions</p> 312*21817992SBaptiste Daroussin </li> 313*21817992SBaptiste Daroussin 314*21817992SBaptiste Daroussin <li> 315*21817992SBaptiste Daroussin <p>limit delays to 30 seconds, i.e., padding delays in 316*21817992SBaptiste Daroussin terminfo, as well as <code>napms</code> and 317*21817992SBaptiste Daroussin <code>delay_output</code> functions</p> 318*21817992SBaptiste Daroussin </li> 319*21817992SBaptiste Daroussin 320*21817992SBaptiste Daroussin <li> 321*21817992SBaptiste Daroussin <p>fix reallocation loop for <code>vsnprintf</code> in 322*21817992SBaptiste Daroussin <code>_nc_sprintf_string</code> by copying the va_list 323*21817992SBaptiste Daroussin variable</p> 324*21817992SBaptiste Daroussin </li> 325*21817992SBaptiste Daroussin 326*21817992SBaptiste Daroussin <li> 327*21817992SBaptiste Daroussin <p>modify <code>delscreen</code> to limit the windows which 328*21817992SBaptiste Daroussin it creates to just those associated with the screen</p> 329*21817992SBaptiste Daroussin </li> 330*21817992SBaptiste Daroussin 331*21817992SBaptiste Daroussin <li> 332*21817992SBaptiste Daroussin <p>modify <code>endwin</code> to return an error if it is 333*21817992SBaptiste Daroussin called again without an intervening screen update</p> 334*21817992SBaptiste Daroussin </li> 335*21817992SBaptiste Daroussin 336*21817992SBaptiste Daroussin <li> 337*21817992SBaptiste Daroussin <p>modify <code>wenclose</code> to handle pads</p> 338*21817992SBaptiste Daroussin </li> 339*21817992SBaptiste Daroussin 340*21817992SBaptiste Daroussin <li> 341*21817992SBaptiste Daroussin <p>eliminate use of <code>PATH_MAX</code> in 342*21817992SBaptiste Daroussin <code>lib_trace.c</code></p> 343*21817992SBaptiste Daroussin </li> 344*21817992SBaptiste Daroussin 345*21817992SBaptiste Daroussin <li> 346*21817992SBaptiste Daroussin <p>provide for any <code>CCHARW_MAX</code> greater than 1</p> 347aae38d10SBaptiste Daroussin </li> 348aae38d10SBaptiste Daroussin </ul> 349aae38d10SBaptiste Daroussin 350aae38d10SBaptiste Daroussin <p>These are corrections to existing features:</p> 351aae38d10SBaptiste Daroussin 352aae38d10SBaptiste Daroussin <ul> 353aae38d10SBaptiste Daroussin <li> 354*21817992SBaptiste Daroussin <p>correct loop termination condition in 355*21817992SBaptiste Daroussin <code>waddnstr</code> and <code>waddnwstr</code></p> 356aae38d10SBaptiste Daroussin </li> 357aae38d10SBaptiste Daroussin 358aae38d10SBaptiste Daroussin <li> 359*21817992SBaptiste Daroussin <p>improve parsing in internal function 360*21817992SBaptiste Daroussin <code>_nc_msec_cost</code>, allowing a single decimal 361*21817992SBaptiste Daroussin point</p> 362aae38d10SBaptiste Daroussin </li> 363aae38d10SBaptiste Daroussin 364aae38d10SBaptiste Daroussin <li> 365*21817992SBaptiste Daroussin <p>amend parameter check for entire string versus specific 366*21817992SBaptiste Daroussin length in <code>winsnstr</code> and <code>wins_nwstr</code> 367*21817992SBaptiste Daroussin to match Solaris; make similar correction to 368*21817992SBaptiste Daroussin <code>wins_nwstr</code></p> 369aae38d10SBaptiste Daroussin </li> 370aae38d10SBaptiste Daroussin 371aae38d10SBaptiste Daroussin <li> 372*21817992SBaptiste Daroussin <p>correct internal function <code>wadd_wch_literal</code> 373*21817992SBaptiste Daroussin when adding a non-spacing character to a double-width 374*21817992SBaptiste Daroussin character</p> 375aae38d10SBaptiste Daroussin </li> 376aae38d10SBaptiste Daroussin 377aae38d10SBaptiste Daroussin <li> 378*21817992SBaptiste Daroussin <p>correct definition of <code>Charable</code> macro for 379*21817992SBaptiste Daroussin non-wide ncurses library .</p> 380aae38d10SBaptiste Daroussin </li> 381aae38d10SBaptiste Daroussin </ul> 382aae38d10SBaptiste Daroussin 383aae38d10SBaptiste Daroussin <h3><a name="h3-programs" id="h3-programs">Program 384aae38d10SBaptiste Daroussin improvements</a></h3> 385aae38d10SBaptiste Daroussin 386*21817992SBaptiste Daroussin <p id="h4-utilities">Several improvements were made to the 387*21817992SBaptiste Daroussin utility programs. Some were done to make the <code>infocmp</code> 388*21817992SBaptiste Daroussin option “<tt>-u</tt>” option help refactor the 389*21817992SBaptiste Daroussin terminal database.</p> 390aae38d10SBaptiste Daroussin 391e1865124SBaptiste Daroussin <dl> 392*21817992SBaptiste Daroussin <dt><span class="part-name"><a href= 393*21817992SBaptiste Daroussin "@HOMEPAGE@/man/infocmp.1m.html">infocmp</a></span> 394e1865124SBaptiste Daroussin </dt> 395e1865124SBaptiste Daroussin 396e1865124SBaptiste Daroussin <dd> 397aae38d10SBaptiste Daroussin <ul> 398*21817992SBaptiste Daroussin <li> 399*21817992SBaptiste Daroussin <p>add limit checks for processing extended capabilities 400*21817992SBaptiste Daroussin with the “<code>-u</code>” option</p> 401*21817992SBaptiste Daroussin </li> 402*21817992SBaptiste Daroussin 403*21817992SBaptiste Daroussin <li> 404*21817992SBaptiste Daroussin <p>correct initial alignment of extended capabilities, so 405*21817992SBaptiste Daroussin that the “<code>-u</code>” option can be used 406*21817992SBaptiste Daroussin for more than two terminal types</p> 407*21817992SBaptiste Daroussin </li> 408*21817992SBaptiste Daroussin 409*21817992SBaptiste Daroussin <li> 410*21817992SBaptiste Daroussin <p>modify “<code>-u</code>” option to not 411*21817992SBaptiste Daroussin report cancels for strings which were already cancelled 412*21817992SBaptiste Daroussin in a use'd chunk.</p> 413*21817992SBaptiste Daroussin </li> 414*21817992SBaptiste Daroussin 415*21817992SBaptiste Daroussin <li> 416*21817992SBaptiste Daroussin <p>correct an assignment “<code>-u</code>” 417*21817992SBaptiste Daroussin for detecting if a boolean is unset in a base entry and 418*21817992SBaptiste Daroussin set in a use'd chunk, i.e., if it was cancelled.</p> 419*21817992SBaptiste Daroussin </li> 420aae38d10SBaptiste Daroussin </ul> 421e1865124SBaptiste Daroussin </dd> 422aae38d10SBaptiste Daroussin 423*21817992SBaptiste Daroussin <dt><span class="part-name"><a href= 424*21817992SBaptiste Daroussin "@HOMEPAGE@/man/tic.1m.html">tic</a></span> 425e1865124SBaptiste Daroussin </dt> 426aae38d10SBaptiste Daroussin 427e1865124SBaptiste Daroussin <dd> 428aae38d10SBaptiste Daroussin <ul> 429*21817992SBaptiste Daroussin <li> 430*21817992SBaptiste Daroussin <p>correct limit-check when dumping tc/use clause via 431*21817992SBaptiste Daroussin “<code>-I</code>”</p> 432*21817992SBaptiste Daroussin </li> 433*21817992SBaptiste Daroussin 434*21817992SBaptiste Daroussin <li> 435*21817992SBaptiste Daroussin <p>check return value of <code>_nc_save_str</code>, in 436*21817992SBaptiste Daroussin special case where extended capabilities are processed 437*21817992SBaptiste Daroussin but the terminal description was not initialized</p> 438*21817992SBaptiste Daroussin </li> 439*21817992SBaptiste Daroussin 440*21817992SBaptiste Daroussin <li> 441*21817992SBaptiste Daroussin <p>modify check for multiply defined aliases to report 442*21817992SBaptiste Daroussin problems within the current runtime rather than for 443*21817992SBaptiste Daroussin conflicts with pre-existing terminal descriptions.</p> 444*21817992SBaptiste Daroussin </li> 445*21817992SBaptiste Daroussin 446*21817992SBaptiste Daroussin <li> 447*21817992SBaptiste Daroussin <p>disallow using <code>$TERMINFO</code> or 448*21817992SBaptiste Daroussin <code>$HOME/.terminfo</code> when 449*21817992SBaptiste Daroussin “<code>-o</code>” option is used</p> 450*21817992SBaptiste Daroussin </li> 451aae38d10SBaptiste Daroussin </ul> 452e1865124SBaptiste Daroussin </dd> 453aae38d10SBaptiste Daroussin 454*21817992SBaptiste Daroussin <dt><span class="part-name"><a href= 455*21817992SBaptiste Daroussin "@HOMEPAGE@/man/tput.1.html">tput</a></span> and <span class= 456*21817992SBaptiste Daroussin "part-name"><a href= 457*21817992SBaptiste Daroussin "@HOMEPAGE@/man/tset.1.html">tset</a></span></dt> 458aae38d10SBaptiste Daroussin 459e1865124SBaptiste Daroussin <dd> 460aae38d10SBaptiste Daroussin <ul> 461*21817992SBaptiste Daroussin <li> 462*21817992SBaptiste Daroussin <p>add “<code>-v</code>” option to tput, to 463*21817992SBaptiste Daroussin show warnings</p> 464*21817992SBaptiste Daroussin </li> 465aae38d10SBaptiste Daroussin 466*21817992SBaptiste Daroussin <li> 467*21817992SBaptiste Daroussin <p>modify <em>reset</em> command to avoid altering clocal 468*21817992SBaptiste Daroussin if the terminal uses a modem</p> 469*21817992SBaptiste Daroussin </li> 470aae38d10SBaptiste Daroussin 471*21817992SBaptiste Daroussin <li> 472*21817992SBaptiste Daroussin <p>modify <em>reset</em> feature to avoid 1-second sleep 473*21817992SBaptiste Daroussin if running in a pseudo-terminal</p> 474*21817992SBaptiste Daroussin </li> 475e1865124SBaptiste Daroussin </ul> 476e1865124SBaptiste Daroussin </dd> 477e1865124SBaptiste Daroussin </dl> 478e1865124SBaptiste Daroussin 479aae38d10SBaptiste Daroussin <h4><a name="h4-examples" id="h4-examples">Examples</a></h4> 480aae38d10SBaptiste Daroussin 481e1865124SBaptiste Daroussin <p>Along with the library and utilities, improvements were made 482e1865124SBaptiste Daroussin to the <a href= 483*21817992SBaptiste Daroussin "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a>:</p> 484aae38d10SBaptiste Daroussin 485aae38d10SBaptiste Daroussin <ul> 486aae38d10SBaptiste Daroussin <li> 487*21817992SBaptiste Daroussin <p>modify <code>test_tparm</code> to account for extended 488*21817992SBaptiste Daroussin capabilities</p> 489aae38d10SBaptiste Daroussin </li> 490aae38d10SBaptiste Daroussin 491aae38d10SBaptiste Daroussin <li> 492*21817992SBaptiste Daroussin <p>corrected mouse mask in <code>test/testcurs.c</code></p> 493aae38d10SBaptiste Daroussin </li> 494aae38d10SBaptiste Daroussin 495aae38d10SBaptiste Daroussin <li> 496*21817992SBaptiste Daroussin <p>modify <code>test/clip_printw.c</code> to optionally test 497*21817992SBaptiste Daroussin non-wrapped updates</p> 498e1865124SBaptiste Daroussin </li> 499aae38d10SBaptiste Daroussin 500e1865124SBaptiste Daroussin <li> 501*21817992SBaptiste Daroussin <p>modify <code>test/test_mouse.c</code> to use curses api 502*21817992SBaptiste Daroussin for raw/noraw</p> 503e1865124SBaptiste Daroussin </li> 504aae38d10SBaptiste Daroussin 505e1865124SBaptiste Daroussin <li> 506*21817992SBaptiste Daroussin <p>modify <code>test/clip_printw.c</code> to optionally test 507*21817992SBaptiste Daroussin non-wrapped updates</p> 508aae38d10SBaptiste Daroussin </li> 509aae38d10SBaptiste Daroussin </ul> 510aae38d10SBaptiste Daroussin 511*21817992SBaptiste Daroussin <p>There is one new demo/test programs:</p> 512aae38d10SBaptiste Daroussin 513e1865124SBaptiste Daroussin <dl> 514*21817992SBaptiste Daroussin <dt><span class="part-name"><em>test/test_endwin.c</em></span> 515e1865124SBaptiste Daroussin </dt> 516aae38d10SBaptiste Daroussin 517*21817992SBaptiste Daroussin <dd> 518*21817992SBaptiste Daroussin <p>This program shows the return-status from 519*21817992SBaptiste Daroussin <code>endwin</code> with different combinations of 520*21817992SBaptiste Daroussin <code>endwin</code> (repeated), <code>initscr</code>, 521*21817992SBaptiste Daroussin <code>newterm</code>.</p> 522*21817992SBaptiste Daroussin </dd> 523e1865124SBaptiste Daroussin </dl> 524aae38d10SBaptiste Daroussin 525e1865124SBaptiste Daroussin <h3><a name="h3-database" id="h3-database">Terminal database</a></h3> 526aae38d10SBaptiste Daroussin 527aae38d10SBaptiste Daroussin <p>There are several new terminal descriptions:</p> 528aae38d10SBaptiste Daroussin 529*21817992SBaptiste Daroussin <ul> 530*21817992SBaptiste Daroussin <li> 531*21817992SBaptiste Daroussin <p><a href= 532*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-ansi_apparrows"><tt>ansi+apparrows</tt></a></p> 533*21817992SBaptiste Daroussin </li> 534*21817992SBaptiste Daroussin 535*21817992SBaptiste Daroussin <li> 536*21817992SBaptiste Daroussin <p><a href= 537*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-contour"><tt>contour</tt></a></p> 538*21817992SBaptiste Daroussin </li> 539*21817992SBaptiste Daroussin 540*21817992SBaptiste Daroussin <li> 541*21817992SBaptiste Daroussin <p><a href= 542*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-linux_kbs"><tt>linux+kbs</tt></a> 543*21817992SBaptiste Daroussin for terminals which imitate xterm's behavior with Linux</p> 544*21817992SBaptiste Daroussin </li> 545*21817992SBaptiste Daroussin 546*21817992SBaptiste Daroussin <li> 547*21817992SBaptiste Daroussin <p><a href= 548*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-rio"><tt>rio</tt></a>, 549*21817992SBaptiste Daroussin <a href= 550*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-rio-direct"><tt>rio-direct</tt></a></p> 551*21817992SBaptiste Daroussin </li> 552*21817992SBaptiste Daroussin 553*21817992SBaptiste Daroussin <li> 554*21817992SBaptiste Daroussin <p><a href= 555*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-mostlike"><tt>mostlike</tt></a></p> 556*21817992SBaptiste Daroussin </li> 557*21817992SBaptiste Daroussin 558*21817992SBaptiste Daroussin <li> 559*21817992SBaptiste Daroussin <p><a href= 560*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-ms-vt100-16color"><tt>ms-vt100-16color</tt></a>, 561*21817992SBaptiste Daroussin <a href= 562*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-winconsole"><tt>winconsole</tt></a></p> 563*21817992SBaptiste Daroussin </li> 564*21817992SBaptiste Daroussin 565*21817992SBaptiste Daroussin <li> 566*21817992SBaptiste Daroussin <p><a href= 567*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp"><tt>vt100+noapp</tt></a>, 568*21817992SBaptiste Daroussin <a href= 569*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp_pc"><tt>vt100+noapp+pc</tt></a>, 570*21817992SBaptiste Daroussin <a href= 571*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-xterm_app_pc"><tt>xterm+app+pc</tt></a>, 572*21817992SBaptiste Daroussin <a href= 573*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-xterm_decedit"><tt>xterm+decedit</tt></a> 574*21817992SBaptiste Daroussin from <a href="@WEBSITE@/xterm/xterm.log.html#xterm_389">xterm 575*21817992SBaptiste Daroussin #389</a></p> 576*21817992SBaptiste Daroussin </li> 577*21817992SBaptiste Daroussin 578*21817992SBaptiste Daroussin <li> 579*21817992SBaptiste Daroussin <p><a href= 580*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-putty_cursor"><tt>putty+cursor</tt></a> 581*21817992SBaptiste Daroussin to reflect amending of modified cursor-keys in 2021</p> 582*21817992SBaptiste Daroussin </li> 583*21817992SBaptiste Daroussin 584*21817992SBaptiste Daroussin <li> 585*21817992SBaptiste Daroussin <p><a href= 586*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-wezterm"><tt>wezterm</tt></a></p> 587*21817992SBaptiste Daroussin </li> 588*21817992SBaptiste Daroussin </ul> 589aae38d10SBaptiste Daroussin 590aae38d10SBaptiste Daroussin <p>There are many changes to existing terminal descriptions. Some 591*21817992SBaptiste Daroussin were updates to several descriptions, using the 592*21817992SBaptiste Daroussin <code>infocmp</code> “<code>-u</code>” option in a 593*21817992SBaptiste Daroussin script to determine which <em>building-block</em> entries could 594*21817992SBaptiste Daroussin be used to replace multiple capability settings (and trim 595*21817992SBaptiste Daroussin redundant information).</p> 596*21817992SBaptiste Daroussin 597*21817992SBaptiste Daroussin <p>Other changes include:</p> 598aae38d10SBaptiste Daroussin 599aae38d10SBaptiste Daroussin <ul> 600*21817992SBaptiste Daroussin <li> 601*21817992SBaptiste Daroussin <p><a href= 602*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#toc-_X_T_E_R_M__Extensions_">document</a> 603*21817992SBaptiste Daroussin XF, kxIN and kxOUT</p> 604*21817992SBaptiste Daroussin </li> 605aae38d10SBaptiste Daroussin 606*21817992SBaptiste Daroussin <li> 607*21817992SBaptiste Daroussin <p>add note on <a href= 608*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-sun"><tt>sun</tt></a> 609*21817992SBaptiste Daroussin regarding wscons/cmdtool/shelltool</p> 610*21817992SBaptiste Daroussin </li> 611aae38d10SBaptiste Daroussin 612*21817992SBaptiste Daroussin <li> 613*21817992SBaptiste Daroussin <p>remove DECCOLM+DECSCLM from <a href= 614*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-foot"><tt>foot</tt></a></p> 615*21817992SBaptiste Daroussin </li> 616e1865124SBaptiste Daroussin 617*21817992SBaptiste Daroussin <li> 618*21817992SBaptiste Daroussin <p>add xterm+focus to <a href= 619*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-foot_base"><tt>foot+base</tt></a></p> 620*21817992SBaptiste Daroussin </li> 621e1865124SBaptiste Daroussin 622*21817992SBaptiste Daroussin <li> 623*21817992SBaptiste Daroussin <p>add ecma+strikeout to <a href= 624*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-putty"><tt>putty</tt></a></p> 625*21817992SBaptiste Daroussin </li> 626e1865124SBaptiste Daroussin 627*21817992SBaptiste Daroussin <li> 628*21817992SBaptiste Daroussin <p>use CSI 3J in <a href= 629*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-vte-2017"><tt>vte-2017</tt></a></p> 630*21817992SBaptiste Daroussin </li> 631e1865124SBaptiste Daroussin 632*21817992SBaptiste Daroussin <li> 633*21817992SBaptiste Daroussin <p>use oldxterm+sm+1006 in <a href= 634*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-vte-2014"><tt>vte-2014</tt></a></p> 635*21817992SBaptiste Daroussin </li> 636*21817992SBaptiste Daroussin 637*21817992SBaptiste Daroussin <li> 638*21817992SBaptiste Daroussin <p>modify <a href= 639*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-xgterm"><tt>xgterm</tt></a> 640*21817992SBaptiste Daroussin to work around line-drawing bug</p> 641*21817992SBaptiste Daroussin </li> 642*21817992SBaptiste Daroussin 643*21817992SBaptiste Daroussin <li> 644*21817992SBaptiste Daroussin <p>add xterm focus mode 1004 to <a href= 645*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a> 646*21817992SBaptiste Daroussin as fe/fd capabilities, like vim.</p> 647*21817992SBaptiste Daroussin </li> 648*21817992SBaptiste Daroussin 649*21817992SBaptiste Daroussin <li> 650*21817992SBaptiste Daroussin <p>add xterm+focus to <a href= 651*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-alacritty_common"><tt>alacritty+common</tt></a></p> 652*21817992SBaptiste Daroussin </li> 653*21817992SBaptiste Daroussin 654*21817992SBaptiste Daroussin <li> 655*21817992SBaptiste Daroussin <p>add XR/xr, to work with vim, and use RV/rv to denote DA2 656*21817992SBaptiste Daroussin and its response</p> 657*21817992SBaptiste Daroussin </li> 658*21817992SBaptiste Daroussin 659*21817992SBaptiste Daroussin <li> 660*21817992SBaptiste Daroussin <p>add XF flag to <a href= 661*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a> 662*21817992SBaptiste Daroussin so that termcap applications can be aware of terminals which 663*21817992SBaptiste Daroussin may support focus in/out</p> 664*21817992SBaptiste Daroussin </li> 665*21817992SBaptiste Daroussin 666*21817992SBaptiste Daroussin <li> 667*21817992SBaptiste Daroussin <p>use xterm+focus in <a href= 668*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-xterm-p370"><tt>xterm-p370</tt></a> 669e1865124SBaptiste Daroussin and <a href= 670*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p> 671*21817992SBaptiste Daroussin </li> 672aae38d10SBaptiste Daroussin 673*21817992SBaptiste Daroussin <li> 674*21817992SBaptiste Daroussin <p>remove xterm+sm+1006 from <a href= 675*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p> 676*21817992SBaptiste Daroussin </li> 677aae38d10SBaptiste Daroussin 678*21817992SBaptiste Daroussin <li> 679*21817992SBaptiste Daroussin <p>NetBSD-related fixes for <a href= 680*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-x68k"><tt>x68k</tt></a> and 681*21817992SBaptiste Daroussin <a href= 682*21817992SBaptiste Daroussin "@HOMEPAGE@/terminfo.src.html#tic-wsvt25"><tt>wsvt25</tt></a></p> 683*21817992SBaptiste Daroussin </li> 684aae38d10SBaptiste Daroussin </ul> 685aae38d10SBaptiste Daroussin 686aae38d10SBaptiste Daroussin <h3><a name="h3-documentation" id= 687aae38d10SBaptiste Daroussin "h3-documentation">Documentation</a></h3> 688aae38d10SBaptiste Daroussin 689aae38d10SBaptiste Daroussin <p>As usual, this release</p> 690aae38d10SBaptiste Daroussin 691aae38d10SBaptiste Daroussin <ul> 692aae38d10SBaptiste Daroussin <li> 693aae38d10SBaptiste Daroussin <p>improves documentation by describing new features,</p> 694aae38d10SBaptiste Daroussin </li> 695aae38d10SBaptiste Daroussin 696aae38d10SBaptiste Daroussin <li> 697aae38d10SBaptiste Daroussin <p>attempts to improve the description of features which 698aae38d10SBaptiste Daroussin users have found confusing</p> 699aae38d10SBaptiste Daroussin </li> 700aae38d10SBaptiste Daroussin 701aae38d10SBaptiste Daroussin <li> 702aae38d10SBaptiste Daroussin <p>fills in overlooked descriptions of features which were 703e1865124SBaptiste Daroussin described in the <a href="@HOMEPAGE@/NEWS.html">NEWS</a> file 704e1865124SBaptiste Daroussin but treated sketchily in manual pages.</p> 705aae38d10SBaptiste Daroussin </li> 706aae38d10SBaptiste Daroussin </ul> 707aae38d10SBaptiste Daroussin 708aae38d10SBaptiste Daroussin <p>In addition to providing background information to explain 709aae38d10SBaptiste Daroussin these features and show how they evolved, there are corrections, 710aae38d10SBaptiste Daroussin clarifications, etc.:</p> 711aae38d10SBaptiste Daroussin 712aae38d10SBaptiste Daroussin <ul> 713aae38d10SBaptiste Daroussin <li> 714e1865124SBaptiste Daroussin <p>Corrections:</p> 715aae38d10SBaptiste Daroussin 716e1865124SBaptiste Daroussin <ul> 717*21817992SBaptiste Daroussin <li> 718*21817992SBaptiste Daroussin <p>add assignment in <code>CF_MAN_PAGES</code> to fill in 719*21817992SBaptiste Daroussin value for <code>TERMINFO_DIRS</code> in ncurses, terminfo 720*21817992SBaptiste Daroussin and tic manpages.</p> 721e1865124SBaptiste Daroussin </li> 722aae38d10SBaptiste Daroussin 723e1865124SBaptiste Daroussin <li> 724*21817992SBaptiste Daroussin <p>clarify interaction of <code>-R</code> option versus 725*21817992SBaptiste Daroussin <code>-C</code>, <code>-I</code> and <code>-r</code> in 726*21817992SBaptiste Daroussin <code>infocmp</code> manpage.</p> 727*21817992SBaptiste Daroussin </li> 728*21817992SBaptiste Daroussin 729*21817992SBaptiste Daroussin <li> 730*21817992SBaptiste Daroussin <p>correct manpage description of panel_hidden.</p> 731*21817992SBaptiste Daroussin </li> 732*21817992SBaptiste Daroussin 733*21817992SBaptiste Daroussin <li> 734*21817992SBaptiste Daroussin <p>improve manpage description for addch versus unctrl 735*21817992SBaptiste Daroussin format used for non-printable characters.</p> 736*21817992SBaptiste Daroussin </li> 737*21817992SBaptiste Daroussin 738*21817992SBaptiste Daroussin <li> 739*21817992SBaptiste Daroussin <p>improve manpages discussing file descriptors in 740*21817992SBaptiste Daroussin low-level functions.</p> 741*21817992SBaptiste Daroussin </li> 742*21817992SBaptiste Daroussin 743*21817992SBaptiste Daroussin <li> 744*21817992SBaptiste Daroussin <p>improve description of search rules for terminal 745*21817992SBaptiste Daroussin descriptions in terminfo manpage.</p> 746*21817992SBaptiste Daroussin </li> 747*21817992SBaptiste Daroussin 748*21817992SBaptiste Daroussin <li> 749*21817992SBaptiste Daroussin <p>modify dist.mk to avoid passing developer's comments 750*21817992SBaptiste Daroussin in manpages into the generated html documentation.</p> 751*21817992SBaptiste Daroussin </li> 752*21817992SBaptiste Daroussin 753*21817992SBaptiste Daroussin <li> 754*21817992SBaptiste Daroussin <p>modify test-package "ncurses6-doc" to use 755*21817992SBaptiste Daroussin manpage-aliases, which in turn required a change to the 756*21817992SBaptiste Daroussin configure script to factor in the extra-suffix option 757*21817992SBaptiste Daroussin when deriving alias names.</p> 758*21817992SBaptiste Daroussin </li> 759*21817992SBaptiste Daroussin </ul> 760e1865124SBaptiste Daroussin </li> 761e1865124SBaptiste Daroussin 762e1865124SBaptiste Daroussin <li> 763e1865124SBaptiste Daroussin <p>New/improved history and portability sections:</p> 764aae38d10SBaptiste Daroussin 765aae38d10SBaptiste Daroussin <ul> 766*21817992SBaptiste Daroussin <li> 767*21817992SBaptiste Daroussin <p>add information about "ttycap", termcap's forerunner, 768*21817992SBaptiste Daroussin to tset.1</p> 769e1865124SBaptiste Daroussin </li> 770aae38d10SBaptiste Daroussin 771aae38d10SBaptiste Daroussin <li> 772*21817992SBaptiste Daroussin <p>document limitations of tparm, and error-returns in 773*21817992SBaptiste Daroussin curs_terminfo.3x</p> 774*21817992SBaptiste Daroussin </li> 775aae38d10SBaptiste Daroussin 776*21817992SBaptiste Daroussin <li> 777*21817992SBaptiste Daroussin <p>document limitations of tgoto, and error-returns in 778*21817992SBaptiste Daroussin curs_termcap.3x</p> 779*21817992SBaptiste Daroussin </li> 780e1865124SBaptiste Daroussin </ul> 781aae38d10SBaptiste Daroussin </li> 782aae38d10SBaptiste Daroussin 783aae38d10SBaptiste Daroussin <li> 784e1865124SBaptiste Daroussin <p>Other improvements:</p> 785aae38d10SBaptiste Daroussin 786e1865124SBaptiste Daroussin <ul> 787*21817992SBaptiste Daroussin <li> 788*21817992SBaptiste Daroussin <p>This release has many changes to improve the 789*21817992SBaptiste Daroussin formatting and style of the manpages.</p> 790*21817992SBaptiste Daroussin </li> 791e1865124SBaptiste Daroussin 792*21817992SBaptiste Daroussin <li> 793*21817992SBaptiste Daroussin <p>Manpages now use consistent section-naming, page 794*21817992SBaptiste Daroussin headers and footers (including the modification date for 795*21817992SBaptiste Daroussin each page).</p> 796*21817992SBaptiste Daroussin </li> 797e1865124SBaptiste Daroussin 798*21817992SBaptiste Daroussin <li> 799*21817992SBaptiste Daroussin <p>Table layout has been revised.</p> 800*21817992SBaptiste Daroussin </li> 801e1865124SBaptiste Daroussin </ul> 802aae38d10SBaptiste Daroussin </li> 803aae38d10SBaptiste Daroussin </ul> 804aae38d10SBaptiste Daroussin 805e1865124SBaptiste Daroussin <p>There are no new manual pages (all of the manual page updates 806e1865124SBaptiste Daroussin are to existing pages).</p> 807e1865124SBaptiste Daroussin 808aae38d10SBaptiste Daroussin <h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting 809aae38d10SBaptiste Daroussin bug-fixes</a></h3> 810aae38d10SBaptiste Daroussin 811*21817992SBaptiste Daroussin <p>The changes to <tt>tparm</tt>, <tt>tgoto</tt> which improve 812*21817992SBaptiste Daroussin the design of the low-level interfaces are <em>interesting</em>, 813*21817992SBaptiste Daroussin but are not bug-fixes <em>per se</em>.</p> 814e1865124SBaptiste Daroussin 815aae38d10SBaptiste Daroussin <h3><a name="h3-config-config" id= 816aae38d10SBaptiste Daroussin "h3-config-config">Configuration changes</a></h3> 817aae38d10SBaptiste Daroussin 818aae38d10SBaptiste Daroussin <h4><a name="h4-config-major" id="h4-config-major">Major 819aae38d10SBaptiste Daroussin changes</a></h4> 820aae38d10SBaptiste Daroussin 821*21817992SBaptiste Daroussin <p>These are the major changes (aside from introducing <a href= 822*21817992SBaptiste Daroussin "#h4-new-library"><tt>tiparm_s</tt></a>):</p> 823*21817992SBaptiste Daroussin 824*21817992SBaptiste Daroussin <ul> 825*21817992SBaptiste Daroussin <li> 826*21817992SBaptiste Daroussin <p>use wide-character (ncursesw) by default</p> 827*21817992SBaptiste Daroussin </li> 828*21817992SBaptiste Daroussin 829*21817992SBaptiste Daroussin <li> 830*21817992SBaptiste Daroussin <p>use opaque typedefs by default</p> 831*21817992SBaptiste Daroussin </li> 832*21817992SBaptiste Daroussin </ul> 833*21817992SBaptiste Daroussin 834*21817992SBaptiste Daroussin <p>However, most of the work on configure scripts was done to 835*21817992SBaptiste Daroussin reduce warnings within the configure script:</p> 836*21817992SBaptiste Daroussin 837*21817992SBaptiste Daroussin <ul> 838*21817992SBaptiste Daroussin <li> 839*21817992SBaptiste Daroussin <p>intrusive warnings from GNU grep regarding fgrep and 840*21817992SBaptiste Daroussin egrep</p> 841*21817992SBaptiste Daroussin </li> 842*21817992SBaptiste Daroussin 843*21817992SBaptiste Daroussin <li> 844*21817992SBaptiste Daroussin <p>fatal errors in compile-checks, arising from recent 845*21817992SBaptiste Daroussin “Modern C” efforts by some developers which 846*21817992SBaptiste Daroussin caused longstanding configure checks to fail.</p> 847*21817992SBaptiste Daroussin 848*21817992SBaptiste Daroussin <p>After repairing the configure script, none of that 849*21817992SBaptiste Daroussin activity affected ncurses because stricter warnings are used 850*21817992SBaptiste Daroussin routinely in development.</p> 851*21817992SBaptiste Daroussin </li> 852*21817992SBaptiste Daroussin </ul> 853*21817992SBaptiste Daroussin 854*21817992SBaptiste Daroussin <p>Other improvements made to configure checks include</p> 855*21817992SBaptiste Daroussin 856*21817992SBaptiste Daroussin <ul> 857*21817992SBaptiste Daroussin <li> 858*21817992SBaptiste Daroussin <p>use <a href= 859*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:enable-string-hacks">string-hacks</a> 860*21817992SBaptiste Daroussin in alloc_entry.c, alloc_type.c and hardscroll.c, overlooked 861*21817992SBaptiste Daroussin due to compiler changes in recent OpenBSD releases</p> 862*21817992SBaptiste Daroussin </li> 863*21817992SBaptiste Daroussin 864*21817992SBaptiste Daroussin <li> 865*21817992SBaptiste Daroussin <p>revise progs.priv.h to provide for NC_ISATTY reuse</p> 866*21817992SBaptiste Daroussin </li> 867*21817992SBaptiste Daroussin 868*21817992SBaptiste Daroussin <li> 869*21817992SBaptiste Daroussin <p>configure check for MB_LEN_MAX provides warning as 870*21817992SBaptiste Daroussin needed</p> 871*21817992SBaptiste Daroussin </li> 872*21817992SBaptiste Daroussin 873*21817992SBaptiste Daroussin <li> 874*21817992SBaptiste Daroussin <p>trim a space after some "-R" options, fixing builds for 875*21817992SBaptiste Daroussin applications built using clang and ncurses on Solaris</p> 876*21817992SBaptiste Daroussin </li> 877*21817992SBaptiste Daroussin 878*21817992SBaptiste Daroussin <li> 879*21817992SBaptiste Daroussin <p>work around misconfiguration of MacPorts gcc13, which 880*21817992SBaptiste Daroussin exposes invalid definition of <tt>MB_LEN_MAX</tt> in gcc's 881*21817992SBaptiste Daroussin fallback copy of <tt>limits.h</tt></p> 882*21817992SBaptiste Daroussin </li> 883*21817992SBaptiste Daroussin 884*21817992SBaptiste Daroussin <li> 885*21817992SBaptiste Daroussin <p>modified experimental Windows driver works with xterm 886*21817992SBaptiste Daroussin mouse protocol</p> 887*21817992SBaptiste Daroussin </li> 888*21817992SBaptiste Daroussin </ul> 889aae38d10SBaptiste Daroussin 890aae38d10SBaptiste Daroussin <h4><a name="h4-config-options" id= 891aae38d10SBaptiste Daroussin "h4-config-options">Configuration options</a></h4> 892aae38d10SBaptiste Daroussin 893*21817992SBaptiste Daroussin <p>There are a few new configure options:</p> 894aae38d10SBaptiste Daroussin 895e1865124SBaptiste Daroussin <dl> 896*21817992SBaptiste Daroussin <dt><a href= 897*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:disable-setuid-environ"><tt>--disable-setuid-environ</tt></a> 898e1865124SBaptiste Daroussin </dt> 899aae38d10SBaptiste Daroussin 900e1865124SBaptiste Daroussin <dd> 901*21817992SBaptiste Daroussin <p>Compile with environment restriction, so certain 902*21817992SBaptiste Daroussin environment variables are not available when running via a 903*21817992SBaptiste Daroussin setuid/setgid application. These are (for example 904*21817992SBaptiste Daroussin <tt>$TERMINFO</tt>) those that allow the search path for the 905*21817992SBaptiste Daroussin terminfo or termcap entry to be customized.</p> 906*21817992SBaptiste Daroussin 907*21817992SBaptiste Daroussin <p>A setuid/setgid application inherits its environment 908*21817992SBaptiste Daroussin variables from the current user, in contrast to sudo which 909*21817992SBaptiste Daroussin may limit the environment variables that ncurses uses.</p> 910e1865124SBaptiste Daroussin </dd> 911aae38d10SBaptiste Daroussin 912*21817992SBaptiste Daroussin <dt><a href= 913*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:enable-check-size"><tt>--enable-check-size</tt></a> 914e1865124SBaptiste Daroussin </dt> 915aae38d10SBaptiste Daroussin 916e1865124SBaptiste Daroussin <dd> 917*21817992SBaptiste Daroussin <p>Compile-in feature to detect screensize for terminals 918*21817992SBaptiste Daroussin which do not advertise their screensize, e.g., serial 919*21817992SBaptiste Daroussin terminals.</p> 920e1865124SBaptiste Daroussin </dd> 921aae38d10SBaptiste Daroussin 922*21817992SBaptiste Daroussin <dt><a href= 923*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:with-abi-altered"><tt>--with-abi-altered=<em>NUM</em></tt></a> 924e1865124SBaptiste Daroussin </dt> 925aae38d10SBaptiste Daroussin 926e1865124SBaptiste Daroussin <dd> 927*21817992SBaptiste Daroussin <p>Override the displayed (rather than compiled-in) ABI. Only 928*21817992SBaptiste Daroussin packagers who have created configurations where the ABI 929*21817992SBaptiste Daroussin differs from ncurses should be interested in this option.</p> 930e1865124SBaptiste Daroussin </dd> 931aae38d10SBaptiste Daroussin 932*21817992SBaptiste Daroussin <dt><a href= 933*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:with-strip-program"><tt>--with-strip-program=<em>XXX</em></tt></a> 934e1865124SBaptiste Daroussin </dt> 935aae38d10SBaptiste Daroussin 936e1865124SBaptiste Daroussin <dd> 937*21817992SBaptiste Daroussin <p>When stripping executables during install, use the 938*21817992SBaptiste Daroussin specified program rather than “strip” overriding 939*21817992SBaptiste Daroussin program chosen by the install program for stripping 940*21817992SBaptiste Daroussin executables.</p> 941*21817992SBaptiste Daroussin </dd> 942*21817992SBaptiste Daroussin </dl> 943*21817992SBaptiste Daroussin 944*21817992SBaptiste Daroussin <p>These configure options are modified:</p> 945*21817992SBaptiste Daroussin 946*21817992SBaptiste Daroussin <dl> 947*21817992SBaptiste Daroussin <dt><a href= 948*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:with-pkg-config-libdir"><tt>--with-pkg-config-libdir[=<em>DIR</em>]</tt></a> 949*21817992SBaptiste Daroussin </dt> 950*21817992SBaptiste Daroussin 951*21817992SBaptiste Daroussin <dd> 952*21817992SBaptiste Daroussin <p>The optional <em>DIR</em> parameter can now be 953*21817992SBaptiste Daroussin “auto” to automatically use pkg-config's library 954*21817992SBaptiste Daroussin directory.</p> 955*21817992SBaptiste Daroussin 956*21817992SBaptiste Daroussin <p>The default is <tt>$(libdir)</tt>.</p> 957e1865124SBaptiste Daroussin </dd> 958aae38d10SBaptiste Daroussin 959*21817992SBaptiste Daroussin <dt><a href= 960*21817992SBaptiste Daroussin "@HOMEPAGE@/INSTALL.html#option:with-xterm-kbs"><tt>--with-xterm-kbs[=<em>XXX</em>]</tt></a> 961e1865124SBaptiste Daroussin </dt> 962aae38d10SBaptiste Daroussin 963e1865124SBaptiste Daroussin <dd> 964*21817992SBaptiste Daroussin <p>The default is “auto” which tells the 965*21817992SBaptiste Daroussin configure script to choose BS or DEL according to platform 966*21817992SBaptiste Daroussin defaults.</p> 967e1865124SBaptiste Daroussin </dd> 968e1865124SBaptiste Daroussin </dl> 969aae38d10SBaptiste Daroussin 970e1865124SBaptiste Daroussin <h3><a name="h3-portability" id="h3-portability">Portability</a></h3> 971aae38d10SBaptiste Daroussin 972aae38d10SBaptiste Daroussin <p>Many of the portability changes are implemented via the 973aae38d10SBaptiste Daroussin configure script:</p> 974aae38d10SBaptiste Daroussin 975aae38d10SBaptiste Daroussin <ul> 976aae38d10SBaptiste Daroussin <li> 977*21817992SBaptiste Daroussin <p>add/use configure check for <code>clock_gettime</code>, to 978*21817992SBaptiste Daroussin supersede <code>gettimeofday</code>.</p> 979aae38d10SBaptiste Daroussin </li> 980aae38d10SBaptiste Daroussin 981aae38d10SBaptiste Daroussin <li> 982*21817992SBaptiste Daroussin <p>modify configure script check for pkg-config library 983*21817992SBaptiste Daroussin directory to take into account an older version 0.15.0 which 984*21817992SBaptiste Daroussin used PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR</p> 985aae38d10SBaptiste Daroussin </li> 986aae38d10SBaptiste Daroussin 987aae38d10SBaptiste Daroussin <li> 988*21817992SBaptiste Daroussin <p>allow for MinGW32-/64-bit configurations to use 989*21817992SBaptiste Daroussin _DEFAULT_SOURCE</p> 990aae38d10SBaptiste Daroussin </li> 991aae38d10SBaptiste Daroussin 992aae38d10SBaptiste Daroussin <li> 993*21817992SBaptiste Daroussin <p>modify CF_XOPEN_SOURCE macro's amend default case to avoid 994*21817992SBaptiste Daroussin undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined</p> 995*21817992SBaptiste Daroussin </li> 996*21817992SBaptiste Daroussin 997*21817992SBaptiste Daroussin <li> 998*21817992SBaptiste Daroussin <p>updated configure script macro CF_XOPEN_SOURCE, for 999*21817992SBaptiste Daroussin uClibc-ng</p> 1000*21817992SBaptiste Daroussin </li> 1001*21817992SBaptiste Daroussin 1002*21817992SBaptiste Daroussin <li> 1003*21817992SBaptiste Daroussin <p>modify version-check for gcc/g++, now works for msys2</p> 1004*21817992SBaptiste Daroussin </li> 1005*21817992SBaptiste Daroussin 1006*21817992SBaptiste Daroussin <li> 1007*21817992SBaptiste Daroussin <p>build-fixes related to configure-options and/or 1008*21817992SBaptiste Daroussin platform:</p> 1009e1865124SBaptiste Daroussin 1010e1865124SBaptiste Daroussin <ul> 1011*21817992SBaptiste Daroussin <li>fix for <tt>--enable-fvisibility</tt></li> 1012e1865124SBaptiste Daroussin 1013*21817992SBaptiste Daroussin <li>fix for unusual values of 1014*21817992SBaptiste Daroussin <tt>--with-rel-version</tt></li> 1015*21817992SBaptiste Daroussin 1016*21817992SBaptiste Daroussin <li>fix for unusual values of 1017*21817992SBaptiste Daroussin <tt>--with-abi-version</tt></li> 1018*21817992SBaptiste Daroussin 1019*21817992SBaptiste Daroussin <li>fix for <tt>--disable-tcap-names</tt></li> 1020*21817992SBaptiste Daroussin 1021*21817992SBaptiste Daroussin <li>fix for termcap in <tt>nc_access.h</tt></li> 1022e1865124SBaptiste Daroussin </ul> 1023aae38d10SBaptiste Daroussin </li> 1024aae38d10SBaptiste Daroussin 1025aae38d10SBaptiste Daroussin <li> 1026*21817992SBaptiste Daroussin <p>other configure-script improvements:</p> 1027e1865124SBaptiste Daroussin 1028e1865124SBaptiste Daroussin <ul> 1029*21817992SBaptiste Daroussin <li>recent msys2 headers work with 1030*21817992SBaptiste Daroussin <tt>_DEFAULT_SOURCE</tt>; amend check</li> 1031e1865124SBaptiste Daroussin 1032*21817992SBaptiste Daroussin <li>use <tt>$ac_includes_default</tt> in most cases where 1033*21817992SBaptiste Daroussin stdlib.h should work</li> 1034aae38d10SBaptiste Daroussin 1035*21817992SBaptiste Daroussin <li>use <tt>#error</tt> consistently vs "make an 1036*21817992SBaptiste Daroussin error"</li> 1037e1865124SBaptiste Daroussin 1038*21817992SBaptiste Daroussin <li>add configure macro for <tt>gettimeofday</tt> vs inline 1039*21817992SBaptiste Daroussin check</li> 1040e1865124SBaptiste Daroussin </ul> 1041e1865124SBaptiste Daroussin </li> 1042e1865124SBaptiste Daroussin </ul> 1043e1865124SBaptiste Daroussin 1044e1865124SBaptiste Daroussin <p>Here are some of the other portability fixes:</p> 1045aae38d10SBaptiste Daroussin 1046aae38d10SBaptiste Daroussin <ul> 1047aae38d10SBaptiste Daroussin <li> 1048*21817992SBaptiste Daroussin <p>modify configure scripts/makefiles to omit 1049*21817992SBaptiste Daroussin <tt>KEY_RESIZE</tt> if the corresponding <tt>SIGWINCH</tt> 1050*21817992SBaptiste Daroussin feature is disabled</p> 1051aae38d10SBaptiste Daroussin </li> 1052aae38d10SBaptiste Daroussin 1053aae38d10SBaptiste Daroussin <li> 1054*21817992SBaptiste Daroussin <p>increase <tt>MB_CUR_MAX</tt> to 16, matching glibc's 1055*21817992SBaptiste Daroussin <tt>MB_LEN_MAX</tt></p> 1056e1865124SBaptiste Daroussin </li> 1057e1865124SBaptiste Daroussin 1058e1865124SBaptiste Daroussin <li> 1059*21817992SBaptiste Daroussin <p>add BSD <tt>erase2</tt> to characters handled by 1060*21817992SBaptiste Daroussin tset/reset</p> 1061e1865124SBaptiste Daroussin </li> 1062e1865124SBaptiste Daroussin 1063e1865124SBaptiste Daroussin <li> 1064*21817992SBaptiste Daroussin <p>use <tt>getauxval</tt> when available, to improve 1065*21817992SBaptiste Daroussin <tt>setuid</tt>/<tt>setgid</tt> checks</p> 1066e1865124SBaptiste Daroussin </li> 1067e1865124SBaptiste Daroussin 1068e1865124SBaptiste Daroussin <li> 1069*21817992SBaptiste Daroussin <p>set <tt>dwShareMode</tt> in calls to 1070*21817992SBaptiste Daroussin <tt>CreateConsoleScreenBuffer</tt></p> 1071*21817992SBaptiste Daroussin </li> 1072*21817992SBaptiste Daroussin 1073*21817992SBaptiste Daroussin <li> 1074*21817992SBaptiste Daroussin <p>use <tt>CreateFile</tt> with "<tt>CONIN$</tt>", 1075*21817992SBaptiste Daroussin "<tt>CONOUT$</tt>" rather than <tt>GetStdHandle</tt> to 1076*21817992SBaptiste Daroussin obtain a handle on the actual console, avoiding redirection 1077*21817992SBaptiste Daroussin in the MinGW/Win32 configurations</p> 1078*21817992SBaptiste Daroussin </li> 1079*21817992SBaptiste Daroussin 1080*21817992SBaptiste Daroussin <li> 1081*21817992SBaptiste Daroussin <p>modify MinGW driver to return <tt>KEY_BACKSPACE</tt> when 1082*21817992SBaptiste Daroussin an unmodified <tt>VK_BACK</tt> virtual key is entered</p> 1083*21817992SBaptiste Daroussin </li> 1084*21817992SBaptiste Daroussin 1085*21817992SBaptiste Daroussin <li> 1086*21817992SBaptiste Daroussin <p>modify MinGW configuration to provide for running in 1087*21817992SBaptiste Daroussin MSYS/MSYS2 shells, assuming ConPTY support</p> 1088aae38d10SBaptiste Daroussin </li> 1089aae38d10SBaptiste Daroussin </ul> 1090aae38d10SBaptiste Daroussin 1091aae38d10SBaptiste Daroussin <hr> 1092aae38d10SBaptiste Daroussin 1093aae38d10SBaptiste Daroussin <h2><a name="h2-features" id="h2-features">Features of 1094aae38d10SBaptiste Daroussin <span class="main-name">ncurses</span></a></h2> 1095aae38d10SBaptiste Daroussin 1096aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> package is fully 1097aae38d10SBaptiste Daroussin upward-compatible with SVr4 (System V Release 4) curses:</p> 1098aae38d10SBaptiste Daroussin 1099aae38d10SBaptiste Daroussin <ul> 1100aae38d10SBaptiste Daroussin <li> 1101aae38d10SBaptiste Daroussin <p>All of the SVr4 calls have been implemented (and are 1102aae38d10SBaptiste Daroussin documented).</p> 1103aae38d10SBaptiste Daroussin </li> 1104aae38d10SBaptiste Daroussin 1105aae38d10SBaptiste Daroussin <li> 1106*21817992SBaptiste Daroussin <p><span class="main-name">ncurses</span> supports the 1107*21817992SBaptiste Daroussin features of SVr4 curses including keyboard mapping, color, 1108*21817992SBaptiste Daroussin form drawing with ACS characters, and automatic recognition 1109aae38d10SBaptiste Daroussin of keypad and function keys.</p> 1110aae38d10SBaptiste Daroussin </li> 1111aae38d10SBaptiste Daroussin 1112aae38d10SBaptiste Daroussin <li> 1113*21817992SBaptiste Daroussin <p><span class="main-name">ncurses</span> provides work-alike 1114*21817992SBaptiste Daroussin replacements of SVr4 supplemental libraries based on curses, 1115*21817992SBaptiste Daroussin but which were not specified by X/Open Curses:</p> 1116aae38d10SBaptiste Daroussin 1117aae38d10SBaptiste Daroussin <ul> 1118aae38d10SBaptiste Daroussin <li> 1119*21817992SBaptiste Daroussin <p>the panel library, supporting a stack of windows with 1120*21817992SBaptiste Daroussin backing store</p> 1121aae38d10SBaptiste Daroussin </li> 1122aae38d10SBaptiste Daroussin 1123aae38d10SBaptiste Daroussin <li> 1124*21817992SBaptiste Daroussin <p>the menu library, supporting a uniform but flexible 1125*21817992SBaptiste Daroussin interface for menu programming</p> 1126aae38d10SBaptiste Daroussin </li> 1127aae38d10SBaptiste Daroussin 1128aae38d10SBaptiste Daroussin <li> 1129aae38d10SBaptiste Daroussin <p>the form library, supporting data collection through 1130*21817992SBaptiste Daroussin on-screen forms</p> 1131aae38d10SBaptiste Daroussin </li> 1132aae38d10SBaptiste Daroussin </ul> 1133aae38d10SBaptiste Daroussin </li> 1134aae38d10SBaptiste Daroussin 1135aae38d10SBaptiste Daroussin <li> 1136aae38d10SBaptiste Daroussin <p><span class="main-name">ncurses</span>'s terminal database 1137aae38d10SBaptiste Daroussin is fully compatible with that used by SVr4 curses.</p> 1138aae38d10SBaptiste Daroussin 1139aae38d10SBaptiste Daroussin <ul> 1140aae38d10SBaptiste Daroussin <li> 1141aae38d10SBaptiste Daroussin <p><span class="main-name">ncurses</span> supports 1142*21817992SBaptiste Daroussin user-defined capabilities that it can see, but which are 1143aae38d10SBaptiste Daroussin hidden from SVr4 curses applications using the 1144aae38d10SBaptiste Daroussin <em>same</em> terminal database.</p> 1145aae38d10SBaptiste Daroussin </li> 1146aae38d10SBaptiste Daroussin 1147aae38d10SBaptiste Daroussin <li> 1148aae38d10SBaptiste Daroussin <p>It can be optionally configured to match the format 1149aae38d10SBaptiste Daroussin used in related systems such as AIX and Tru64.</p> 1150aae38d10SBaptiste Daroussin </li> 1151aae38d10SBaptiste Daroussin 1152aae38d10SBaptiste Daroussin <li> 1153aae38d10SBaptiste Daroussin <p>Alternatively, <span class="main-name">ncurses</span> 1154aae38d10SBaptiste Daroussin can be configured to use hashed databases rather than the 1155aae38d10SBaptiste Daroussin directory of files used by SVr4 curses.</p> 1156aae38d10SBaptiste Daroussin </li> 1157aae38d10SBaptiste Daroussin </ul> 1158aae38d10SBaptiste Daroussin </li> 1159aae38d10SBaptiste Daroussin 1160aae38d10SBaptiste Daroussin <li> 1161aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> utilities have 1162aae38d10SBaptiste Daroussin options to allow you to filter terminfo entries for use with 1163aae38d10SBaptiste Daroussin less capable <em>curses</em>/<em>terminfo</em> versions such 1164*21817992SBaptiste Daroussin as the HP-UX and AIX ports.</p> 1165aae38d10SBaptiste Daroussin </li> 1166aae38d10SBaptiste Daroussin </ul> 1167aae38d10SBaptiste Daroussin 1168aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> package also has 1169aae38d10SBaptiste Daroussin many useful extensions over SVr4:</p> 1170aae38d10SBaptiste Daroussin 1171aae38d10SBaptiste Daroussin <ul> 1172aae38d10SBaptiste Daroussin <li> 1173aae38d10SBaptiste Daroussin <p>The API is 8-bit clean and base-level conformant with the 1174*21817992SBaptiste Daroussin X/Open Curses specification, XSI curses (that is, it 1175*21817992SBaptiste Daroussin implements all <em>BASE</em> level features, and almost all 1176*21817992SBaptiste Daroussin <em>EXTENDED</em> features). It includes many function calls 1177*21817992SBaptiste Daroussin not supported under SVr4 curses (but portability of all calls 1178*21817992SBaptiste Daroussin is documented so you can use the SVr4 subset only).</p> 1179aae38d10SBaptiste Daroussin </li> 1180aae38d10SBaptiste Daroussin 1181aae38d10SBaptiste Daroussin <li> 1182aae38d10SBaptiste Daroussin <p>Unlike SVr3 curses, <span class="main-name">ncurses</span> 1183aae38d10SBaptiste Daroussin can write to the rightmost-bottommost corner of the screen if 1184aae38d10SBaptiste Daroussin your terminal has an insert-character capability.</p> 1185aae38d10SBaptiste Daroussin </li> 1186aae38d10SBaptiste Daroussin 1187aae38d10SBaptiste Daroussin <li> 1188aae38d10SBaptiste Daroussin <p>Ada95 and C++ bindings.</p> 1189aae38d10SBaptiste Daroussin </li> 1190aae38d10SBaptiste Daroussin 1191aae38d10SBaptiste Daroussin <li> 1192aae38d10SBaptiste Daroussin <p>Support for mouse event reporting with X Window xterm and 1193aae38d10SBaptiste Daroussin FreeBSD and OS/2 console windows.</p> 1194aae38d10SBaptiste Daroussin </li> 1195aae38d10SBaptiste Daroussin 1196aae38d10SBaptiste Daroussin <li> 1197aae38d10SBaptiste Daroussin <p>Extended mouse support via Alessandro Rubini's gpm 1198aae38d10SBaptiste Daroussin package.</p> 1199aae38d10SBaptiste Daroussin </li> 1200aae38d10SBaptiste Daroussin 1201aae38d10SBaptiste Daroussin <li> 1202aae38d10SBaptiste Daroussin <p>The function <code>wresize</code> allows you to resize 1203aae38d10SBaptiste Daroussin windows, preserving their data.</p> 1204aae38d10SBaptiste Daroussin </li> 1205aae38d10SBaptiste Daroussin 1206aae38d10SBaptiste Daroussin <li> 1207aae38d10SBaptiste Daroussin <p>The function <code>use_default_colors</code> allows you to 1208aae38d10SBaptiste Daroussin use the terminal's default colors for the default color pair, 1209aae38d10SBaptiste Daroussin achieving the effect of transparent colors.</p> 1210aae38d10SBaptiste Daroussin </li> 1211aae38d10SBaptiste Daroussin 1212aae38d10SBaptiste Daroussin <li> 1213aae38d10SBaptiste Daroussin <p>The functions <code>keyok</code> and 1214aae38d10SBaptiste Daroussin <code>define_key</code> allow you to better control the use 1215aae38d10SBaptiste Daroussin of function keys, e.g., disabling the <span class= 1216aae38d10SBaptiste Daroussin "main-name">ncurses</span> KEY_MOUSE, or by defining more 1217aae38d10SBaptiste Daroussin than one control sequence to map to a given key code.</p> 1218aae38d10SBaptiste Daroussin </li> 1219aae38d10SBaptiste Daroussin 1220aae38d10SBaptiste Daroussin <li> 1221*21817992SBaptiste Daroussin <p>Support for direct-color terminals, such as modern 1222*21817992SBaptiste Daroussin xterm.</p> 1223*21817992SBaptiste Daroussin </li> 1224*21817992SBaptiste Daroussin 1225*21817992SBaptiste Daroussin <li> 1226aae38d10SBaptiste Daroussin <p>Support for 256-color terminals, such as modern xterm.</p> 1227aae38d10SBaptiste Daroussin </li> 1228aae38d10SBaptiste Daroussin 1229aae38d10SBaptiste Daroussin <li> 1230aae38d10SBaptiste Daroussin <p>Support for 16-color terminals, such as <em>aixterm</em> 1231aae38d10SBaptiste Daroussin and <em>modern xterm</em>.</p> 1232aae38d10SBaptiste Daroussin </li> 1233aae38d10SBaptiste Daroussin 1234aae38d10SBaptiste Daroussin <li> 1235aae38d10SBaptiste Daroussin <p>Better cursor-movement optimization. The package now 1236aae38d10SBaptiste Daroussin features a cursor-local-movement computation more efficient 1237aae38d10SBaptiste Daroussin than either BSD's or System V's.</p> 1238aae38d10SBaptiste Daroussin </li> 1239aae38d10SBaptiste Daroussin 1240aae38d10SBaptiste Daroussin <li> 1241aae38d10SBaptiste Daroussin <p>Super hardware scrolling support. The screen-update code 1242aae38d10SBaptiste Daroussin incorporates a novel, simple, and cheap algorithm that 1243aae38d10SBaptiste Daroussin enables it to make optimal use of hardware scrolling, 1244aae38d10SBaptiste Daroussin line-insertion, and line-deletion for screen-line movements. 1245aae38d10SBaptiste Daroussin This algorithm is more powerful than the 4.4BSD curses 1246aae38d10SBaptiste Daroussin <code>quickch</code> routine.</p> 1247aae38d10SBaptiste Daroussin </li> 1248aae38d10SBaptiste Daroussin 1249aae38d10SBaptiste Daroussin <li> 1250aae38d10SBaptiste Daroussin <p>Real support for terminals with the magic-cookie glitch. 1251aae38d10SBaptiste Daroussin The screen-update code will refrain from drawing a highlight 1252aae38d10SBaptiste Daroussin if the magic- cookie unattributed spaces required just before 1253aae38d10SBaptiste Daroussin the beginning and after the end would step on a non-space 1254aae38d10SBaptiste Daroussin character. It will automatically shift highlight boundaries 1255aae38d10SBaptiste Daroussin when doing so would make it possible to draw the highlight 1256aae38d10SBaptiste Daroussin without changing the visual appearance of the screen.</p> 1257aae38d10SBaptiste Daroussin </li> 1258aae38d10SBaptiste Daroussin 1259aae38d10SBaptiste Daroussin <li> 1260aae38d10SBaptiste Daroussin <p>It is possible to generate the library with a list of 1261aae38d10SBaptiste Daroussin pre-loaded fallback entries linked to it so that it can serve 1262aae38d10SBaptiste Daroussin those terminal types even when no terminfo tree or termcap 1263aae38d10SBaptiste Daroussin file is accessible (this may be useful for support of 1264aae38d10SBaptiste Daroussin screen-oriented programs that must run in single-user 1265aae38d10SBaptiste Daroussin mode).</p> 1266aae38d10SBaptiste Daroussin </li> 1267aae38d10SBaptiste Daroussin 1268aae38d10SBaptiste Daroussin <li> 1269e1865124SBaptiste Daroussin <p>The <a href="@HOMEPAGE@/man/tic.1m.html"><span class= 1270e1865124SBaptiste Daroussin "part-name">tic</span></a>/<a href= 1271e1865124SBaptiste Daroussin "@HOMEPAGE@/man/captoinfo.1m.html">captoinfo</a> utility 1272e1865124SBaptiste Daroussin provided with <span class="main-name">ncurses</span> has the 1273e1865124SBaptiste Daroussin ability to translate many termcaps from the XENIX, IBM and 1274e1865124SBaptiste Daroussin AT&T extension sets.</p> 1275aae38d10SBaptiste Daroussin </li> 1276aae38d10SBaptiste Daroussin 1277aae38d10SBaptiste Daroussin <li> 1278aae38d10SBaptiste Daroussin <p>A BSD-like <a href= 1279e1865124SBaptiste Daroussin "@HOMEPAGE@/man/tset.1.html"><span class= 1280e1865124SBaptiste Daroussin "part-name">tset</span></a> utility is provided.</p> 1281aae38d10SBaptiste Daroussin </li> 1282aae38d10SBaptiste Daroussin 1283aae38d10SBaptiste Daroussin <li> 1284aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> library and 1285aae38d10SBaptiste Daroussin utilities will automatically read terminfo entries from 1286aae38d10SBaptiste Daroussin $HOME/.terminfo if it exists, and compile to that directory 1287aae38d10SBaptiste Daroussin if it exists and the user has no write access to the system 1288aae38d10SBaptiste Daroussin directory. This feature makes it easier for users to have 1289aae38d10SBaptiste Daroussin personal terminfo entries without giving up access to the 1290aae38d10SBaptiste Daroussin system terminfo directory.</p> 1291aae38d10SBaptiste Daroussin </li> 1292aae38d10SBaptiste Daroussin 1293aae38d10SBaptiste Daroussin <li> 1294aae38d10SBaptiste Daroussin <p>You may specify a path of directories to search for 1295aae38d10SBaptiste Daroussin compiled descriptions with the environment variable 1296aae38d10SBaptiste Daroussin TERMINFO_DIRS (this generalizes the feature provided by 1297aae38d10SBaptiste Daroussin TERMINFO under stock System V.)</p> 1298aae38d10SBaptiste Daroussin </li> 1299aae38d10SBaptiste Daroussin 1300aae38d10SBaptiste Daroussin <li> 1301aae38d10SBaptiste Daroussin <p>In terminfo source files, use capabilities may refer not 1302aae38d10SBaptiste Daroussin just to other entries in the same source file (as in System 1303aae38d10SBaptiste Daroussin V) but also to compiled entries in either the system terminfo 1304aae38d10SBaptiste Daroussin directory or the user's $HOME/.terminfo directory.</p> 1305aae38d10SBaptiste Daroussin </li> 1306aae38d10SBaptiste Daroussin 1307aae38d10SBaptiste Daroussin <li> 1308aae38d10SBaptiste Daroussin <p>The table-of-entries utility <a href= 1309e1865124SBaptiste Daroussin "@HOMEPAGE@/man/toe.1m.html"><span class= 1310e1865124SBaptiste Daroussin "part-name">toe</span></a> makes it easy for users to see 1311e1865124SBaptiste Daroussin exactly what terminal types are available on the system.</p> 1312aae38d10SBaptiste Daroussin </li> 1313aae38d10SBaptiste Daroussin 1314aae38d10SBaptiste Daroussin <li> 1315*21817992SBaptiste Daroussin <p>X/Open Curses permits most functions it specifies to be 1316*21817992SBaptiste Daroussin made available as macros as well. ncurses does this</p> 1317*21817992SBaptiste Daroussin 1318*21817992SBaptiste Daroussin <ul> 1319*21817992SBaptiste Daroussin <li>to improve performance, e.g., for operations composed 1320*21817992SBaptiste Daroussin of simpler functions such as cursor movement following by 1321*21817992SBaptiste Daroussin adding text to the screen,</li> 1322*21817992SBaptiste Daroussin 1323*21817992SBaptiste Daroussin <li>to simplify the implementation by reusing functions 1324*21817992SBaptiste Daroussin which use common parameters, e.g., the standard screen 1325*21817992SBaptiste Daroussin <code>stdscr</code>, and</li> 1326*21817992SBaptiste Daroussin 1327*21817992SBaptiste Daroussin <li>to provide functions that return values via their 1328*21817992SBaptiste Daroussin parameters</li> 1329*21817992SBaptiste Daroussin </ul> 1330*21817992SBaptiste Daroussin 1331*21817992SBaptiste Daroussin <p>Except for the last case, ncurses provides a non-macro 1332*21817992SBaptiste Daroussin implementation of the function. If the macro definition is 1333*21817992SBaptiste Daroussin disabled with <code>#undef</code>, or by defining 1334*21817992SBaptiste Daroussin <code>NCURSES_NOMACROS</code> the function may be linked (and 1335*21817992SBaptiste Daroussin its calls will be checked against the prototype).</p> 1336aae38d10SBaptiste Daroussin </li> 1337aae38d10SBaptiste Daroussin 1338aae38d10SBaptiste Daroussin <li> 1339aae38d10SBaptiste Daroussin <p>Extensive documentation is provided (see the <em><a href= 1340e1865124SBaptiste Daroussin "@HOMEPAGE@/ncurses.faq.html#additional_reading">Additional 1341e1865124SBaptiste Daroussin Reading</a></em> section of the <em><a href= 1342e1865124SBaptiste Daroussin "@HOMEPAGE@/ncurses.faq.html"><span class= 1343e1865124SBaptiste Daroussin "main-name">ncurses</span> FAQ</a></em> for online 1344e1865124SBaptiste Daroussin documentation).</p> 1345aae38d10SBaptiste Daroussin </li> 1346aae38d10SBaptiste Daroussin </ul> 1347aae38d10SBaptiste Daroussin 1348aae38d10SBaptiste Daroussin <h2><a name="h2-who-uses" id="h2-who-uses">Applications using 1349aae38d10SBaptiste Daroussin <span class="main-name">ncurses</span></a></h2> 1350aae38d10SBaptiste Daroussin 1351aae38d10SBaptiste Daroussin <p>The <span class="main-name">ncurses</span> distribution 1352aae38d10SBaptiste Daroussin includes a selection of test programs (including a few games). 1353aae38d10SBaptiste Daroussin These are available separately as <a href= 1354e1865124SBaptiste Daroussin "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a></p> 1355aae38d10SBaptiste Daroussin 1356aae38d10SBaptiste Daroussin <p>The ncurses library has been tested with a wide variety of 1357aae38d10SBaptiste Daroussin applications including:</p> 1358aae38d10SBaptiste Daroussin 1359aae38d10SBaptiste Daroussin <blockquote> 136006bfebdeSXin LI <dl> 1361e1865124SBaptiste Daroussin <dt><span class="part-name">aptitude</span> 1362e1865124SBaptiste Daroussin </dt> 136306bfebdeSXin LI 1364aae38d10SBaptiste Daroussin <dd> 1365aae38d10SBaptiste Daroussin <p>FrontEnd to Apt, the debian package manager</p> 136606bfebdeSXin LI 1367aae38d10SBaptiste Daroussin <p><a href= 1368aae38d10SBaptiste Daroussin "https://wiki.debian.org/Aptitude">https://wiki.debian.org/Aptitude</a></p> 1369aae38d10SBaptiste Daroussin </dd> 137006bfebdeSXin LI 1371e1865124SBaptiste Daroussin <dt><span class="part-name">cdk</span> 1372e1865124SBaptiste Daroussin </dt> 1373aae38d10SBaptiste Daroussin 1374aae38d10SBaptiste Daroussin <dd> 1375aae38d10SBaptiste Daroussin <p>Curses Development Kit</p> 1376aae38d10SBaptiste Daroussin 1377e1865124SBaptiste Daroussin <p><a href="@WEBSITE@/cdk/">@WEBSITE@/cdk/</a><br> 1378aae38d10SBaptiste Daroussin </p> 1379aae38d10SBaptiste Daroussin </dd> 1380aae38d10SBaptiste Daroussin 1381e1865124SBaptiste Daroussin <dt><span class="part-name">ded</span> 1382e1865124SBaptiste Daroussin </dt> 1383aae38d10SBaptiste Daroussin 1384aae38d10SBaptiste Daroussin <dd> 1385aae38d10SBaptiste Daroussin <p>directory-editor</p> 1386aae38d10SBaptiste Daroussin 1387e1865124SBaptiste Daroussin <p><a href="@WEBSITE@/ded/">@WEBSITE@/ded/</a></p> 1388aae38d10SBaptiste Daroussin </dd> 1389aae38d10SBaptiste Daroussin 1390e1865124SBaptiste Daroussin <dt><span class="part-name">dialog</span> 1391e1865124SBaptiste Daroussin </dt> 1392aae38d10SBaptiste Daroussin 1393aae38d10SBaptiste Daroussin <dd> 1394aae38d10SBaptiste Daroussin <p>the underlying application used in Slackware's setup, 1395aae38d10SBaptiste Daroussin and the basis for similar install/configure applications on 1396aae38d10SBaptiste Daroussin many systems.</p> 1397aae38d10SBaptiste Daroussin 1398e1865124SBaptiste Daroussin <p><a href="@WEBSITE@/dialog/">@WEBSITE@/dialog/</a></p> 1399aae38d10SBaptiste Daroussin </dd> 1400aae38d10SBaptiste Daroussin 1401e1865124SBaptiste Daroussin <dt><span class="part-name">lynx</span> 1402e1865124SBaptiste Daroussin </dt> 1403aae38d10SBaptiste Daroussin 1404aae38d10SBaptiste Daroussin <dd> 1405aae38d10SBaptiste Daroussin <p>the text WWW browser</p> 1406aae38d10SBaptiste Daroussin 1407aae38d10SBaptiste Daroussin <p><a href= 1408aae38d10SBaptiste Daroussin "https://lynx.invisible-island.net/">https://lynx.invisible-island.net/</a></p> 1409aae38d10SBaptiste Daroussin </dd> 1410aae38d10SBaptiste Daroussin 1411e1865124SBaptiste Daroussin <dt><span class="part-name">mutt</span> 1412e1865124SBaptiste Daroussin </dt> 1413aae38d10SBaptiste Daroussin 1414aae38d10SBaptiste Daroussin <dd> 1415aae38d10SBaptiste Daroussin <p>mail utility</p> 1416aae38d10SBaptiste Daroussin 1417e1865124SBaptiste Daroussin <p><a href="http://www.mutt.org/">http://www.mutt.org/</a></p> 1418aae38d10SBaptiste Daroussin </dd> 1419aae38d10SBaptiste Daroussin 1420e1865124SBaptiste Daroussin <dt><span class="part-name">ncftp</span> 1421e1865124SBaptiste Daroussin </dt> 1422aae38d10SBaptiste Daroussin 1423aae38d10SBaptiste Daroussin <dd> 1424aae38d10SBaptiste Daroussin <p>file-transfer utility</p> 1425aae38d10SBaptiste Daroussin 1426aae38d10SBaptiste Daroussin <p><a href= 1427aae38d10SBaptiste Daroussin "https://www.ncftp.com/">https://www.ncftp.com/</a></p> 1428aae38d10SBaptiste Daroussin </dd> 1429aae38d10SBaptiste Daroussin 1430e1865124SBaptiste Daroussin <dt><span class="part-name">nvi</span> 1431e1865124SBaptiste Daroussin </dt> 1432aae38d10SBaptiste Daroussin 1433aae38d10SBaptiste Daroussin <dd> 1434aae38d10SBaptiste Daroussin <p>New vi uses ncurses.</p> 1435aae38d10SBaptiste Daroussin 1436aae38d10SBaptiste Daroussin <p><a href= 1437*21817992SBaptiste Daroussin "https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page"> 1438*21817992SBaptiste Daroussin https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page</a><br> 1439e1865124SBaptiste Daroussin 1440aae38d10SBaptiste Daroussin </p> 1441aae38d10SBaptiste Daroussin </dd> 1442aae38d10SBaptiste Daroussin 1443e1865124SBaptiste Daroussin <dt><span class="part-name">ranger</span> 1444e1865124SBaptiste Daroussin </dt> 1445aae38d10SBaptiste Daroussin 1446aae38d10SBaptiste Daroussin <dd> 1447aae38d10SBaptiste Daroussin <p>A console file manager with VI key bindings in 1448aae38d10SBaptiste Daroussin <em>Python</em>.</p> 1449aae38d10SBaptiste Daroussin 1450aae38d10SBaptiste Daroussin <p><a href= 1451aae38d10SBaptiste Daroussin "https://ranger.github.io/">https://ranger.github.io/</a></p> 1452aae38d10SBaptiste Daroussin </dd> 1453aae38d10SBaptiste Daroussin 1454e1865124SBaptiste Daroussin <dt><span class="part-name">tin</span> 1455e1865124SBaptiste Daroussin </dt> 1456aae38d10SBaptiste Daroussin 1457aae38d10SBaptiste Daroussin <dd> 1458aae38d10SBaptiste Daroussin <p>newsreader, supporting color, MIME</p> 1459aae38d10SBaptiste Daroussin 1460e1865124SBaptiste Daroussin <p><a href="http://www.tin.org/">http://www.tin.org/</a></p> 1461aae38d10SBaptiste Daroussin </dd> 1462aae38d10SBaptiste Daroussin 1463e1865124SBaptiste Daroussin <dt><span class="part-name">vifm</span> 1464e1865124SBaptiste Daroussin </dt> 1465aae38d10SBaptiste Daroussin 1466aae38d10SBaptiste Daroussin <dd> 1467aae38d10SBaptiste Daroussin <p>File manager with vi like keybindings</p> 1468aae38d10SBaptiste Daroussin 1469aae38d10SBaptiste Daroussin <p><a href="https://vifm.info/">https://vifm.info/</a></p> 1470aae38d10SBaptiste Daroussin </dd> 147106bfebdeSXin LI </dl> 1472aae38d10SBaptiste Daroussin </blockquote> 147306bfebdeSXin LI 1474aae38d10SBaptiste Daroussin <p>as well as some that use <span class= 1475aae38d10SBaptiste Daroussin "main-name">ncurses</span> for the terminfo support alone:</p> 147606bfebdeSXin LI 1477aae38d10SBaptiste Daroussin <blockquote> 1478aae38d10SBaptiste Daroussin <dl> 1479e1865124SBaptiste Daroussin <dt><span class="part-name">minicom</span> 1480e1865124SBaptiste Daroussin </dt> 148173f0a83dSXin LI 1482aae38d10SBaptiste Daroussin <dd> 1483aae38d10SBaptiste Daroussin <p>terminal emulator for serial modem connections</p> 148406bfebdeSXin LI 1485aae38d10SBaptiste Daroussin <p><a href= 1486*21817992SBaptiste Daroussin "https://salsa.debian.org/minicom-team/minicom">https://salsa.debian.org/minicom-team/minicom</a></p> 1487aae38d10SBaptiste Daroussin </dd> 1488aae38d10SBaptiste Daroussin 1489e1865124SBaptiste Daroussin <dt><span class="part-name">mosh</span> 1490e1865124SBaptiste Daroussin </dt> 1491aae38d10SBaptiste Daroussin 1492aae38d10SBaptiste Daroussin <dd> 1493aae38d10SBaptiste Daroussin <p>a replacement for <code>ssh</code>.</p> 1494aae38d10SBaptiste Daroussin 1495*21817992SBaptiste Daroussin <p><a href="https://mosh.org/">https://mosh.org/</a></p> 1496aae38d10SBaptiste Daroussin </dd> 1497aae38d10SBaptiste Daroussin 1498e1865124SBaptiste Daroussin <dt><span class="part-name">tack</span> 1499e1865124SBaptiste Daroussin </dt> 1500aae38d10SBaptiste Daroussin 1501aae38d10SBaptiste Daroussin <dd> 1502aae38d10SBaptiste Daroussin <p>terminfo action checker</p> 1503aae38d10SBaptiste Daroussin 1504e1865124SBaptiste Daroussin <p><a href="@HOMEPAGE@/tack.html">@HOMEPAGE@/tack.html</a></p> 1505aae38d10SBaptiste Daroussin </dd> 1506aae38d10SBaptiste Daroussin 1507e1865124SBaptiste Daroussin <dt><span class="part-name">tmux</span> 1508e1865124SBaptiste Daroussin </dt> 1509aae38d10SBaptiste Daroussin 1510aae38d10SBaptiste Daroussin <dd> 1511aae38d10SBaptiste Daroussin <p>terminal multiplexor</p> 1512aae38d10SBaptiste Daroussin 1513aae38d10SBaptiste Daroussin <p><a href= 1514aae38d10SBaptiste Daroussin "https://github.com/tmux/tmux/wiki">https://github.com/tmux/tmux/wiki</a></p> 1515aae38d10SBaptiste Daroussin </dd> 1516aae38d10SBaptiste Daroussin 1517e1865124SBaptiste Daroussin <dt><span class="part-name">vile</span> 1518e1865124SBaptiste Daroussin </dt> 1519aae38d10SBaptiste Daroussin 1520aae38d10SBaptiste Daroussin <dd> 1521e1865124SBaptiste Daroussin <p><em>vi-like-emacs</em> may be built to use the terminfo, 1522e1865124SBaptiste Daroussin termcap or curses interfaces.</p> 1523aae38d10SBaptiste Daroussin 1524e1865124SBaptiste Daroussin <p><a href="@WEBSITE@/vile/">@WEBSITE@/vile/</a></p> 1525aae38d10SBaptiste Daroussin </dd> 1526aae38d10SBaptiste Daroussin </dl> 1527aae38d10SBaptiste Daroussin </blockquote> 1528aae38d10SBaptiste Daroussin 1529aae38d10SBaptiste Daroussin <p>and finally, those which use only the termcap interface:</p> 1530aae38d10SBaptiste Daroussin 1531aae38d10SBaptiste Daroussin <blockquote> 1532aae38d10SBaptiste Daroussin <dl> 1533e1865124SBaptiste Daroussin <dt><span class="part-name">emacs</span> 1534e1865124SBaptiste Daroussin </dt> 1535aae38d10SBaptiste Daroussin 1536aae38d10SBaptiste Daroussin <dd> 1537aae38d10SBaptiste Daroussin <p>text editor</p> 1538aae38d10SBaptiste Daroussin 1539aae38d10SBaptiste Daroussin <p><a href= 1540aae38d10SBaptiste Daroussin "https://www.gnu.org/software/emacs/">https://www.gnu.org/software/emacs/</a></p> 1541aae38d10SBaptiste Daroussin </dd> 1542aae38d10SBaptiste Daroussin 1543e1865124SBaptiste Daroussin <dt><span class="part-name">less</span> 1544e1865124SBaptiste Daroussin </dt> 1545aae38d10SBaptiste Daroussin 1546aae38d10SBaptiste Daroussin <dd> 1547aae38d10SBaptiste Daroussin <p>The most commonly used <em>pager</em> (a program that 1548aae38d10SBaptiste Daroussin displays text files).</p> 1549aae38d10SBaptiste Daroussin 1550aae38d10SBaptiste Daroussin <p><a href= 1551aae38d10SBaptiste Daroussin "http://www.greenwoodsoftware.com/less/">http://www.greenwoodsoftware.com/less/</a></p> 1552aae38d10SBaptiste Daroussin </dd> 1553aae38d10SBaptiste Daroussin 1554e1865124SBaptiste Daroussin <dt><span class="part-name">screen</span> 1555e1865124SBaptiste Daroussin </dt> 1556aae38d10SBaptiste Daroussin 1557aae38d10SBaptiste Daroussin <dd> 1558aae38d10SBaptiste Daroussin <p>terminal multiplexor</p> 1559aae38d10SBaptiste Daroussin 1560aae38d10SBaptiste Daroussin <p><a href= 1561aae38d10SBaptiste Daroussin "https://www.gnu.org/software/screen/">https://www.gnu.org/software/screen/</a></p> 1562aae38d10SBaptiste Daroussin </dd> 1563aae38d10SBaptiste Daroussin 1564e1865124SBaptiste Daroussin <dt><span class="part-name">vim</span> 1565e1865124SBaptiste Daroussin </dt> 1566aae38d10SBaptiste Daroussin 1567aae38d10SBaptiste Daroussin <dd> 1568aae38d10SBaptiste Daroussin <p>text editor</p> 1569aae38d10SBaptiste Daroussin 1570e1865124SBaptiste Daroussin <p><a href="https://www.vim.org/">https://www.vim.org/</a></p> 1571aae38d10SBaptiste Daroussin </dd> 1572aae38d10SBaptiste Daroussin </dl> 1573aae38d10SBaptiste Daroussin </blockquote> 1574aae38d10SBaptiste Daroussin 1575aae38d10SBaptiste Daroussin <h2><a name="h2-development" id="h2-development">Development 1576aae38d10SBaptiste Daroussin activities</a></h2> 1577aae38d10SBaptiste Daroussin 1578aae38d10SBaptiste Daroussin <p>Zeyd Ben-Halim started <span class="main-name">ncurses</span> 1579aae38d10SBaptiste Daroussin from a previous package pcurses, written by Pavel Curtis. Eric S. 1580aae38d10SBaptiste Daroussin Raymond continued development. Jürgen Pfeifer wrote most of 1581e1865124SBaptiste Daroussin the form and menu libraries.</p> 1582e1865124SBaptiste Daroussin 1583e1865124SBaptiste Daroussin <p>Ongoing development work is done by <a href= 1584e1865124SBaptiste Daroussin "mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas 1585e1865124SBaptiste Daroussin E. Dickey has acted as the maintainer for the Free Software 1586*21817992SBaptiste Daroussin Foundation, which held a <a href= 1587e1865124SBaptiste Daroussin "@HOMEPAGE@/ncurses-license.html">copyright on ncurses</a> for 1588e1865124SBaptiste Daroussin releases 4.2 through 6.1. Following the release of ncurses 6.1, 1589e1865124SBaptiste Daroussin effective as of release 6.2, copyright for ncurses reverted to 1590e1865124SBaptiste Daroussin Thomas E. Dickey (see the <a href= 1591e1865124SBaptiste Daroussin "@HOMEPAGE@/ncurses.faq.html#relicensed">ncurses FAQ</a> for 1592e1865124SBaptiste Daroussin additional information).</p> 1593aae38d10SBaptiste Daroussin 1594aae38d10SBaptiste Daroussin <p>Contact the current maintainers at</p> 1595aae38d10SBaptiste Daroussin 1596aae38d10SBaptiste Daroussin <blockquote> 1597aae38d10SBaptiste Daroussin <a href="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a> 1598aae38d10SBaptiste Daroussin </blockquote> 1599aae38d10SBaptiste Daroussin 1600aae38d10SBaptiste Daroussin <p>To join the ncurses mailing list, please write email to</p> 1601aae38d10SBaptiste Daroussin 1602aae38d10SBaptiste Daroussin <blockquote> 1603aae38d10SBaptiste Daroussin <a href= 1604aae38d10SBaptiste Daroussin "mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a> 1605e1865124SBaptiste Daroussin </blockquote> 1606e1865124SBaptiste Daroussin containing the line: 1607aae38d10SBaptiste Daroussin <blockquote> 1608aae38d10SBaptiste Daroussin <p><code>subscribe</code> 1609aae38d10SBaptiste Daroussin <em><name>@<host.domain></em></p> 1610aae38d10SBaptiste Daroussin </blockquote> 16110e3d5408SPeter Wemm 161206bfebdeSXin LI <p>This list is open to anyone interested in helping with the 161306bfebdeSXin LI development and testing of this package.</p> 16140e3d5408SPeter Wemm 1615e1865124SBaptiste Daroussin <p>Beta versions of <span class="main-name">ncurses</span> are 1616e1865124SBaptiste Daroussin made available at</p> 1617aae38d10SBaptiste Daroussin 1618aae38d10SBaptiste Daroussin <blockquote> 1619aae38d10SBaptiste Daroussin <p><a href= 1620*21817992SBaptiste Daroussin "https://invisible-island.net/archives/ncurses/current/">https://invisible-island.net/archives/ncurses/current/</a> 1621aae38d10SBaptiste Daroussin and<br> 1622aae38d10SBaptiste Daroussin <a href= 1623e1865124SBaptiste Daroussin "https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/</a> .</p> 1624e1865124SBaptiste Daroussin </blockquote> 1625e1865124SBaptiste Daroussin 1626e1865124SBaptiste Daroussin <p>Patches to the current release are made available at</p> 1627e1865124SBaptiste Daroussin 1628e1865124SBaptiste Daroussin <blockquote> 1629e1865124SBaptiste Daroussin <p><a href= 1630*21817992SBaptiste Daroussin "https://invisible-island.net/archives/ncurses/6.4/">https://invisible-island.net/archives/ncurses/6.4/</a> 1631e1865124SBaptiste Daroussin and<br> 1632e1865124SBaptiste Daroussin <a href= 1633*21817992SBaptiste Daroussin "https://invisible-mirror.net/archives/ncurses/6.4/">https://invisible-mirror.net/archives/ncurses/6.4/</a> .</p> 1634aae38d10SBaptiste Daroussin </blockquote> 16350e3d5408SPeter Wemm 163673f0a83dSXin LI <p>There is an archive of the mailing list here:</p> 163773f0a83dSXin LI 1638aae38d10SBaptiste Daroussin <blockquote> 163973f0a83dSXin LI <p><a href= 1640*21817992SBaptiste Daroussin "https://lists.gnu.org/archive/html/bug-ncurses">https://lists.gnu.org/archive/html/bug-ncurses</a> .</p> 1641aae38d10SBaptiste Daroussin </blockquote> 164273f0a83dSXin LI 1643aae38d10SBaptiste Daroussin <h2><a name="h2-this-stuff" id="h2-this-stuff">Related 1644aae38d10SBaptiste Daroussin resources</a></h2> 1645aae38d10SBaptiste Daroussin 1646aae38d10SBaptiste Daroussin <p>The release notes make scattered references to these pages, 1647aae38d10SBaptiste Daroussin which may be interesting by themselves:</p> 16480e3d5408SPeter Wemm 164906bfebdeSXin LI <ul> 1650e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/ncurses-license.html"><span class= 1651e1865124SBaptiste Daroussin "main-name">ncurses</span> licensing</a></li> 16520e3d5408SPeter Wemm 1653e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/ncurses-mapsyms.html">Symbol versioning 1654e1865124SBaptiste Daroussin in <span class="main-name">ncurses</span></a></li> 1655aae38d10SBaptiste Daroussin 1656e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/ncurses-slang.html">Comments on 1657e1865124SBaptiste Daroussin <span class="main-name">ncurses</span> versus <span class= 1658aae38d10SBaptiste Daroussin "main-name">slang</span> (S-Lang)</a></li> 1659aae38d10SBaptiste Daroussin 1660*21817992SBaptiste Daroussin <li><a href="@HOMEPAGE@/ncurses-openbsd.html">Comments on 1661*21817992SBaptiste Daroussin <span class="main-name">OpenBSD</span></a></li> 1662*21817992SBaptiste Daroussin 1663e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/tack.html">tack – terminfo action 1664e1865124SBaptiste Daroussin checker</a></li> 1665e1865124SBaptiste Daroussin 1666e1865124SBaptiste Daroussin <li><a href="@HOMEPAGE@/tctest.html">tctest – termcap 1667e1865124SBaptiste Daroussin library checker</a></li> 1668aae38d10SBaptiste Daroussin 1669aae38d10SBaptiste Daroussin <li><a href= 1670e1865124SBaptiste Daroussin "@HOMEPAGE@/ncurses.html#download_database">Terminal 1671e1865124SBaptiste Daroussin Database</a></li> 167273f0a83dSXin LI </ul> 16730e3d5408SPeter Wemm 1674aae38d10SBaptiste Daroussin <h2><a name="h2-other-stuff" id="h2-other-stuff">Other 1675aae38d10SBaptiste Daroussin resources</a></h2> 167673f0a83dSXin LI 167773f0a83dSXin LI <p>The distribution provides a newer version of the 167873f0a83dSXin LI terminfo-format terminal description file once maintained by 167973f0a83dSXin LI <a href="http://www.catb.org/~esr/terminfo/">Eric 168006bfebdeSXin LI Raymond</a> . Unlike the older version, the termcap and 1681aae38d10SBaptiste Daroussin terminfo data are provided in the same file, which also provides 1682*21817992SBaptiste Daroussin several user-definable extensions beyond the X/Open Curses 1683aae38d10SBaptiste Daroussin specification.</p> 168406bfebdeSXin LI 168506bfebdeSXin LI <p>You can find lots of information on terminal-related topics 1686*21817992SBaptiste Daroussin not covered in the terminfo file in <a href= 1687*21817992SBaptiste Daroussin "https://shuford.invisible-island.net/">Richard Shuford's 1688*21817992SBaptiste Daroussin archive</a> (<a href= 1689*21817992SBaptiste Daroussin "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">original</a>). 1690*21817992SBaptiste Daroussin The collection of computer manuals at <a href= 1691e1865124SBaptiste Daroussin "http://www.bitsavers.org/pdf/">bitsavers.org</a> has also been 1692e1865124SBaptiste Daroussin useful.</p> 1693aae38d10SBaptiste Daroussin 1694aae38d10SBaptiste Daroussin <div class="nav"> 1695aae38d10SBaptiste Daroussin <ul> 1696aae38d10SBaptiste Daroussin <li><a href="#h2-overview">Overview</a></li> 1697aae38d10SBaptiste Daroussin 1698aae38d10SBaptiste Daroussin <li> 1699aae38d10SBaptiste Daroussin <a href="#h2-release-notes">Release Notes</a> 1700aae38d10SBaptiste Daroussin <ul> 1701aae38d10SBaptiste Daroussin <li> 1702aae38d10SBaptiste Daroussin <a href="#h3-library">Library improvements</a> 1703aae38d10SBaptiste Daroussin <ul> 1704aae38d10SBaptiste Daroussin <li><a href="#h4-new-library">New features</a></li> 1705aae38d10SBaptiste Daroussin 1706aae38d10SBaptiste Daroussin <li><a href="#h4-fixes-library">Other 1707aae38d10SBaptiste Daroussin improvements</a></li> 1708aae38d10SBaptiste Daroussin </ul> 1709aae38d10SBaptiste Daroussin </li> 1710aae38d10SBaptiste Daroussin 1711aae38d10SBaptiste Daroussin <li> 1712aae38d10SBaptiste Daroussin <a href="#h3-programs">Program improvements</a> 1713aae38d10SBaptiste Daroussin <ul> 1714aae38d10SBaptiste Daroussin <li><a href="#h4-utilities">Utilities</a></li> 1715aae38d10SBaptiste Daroussin 1716aae38d10SBaptiste Daroussin <li><a href="#h4-examples">Examples</a></li> 1717aae38d10SBaptiste Daroussin </ul> 1718aae38d10SBaptiste Daroussin </li> 1719aae38d10SBaptiste Daroussin 1720aae38d10SBaptiste Daroussin <li><a href="#h3-database">Terminal database</a></li> 1721aae38d10SBaptiste Daroussin 1722aae38d10SBaptiste Daroussin <li><a href="#h3-documentation">Documentation</a></li> 1723aae38d10SBaptiste Daroussin 1724e1865124SBaptiste Daroussin <li><a href="#h3-bug-fixes">Interesting bug-fixes</a></li> 1725aae38d10SBaptiste Daroussin 1726aae38d10SBaptiste Daroussin <li> 1727aae38d10SBaptiste Daroussin <a href="#h3-config-config">Configuration changes</a> 1728aae38d10SBaptiste Daroussin <ul> 1729aae38d10SBaptiste Daroussin <li><a href="#h4-config-major">Major changes</a></li> 1730aae38d10SBaptiste Daroussin 1731aae38d10SBaptiste Daroussin <li><a href="#h4-config-options">Configuration 1732aae38d10SBaptiste Daroussin options</a></li> 1733aae38d10SBaptiste Daroussin </ul> 1734aae38d10SBaptiste Daroussin </li> 1735aae38d10SBaptiste Daroussin 1736aae38d10SBaptiste Daroussin <li><a href="#h3-portability">Portability</a></li> 1737aae38d10SBaptiste Daroussin </ul> 1738aae38d10SBaptiste Daroussin </li> 1739aae38d10SBaptiste Daroussin 1740aae38d10SBaptiste Daroussin <li><a href="#h2-features">Features of <span class= 1741aae38d10SBaptiste Daroussin "main-name">ncurses</span></a></li> 1742aae38d10SBaptiste Daroussin 1743aae38d10SBaptiste Daroussin <li><a href="#h2-who-uses">Applications using <span class= 1744aae38d10SBaptiste Daroussin "main-name">ncurses</span></a></li> 1745aae38d10SBaptiste Daroussin 1746aae38d10SBaptiste Daroussin <li><a href="#h2-development">Development activities</a></li> 1747aae38d10SBaptiste Daroussin 1748aae38d10SBaptiste Daroussin <li><a href="#h2-this-stuff">Related resources</a></li> 1749aae38d10SBaptiste Daroussin 1750aae38d10SBaptiste Daroussin <li><a href="#h2-other-stuff">Other resources</a></li> 1751aae38d10SBaptiste Daroussin </ul> 1752aae38d10SBaptiste Daroussin </div> 175306bfebdeSXin LI</body> 175406bfebdeSXin LI</html> 1755