- <p>limited termcap “<code>%d</code>” width to 2
- digits on input, and use “<code>%2</code>” in
- preference to “<code>%02</code>” on output.</p>
- </li>
-
- <li>
- <p>correct terminfo/termcap conversion of
- “<code>%02</code>” and
- “<code>%03</code>” into
- “<code>%2</code>” and
- “<code>%3</code>”; the result repeated the last
- character.</p>
- </li>
- </ul>
-
- <h4><a name="h4-examples" id="h4-examples">Examples</a></h4>
-
- <p>Along with the library and utilities, many improvements were
- made to the <a href=
- "https://invisible-island.net/ncurses/ncurses-examples.html">ncurses-examples</a>.</p>
-
- <p>These changes were made to demonstrate new extensions in
- <span class="main-name">ncurses</span>:</p>
-
- <ul>
- <li>
- <p>add <span class="part-name">demo_new_pair</span> program,
- to demonstrate <a href=
- "https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-alloc_pair">
- <code>alloc_pair</code></a>, <a href=
- "https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-find_pair">
- <code>find_pair</code></a> and <a href=
- "https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-free_pair">
- <code>free_pair</code></a> functions.</p>
-
- <p>This program iterates over the possible color
- combinations, allocating or initializing color pairs. For
- best results, choose screen-width dividing evenly into the
- number of colors. e.g.,</p>
-
- <blockquote>
- <table summary="sample layouts for demo_new_pair">
- <tr>
- <td><code>32x64,32x128</code> </td>
-
- <td>256 colors</td>
- </tr>
-
- <tr>
- <td><code>24x44,24x88</code></td>
-
- <td>88 colors</td>
- </tr>
-
- <tr>
- <td><code>32x64,24x128</code></td>
-
- <td>16 colors</td>
- </tr>
- </table>
- </blockquote>
- </li>
-
- <li>
- <p>add <span class="part-name">extended_color</span> program,
- like the older <span class="part-name">color_set</span>
- program, but using the extended color functions, with and
- without the SP-functions interface.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">picsmap</span> program to fill
- in some testing issues not met by <span class=
- "part-name">dots</span>, using this as the third example in a
- comparison of the <a href=
- "https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap">
- ncurses versus slang</a> libraries.</p>
-
- <p>The program can directly read X bitmap and pixmap files,
- displaying a picture. It can read other image files using
- <span class="part-name">ImageMagick</span>'s <span class=
- "part-name">convert</span> program to translate the image
- into text.</p>
-
- <p>For 16-, 88- and 256-color terminal descriptions,
- <span class="part-name">picsmap</span> can load a palette
- file which tells it which color palette entries to use. For
- direct-colors, the terminal descriptions use the
- <code>RGB</code> extension capability.</p>
- </li>
- </ul>
-
- <p>There are other new example programs and a few scripts:</p>
-
- <ul>
- <li>
- <p>add <span class="part-name">dots_xcurses</span> program to
- illustrate a different approach used for extended colors
- which can be contrasted with <span class=
- "part-name">dots_curses</span>.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">list_keys</span> program show
- function keys for one or more terminal descriptions. It uses
- <span class="main-name">ncurses'</span>s convention of
- modifiers for special keys, based on xterm.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">padview</span> program, to
- compare pads with direct updates in the <span class=
- "part-name">view</span> program.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">sp_tinfo</span> program to
- exercise the SP-functions extension of the low-level terminfo
- library.</p>
- </li>
-
- <li>
- <p>add test-programs for <code>termattrs</code> and
- <code>term_attrs</code> functions.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">test_sgr</span> program to
- exercise all combinations of the sgr capability.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">tput-colorcube</span> demo
- script, imitating xterm's 88- and 256-color scripts using
- <span class="part-name">tput</span>.</p>
- </li>
-
- <li>
- <p>add <span class="part-name">tput-initc</span> script to
- demonstrate how <span class="part-name">tput</span> may be
- used to initialize a color palette from a data file.</p>
- </li>
- </ul>
-
- <p>A variety of improvements were made to existing programs, both
- new features as well as options added to make the set of programs
- more consistent.</p>
-
- <p>The <span class="part-name">ncurses</span> program is the
- largest; a proportionately large number of changes were made to
- it:</p>
-
- <ul>
- <li>
- <p>modify a/A screens to make exiting on an escape character
- depend on the start of keypad and timeout modes, to allow
- better testing of function-keys.</p>
-
- <p>add “<code>t</code>” toggle for
- <code>notimeout</code> function.</p>
- </li>
-
- <li>
- <p>modify layout of b/B screens to allow for additional
- annotation on the right margin; some terminals with partial
- support did not display well.</p>
- </li>
-
- <li>
- <p>modify c/C screens to allow for extended color pairs.</p>
-
- <p>add z/Z <em>zoom</em> feature to make extended color pairs
- easier to test.</p>
-
- <p>modify test-screens to take advantage of wide screens,
- reducing the number of lines used for 88- and 256-colors.</p>
- </li>
-
- <li>
- <p>modify “<code>d</code>” edit-color screen to
- optionally read xterm color palette directly from terminal,
- as well as handling <code>KEY_RESIZE</code> and
- screen-repainting with control/L and control/R.</p>
- </li>
-
- <li>
- <p>add examples to “<code>F</code>” screen for
- <code>WACS_D_PLUS</code> and <code>WACS_T_PLUS</code>.</p>
- </li>
-
- <li>
- <p>improve “<code>g</code>” screen, correcting
- ifdef which made the legend not reflect changes to keypad-
- and scroll-modes. Added check for return-value of
- <code>putwin</code>.</p>
- </li>
-
- <li>
- <p>make “<code>s</code>” test easier to
- understand which subtests are available</p>
-
- <p>add a corresponding “<code>S</code>”
- wide-character overlap test-screen.</p>
- </li>
-
- <li>
- <p>add “<code>v</code>” screen to show
- <code>baudrate</code> and other values.</p>
- </li>
- </ul>
-
- <p>These changes were made to the other examples:</p>
-
- <ul>
- <li>
- <p>modify <span class="part-name">blue</span> program to use
- Unicode values for card-glyphs when available, as well as
- improving the check for CP437 and CP850.</p>
- </li>
-
- <li>
- <p>improve <span class="part-name">demo_menus</span> program,
- allowing mouse-click on the menu-headers to switch the active
- menu. This requires a new extension option
- <code>O_MOUSE_MENU</code> to tell the menu driver to put
- mouse events which do not apply to the active menu back into
- the queue so that the application can handle the event.</p>
- </li>
-
- <li>
- <p>correct logic in <span class=
- "part-name">demo_terminfo</span> program for
- “<code>-f</code>” option</p>
- </li>
-
- <li>
- <p>modify <span class="part-name">ditto</span> program to
- allow <code>$XTERM_PROG</code> environment variable to
- override "xterm" as the name of the program to run in the
- threaded configuration.</p>
- </li>
-
- <li>
- <p>add several options to the “<em>dots</em>”
- test-programs.</p>
- </li>
-
- <li>
- <p>modify <span class="part-name">filter</span> program:</p>
-
- <ul>
- <li>illustrate an alternative to <code>getnstr</code>, that
- polls for input while updating a clock on the right margin
- as well as responding to window size-changes.</li>
-
- <li>adapt logic used in <a href=
- "https://invisible-island.net/dialog/"><span class=
- "main-name">dialog</span></a> <a href=
- "https://invisible-island.net/dialog/manpage/dialog.html#h3-Common-Options">
- “<code>--keep-tite</code>” option</a> for
- <span class="part-name">filter</span> program as the "-a"
- option. When set, <span class="part-name">filter</span>
- attempts to suppress the alternate screen.</li>
- </ul>
- </li>
-
- <li>
- <p>modify <span class="part-name">knight</span> program to
- provide the "slow" solution for small screens using
- “<code>R</code>”, noting that Warnsdorf's method
- is easily done with “<code>a</code>”.</p>
- </li>
-
- <li>
- <p>modify the <span class="part-name">savescreen</span>
- program to add test patterns that exercise 88-, 256-, etc.,
- colors.</p>
- </li>
-
- <li>
- <p>add options to <span class="part-name">test_arrays</span>,
- for selecting termcap vs terminfo, etc.</p>
- </li>
-
- <li>
- <p>modify the <span class="part-name">view</span>
- program:</p>
-
- <ul>
- <li>expand tabs using the ncurses library rather than in
- the test-program.</li>
-
- <li>eliminate the “<code>-n</code>” option by
- simply reading the whole file.</li>
-
- <li>implement page up/down commands.</li>
-
- <li>remove the very old <code>SIGWINCH</code> example; just
- use <code>KEY_RESIZE</code>.</li>
- </ul>
- </li>
-
- <li>
- <p>improve animation in <span class="part-name">xmas</span>
- program by adding a time-delay in <code>blinkit</code>.</p>
- </li>
-
- <li>
- <p>modify several test-programs which call
- <code>use_default_colors</code> to consistently do this only
- if the “<code>-d</code>” option is given.</p>
- </li>
-
- <li>
- <p>modify the install-rule for ncurses-examples to put the
- data files in the data directory, e.g.,
- <code>/usr/share/ncurses-examples</code>.</p>
- </li>
-
- <li>
- <p>modify several test programs to use new
- <code>popup_msgs</code> function, adapted from the
- help-screen used in the <code>edit_field</code> program.</p>
- </li>
-
- <li>
- <p>modify test data for xterm palettes to use the newer
- color4/color12 values.</p>
- </li>
-
- <li>
- <p>improve the <span class="part-name">tracemunch</span>
- script:</p>
-
- <ul>
- <li>show screenXX pointers and thread identifiers as
- names.</li>
-
- <li>chang address-parameters of <code>add_wch</code>,
- <code>color_content</code> and <code>pair_content</code> to
- dummy parameters.</li>
- </ul>
- </li>
- </ul>
-
- <h3><a name="h3-database" id="h3-database">Terminal
- database</a></h3>
-
- <p>There are several new terminal descriptions:</p>
-
- <blockquote>
- <p><code>dumb-emacs-ansi</code>, <code>dvtm</code>,
- <code>dvtm-256color</code>, <code>fbterm</code>,
- <code>iterm2</code>, <code>linux-m1</code> <em>minitel
- entries</em>, <code>putty-noapp</code>, <code>viewdata</code>,
- and <code>vt100+4bsd</code> <em>building-block</em>.</p>
-
- <p><code>xterm+noalt</code>, <code>xterm+titlestack</code>,
- <code>xterm+alt1049</code>, <code>xterm+alt+title</code>
- <em>building blocks</em> and <code>xterm+direct</code>,
- <code>xterm+indirect</code>, <code>xterm-direct</code>. from
- <a href=
- "https://invisible-island.net/xterm/xterm.log.html#xterm_331">xterm
- patch #331</a>.</p>
-
- <p>several other “<code>-direct</code>”
- descriptions to address the differences of other terminal
- emulators versus <code>xterm-direct</code>.</p>
- </blockquote>
-
- <p>There are many changes to existing terminal descriptions. Some
- were updates to several descriptions:</p>
-
- <ul>
- <li>use <code>xterm+sm+1006</code> in several terminal
- descriptions which were validated as supporting the extended
- mouse feature for their respective terminal emulators.</li>
-
- <li>corrected <em>sgr</em>/<em>sgr0</em> strings in a few cases
- reported by <span class="part-name">tic</span>, making those
- correspond to the non-<em>sgr</em> settings where they differ,
- but otherwise use ECMA-48 consistently.</li>
-
- <li>add 0.1sec mandatory delay to <em>flash</em> capabilities
- using the VT100 reverse-video control</li>
- </ul>
-
- <p>while others affected specific descriptions. These were
- retested, to take into account new/undocumented changes by their
- developers:</p>
-
- <blockquote>
- <p><code>iterm</code>, <code>minitel</code>, <code>st</code>,
- <code>viewdata</code>, <code>nsterm</code></p>
- </blockquote>
-
- <p>while these are specific fixes based on user reports, or
- warnings from <span class="part-name">tic</span>:</p>
-
- <dl>
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_A_N_S_I__S_Y_S__I_S_O_6429__E_C_M_A-48__Capabilities">
- <code>ansi</code> <em>building blocks</em></a></dt>
-
- <dd>
- <ul>
- <li>restored <em>rmir</em>/<em>smir</em> in
- <code>ansi+idc</code> to better match original
- <code>ansiterm+idc</code>, add alias
- <code>ansiterm</code></li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404">
- <code>icl6402</code></a></dt>
-
- <dd>
- <ul>
- <li>corrected missing comma-separator between string
- capabilities in <code>icl6402</code> and
- <code>m2-nam</code></li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#tic-interix">
- <code>interix</code></a></dt>
-
- <dd>
- <ul>
- <li>updated using <span class="main-name">tack</span> and
- SFU with Windows 7 Ultimate.</li>
-
- <li>used <code>^?</code> for <em>kdch1</em></li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_Linux_consoles">
- <code>linux</code></a></dt>
-
- <dd>
- <ul>
- <li>made <code>linux3.0</code> entry the default
- <strong><code>linux</code></strong> entry</li>
-
- <li>modify <code>linux2.6</code> entry to improve
- line-drawing so that the <code>linux3.0</code> entry can be
- used in non-UTF-8 mode</li>
-
- <li>omitted selection of ISO-8859-1 for G0 in enacs
- capability from linux2.6 entry, to avoid conflict with the
- user-defined mapping. The reset feature uses ISO-8859-1 in
- any case.</li>
-
- <li>modify <em>flash</em> capability for <code>linux</code>
- and <code>wyse</code> entries to put the delay between the
- reverse/normal escapes rather than after</li>
-
- <li>modify <code>linux-16color</code> to not mask dim,
- standout or reverse with the <em>ncv</em> capability</li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_Open_B_S_D_consoles">
- <code>pccon</code> <em>entries</em></a></dt>
-
- <dd>
- <ul>
- <li>fixed some inconsistencies in the
- <code><em>pccon*</em></code> entries</li>
-
- <li>add bold to <code>pccon+sgr+acs</code> and
- <code>pccon-base</code></li>
-
- <li>add keys f12-f124 to <code>pccon+keys</code></li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_Tmux">
- <code>tmux</code></a></dt>
-
- <dd>
- <ul>
- <li>corrected <em>sgr</em> string, which used
- <code>screen</code>'s "standout" code rather than the
- standard code.</li>
-
- <li>add settings corresponding to <code>xterm-keys</code>
- option to reflect upcoming change to make that option
- <em>"on"</em> by default</li>
-
- <li>uncanceled <em>Ms</em></li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_D_E_C__V_T100_and_compatibles">
- <code>vt100</code></a></dt>
-
- <dd>
- <ul>
- <li>modify <code>vt100</code> <em>rs2</em> string to reset
- vt52 mode and scrolling regions</li>
-
- <li>corrected <em>rs2</em> string for
- <code>vt100-nam</code></li>
-
- <li>made minor fixes for <code>vt100+4bsd</code>, e.g.,
- delay in <em>sgr</em> for consistency</li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_G_N_O_M_E__V_T_E_">
- <code>vte</code></a></dt>
-
- <dd>
- <ul>
- <li>moved SGR 24 and 27 from <code>vte-2014</code> to
- <code>vte-2012</code></li>
-
- <li>add a few capabilities fixed in recent <em>VTE</em>
- development</li>
- </ul>
- </dd>
-
- <dt><a href=
- "https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M">
- <code>xterm</code></a></dt>
-
- <dd>
- <ul>
- <li>add <em>rep</em> to <code>xterm-new</code>, available
- since <a href=
- "https://invisible-island.net/xterm/xterm.log.html#xterm_32">
- late 1996</a>.</li>
-
- <li>modify <code>xterm+256color</code> and
- <code>xterm+256setaf</code> to use correct number of color
- pairs.</li>
-
- <li>modify <em>rs1</em> for <code>xterm-16color</code>,
- <code>xterm-88color</code> and <code>xterm-256color</code>
- to reset palette using <em>oc</em> string as in
- <code>linux</code> entry.</li>
-
- <li>add <em>rs1</em> capability to
- <code>xterm-256color</code></li>
-
- <li>add <em>oc</em> capability to
- <code>xterm+256color</code>, allowing palette reset for
- <span class="main-name">xterm</span></li>
-
- <li>add <em>op</em> to <code>xterm+256setaf</code></li>
-
- <li>modify <code>xterm-r5</code>, <code>xterm-r6</code> and
- <code>xterm-xf86-v32</code> to use <code>xterm+kbs</code>
- to match <a href=
- "https://invisible-island.net/xterm/xterm.log.html#xterm_272">
- xterm #272</a>, reflecting packager's changes</li>
-
- <li>used ANSI reply for <em>u8</em> in
- <code>xterm-new</code>, to reflect vt220-style responses
- that could be returned.</li>
-
- <li>made <code>xterm-pcolor</code> <em>sgr</em> consistent
- with other capabilities</li>
- </ul>
- </dd>
- </dl>
-
- <p>A few entries use extensions (user-defined terminal
- capabilities):</p>
-
- <ul>
- <li>add <em>rmxx</em>/<em>smxx</em> ECMA-48 strikeout extension
- to <code>tmux</code> and <code>xterm-basic</code></li>
-
- <li>used <em>RGB</em> capability in new <em>*-direct</em>
- entries to denote direct-color feature.</li>
- </ul>
-
- <h3><a name="h3-documentation" id=
- "h3-documentation">Documentation</a></h3>
-
- <p>As usual, this release</p>
-
- <ul>
- <li>
- <p>improves documentation by describing new features,</p>
- </li>
-
- <li>
- <p>attempts to improve the description of features which
- users have found confusing</p>
- </li>
-
- <li>
- <p>fills in overlooked descriptions of features which were
- described in the <a href=
- "https://invisible-island.net/ncurses/NEWS.html">NEWS</a>
- file but treated sketchily in manual pages.</p>
- </li>
- </ul>
-
- <p>In particular,</p>
-
- <ul>
- <li>
- <p>Since the underlying features for <a href=
- "https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY">
- <span class="part-name">tset</span></a>, <a href=
- "https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY">
- <span class="part-name">tput</span></a>, and <a href=
- "https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY">
- <span class="part-name">clear</span></a> have been better
- integrated, the documentation now includes information on how
- those tools evolved.</p>
-
- <p>In addition to explaining the improved integration of the
- tools, the manual pages made it easier to see how the tools
- are similar and how they are different.</p>
- </li>
-
- <li>
- <p>The <code>addch</code> manual page has additional
- information on <a href=
- "https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-PORTABILITY">
- portability</a> and differences from other
- implementations.</p>
- </li>
-
- <li>
- <p>The discussion of color-pairs in the <em>attributes</em>
- manual page is improved in its <a href=
- "https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY">
- history section</a>.</p>
- </li>
-
- <li>
- <p>The documentation of the <code>chtype</code>,
- <code>cchar_t</code> types and the attribute values which can
- be stored in those types, in particular the <a href=
- "https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY">
- history</a> and <a href=
- "https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY">
- portability</a> sections of the <em>attributes</em> manual
- page, has been improved.</p>
- </li>
-
- <li>
- <p>improve discussion of <a href=
- "https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h2-PORTABILITY">
- portability</a> in the <em>mouse</em> manual.</p>
- </li>
-
- <li>
- <p>The <em>pad</em> manual page has a section on the <a href=
- "https://invisible-island.net/ncurses/man/curs_pad.3x.html#h2-PORTABILITY">
- origin and portability</a> of pads.</p>
- </li>
-
- <li>
- <p>Differences between SVr4 and X/Open Curses soft-keys are
- discussed in a new section on <a href=
- "https://invisible-island.net/ncurses/man/curs_slk.3x.html#h2-PORTABILITY">
- portability</a>.</p>
- </li>
-
- <li>
- <p>There are updated/improved notes on portability in the
- <a href=
- "https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-PORTABILITY">
- resizeterm</a> and <a href=
- "https://invisible-island.net/ncurses/man/wresize.3x.html#h2-PORTABILITY">
- wresize</a> manual pages.</p>
- </li>
- </ul>
-
- <p>In addition to providing background information to explain
- these features and show how they evolved, there are corrections,
- clarifications, etc.:</p>
-
- <ul>
- <li>
- <p>add note in the <a href=
- "https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols">
- <em>addch</em></a> manual about line-drawing when it depends
- upon UTF-8.</p>
- </li>
-
- <li>
- <p>improve discussion of line-drawing characters in the