5 The ncurses (new curses) library is a free software emulation of
6 curses in System V Release 4.0 (SVr4), and more. It uses terminfo
7 format, supports pads and color and multiple highlights and forms
8 characters and function-key mapping, and has all the other SVr4-curses
9 enhancements over BSD curses. SVr4 curses became the basis of X/Open
12 In mid-June 1995, the maintainer of 4.4BSD curses declared that he
13 considered 4.4BSD curses obsolete, and encouraged the keepers of unix
14 releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
16 Since 1995, ncurses has been ported to many systems:
17 * It is used in almost every system based on the Linux kernel (aside
18 from some embedded applications).
19 * It is used as the system curses library on OpenBSD, FreeBSD and
21 * It is used in environments such as Cygwin and MinGW. The first of
22 these was EMX on OS/2 Warp.
23 * It is used (though usually not as the system curses) on all of the
24 vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris,
26 * It should work readily on any ANSI/POSIX-conforming unix.
28 The distribution includes the library and support utilities, including
29 * [1]captoinfo, a termcap conversion tool
30 * [2]clear, utility for clearing the screen
31 * [3]infocmp, the terminfo decompiler
32 * [4]tabs, set tabs on a terminal
33 * [5]tic, the terminfo compiler
34 * [6]toe, list (table of) terminfo entries
35 * [7]tput, utility for retrieving terminal capabilities in shell
37 * [8]tset, to initialize the terminal
39 Full manual pages are provided for the library and tools.
41 The ncurses distribution is available at ncurses' [9]homepage:
43 [10]ftp://ftp.invisible-island.net/ncurses/ or
44 [11]https://invisible-mirror.net/archives/ncurses/ .
46 It is also available via anonymous FTP at the GNU distribution site
48 [12]ftp://ftp.gnu.org/gnu/ncurses/ .
52 These notes are for ncurses 6.1, released January 27, 2018.
54 This release is designed to be source-compatible with ncurses 5.0
55 through 6.0; providing extensions to the application binary interface
56 (ABI). Although the source can still be configured to support the
57 ncurses 5 ABI, the intent of the release is to provide extensions to
59 * improve integration of tput and tset
60 * provide support for extended numeric capabilities.
62 There are, of course, numerous other improvements, listed in this
65 The release notes also mention some bug-fixes, but are focused on new
66 features and improvements to existing features since ncurses 6.0
73 The improved integration of tput and tset made only small changes to
74 the libraries. However, supporting extended numeric capabilities
75 required a few changes:
76 * The TERMINAL structure in <term.h> is now opaque. Doing that
77 allowed making the structure larger, to hold the extended numeric
79 A few applications required changes during development of
80 ncurses 6.1 because those applications misused the members of that
81 structure, e.g., directly modifying it rather than using
83 * Having made TERMINAL opaque (and because none of the library
84 functions use anything except a pointer to TERMINAL), it was
85 possible to increase the size of the structure, adding to the end.
86 Existing applications which were linked to the ncurses 6.0
87 high-level (ncurses, ncursesw) and low-level (tinfo, tinfo)
88 libraries should not require re-linking since the binary interface
89 did not change, nor did the structure offsets with TERMINAL
91 A few applications use the inner TERMTYPE structure's offsets to
92 refer to terminfo capabilities within that structure. Again, those
93 do not require modification because their offsets within TERMINAL
95 * When configured for wide-characters, i.e., "ncursesw" the TERMINAL
96 structure is extended.
97 The new data in TERMINAL holds the same information as TERMTYPE,
98 but with larger numbers ("int" versus "short"). It is named
100 The library uses this structure internally in preference to
101 TERMTYPE, referring to TERMTYPE only to initialize it for
102 applications that use the capabilities defined in <term.h>
103 * When configured for 8-bit (narrow) characters, the TERMTYPE2
104 structure is not used.
105 * The updated application binary interface is 6.1.20171230 (used for
106 new [14]versioned symbols), although the interface changes were
107 developed several months previously.
109 The motivation for making this extension came from noticing that
110 [15]termcap applications could (though not [16]realistically) use
111 larger numbers than would fit in 16-bits, and the fact that the number
112 of color pairs for a 256-color xterm could not be expressed in
113 terminfo (i.e., 32767 versus 65536). Also, a few terminals support
114 direct-colors, which could use the extension.
116 Generally speaking, applications that use internal details of a
117 library are unsupported. There was exactly one exception for ncurses:
118 the tack program used the internal details of TERMINAL, because it
119 provides an ncurses-specific feature for interactively modifying a
120 terminfo description and writing the updated description to a
121 text-file. It was possible to not only separate tack from these
122 [17]internal details of ncurses, but to generalize it so that the
123 program works with Unix curses (omitting the ncurses-specific
124 feature). That was released as [18]tack 1.08 in July 2017.
126 While making changes to tack to eliminate its dependency upon ncurses
127 internals, the publicly-visible details of those internals were
128 reviewed, and some symbols were moved to private header files, while
129 others were marked explicitly as ncurses internals. Future releases of
130 ncurses may eliminate some of those symbols (such as those used by
131 tack 1.07) because they are neither part of the API or the ABI.
133 Using the TERMTYPE2 extended numeric capabilities, it is possible to
134 support both color pair values and color values past 32767. Taking
135 compatibility into account, developers readily understand that neither
136 function signatures nor structure offsets change. Also, existing
137 functions have to operate with the extended numbers. Most of that work
138 is internal to the library. For the external interfaces, a hybrid
140 * X/Open Curses defined function prototypes such as wattr_set with
141 an unused parameter, for "future" use. After 25 years, the future
142 is here: ncurses uses the parameter to augment color pair values
143 as described in the [19]manual page.
144 * Other functions such as those defining color pairs did not have a
145 corresponding reserved parameter. For those, ncurses defines
146 extended versions such as init_extended_pair (versus init_pair),
147 init_extended_color (versus init_color).
149 Additionally, to improve performance other changes (and extensions)
150 are provided in this release:
151 * Several new functions simplify management of large sets of color
152 pairs: reset_color_pairs, alloc_pair, find_pair and free_pair.
153 * New "RGB" extension capability for direct-color support is used to
154 improve performance of color_content.
155 * The internal colorpair_t is now a struct, eliminating an internal
156 8-bit limit on colors
157 * Allocation for SCREEN's color-pair table starts small, grows on
158 demand up to the limit given in the terminal description.
159 * setcchar and getcchar now treat a negative color-pair as an error.
163 These are new or revised features:
164 * modify c++/etip.h.in to accommodate deprecation of throw and
166 * add new function unfocus_current_field
167 * add option to preserve leading whitespace in form fields
168 * add a macro for is_linetouched and adjust the function's return
169 value to make it possible for most applications to check for an
171 * add build-time utility report_offsets to help show when the
172 various configurations of tinfo library are compatible or not.
174 These were done to limit or ultimately deprecate features:
175 * drop two symbols obsoleted in 2004: _nc_check_termtype, and
177 * move _nc_tracebits, _tracedump and _tracemouse to curses.priv.h,
178 since they are not part of the suggested ABI6.
179 * mark some structs in form/menu/panel libraries as potentially
180 opaque without modifying API/ABI.
181 * ifdef'd header-file definition of mouse_trafo with
183 * remove initialization-check for calling napms in the term-driver
184 configuration; none is needed.
185 * modify trace to avoid overwriting existing file
187 These are improvements to existing features:
188 * modify make_hash to allow building with address-sanitizer,
189 assuming that --disable-leaks is configured.
190 * move SCREEN field for use_tioctl data before the ncursesw fields,
191 and limit that to the sp-funcs configuration to improve termlib
193 * modify db-iterator:
194 + ignore zero-length files in db-iterator; these are useful for
195 instance to suppress $HOME/.terminfo when not wanted.
196 + modify update_getenv to ensure that environment variables
197 which are not initially set will be checked later if an
198 application happens to set them
199 * modify _nc_outc_wrapper to use the standard output if the screen
200 was not initialized, rather than returning an error.
201 * improve checks for low-level terminfo functions when the terminal
202 has not been initialized.
203 * modify set_curterm to update ttytype[] data used by longname/p>
204 * modify _nc_get_screensize to allow for use_env and use_tioctl
205 state to be per-screen when sp-funcs are configured, better
206 matching the behavior when using the term-driver configuration.
207 * remove an early-return from _nc_do_color, which can interfere with
208 data needed by bkgd when ncurses is configured with extended
210 * incorporate A_COLOR mask into COLOR_PAIR, in case user application
211 provides an out-of-range pair number
212 * modify logic for endwin-state to be able to detect the case where
213 the screen was never initialized, using that to trigger a flush of
214 ncurses' buffer for mvcur, e.g., in the sample program dots_mvcur
215 for the term-driver configuration.
217 These are corrections to existing features:
218 * fixes for writing extended color pairs in putwin.
219 * modify no-leaks code for lib_cur_term.c to account for the tgetent
221 * amend handling of the repeat_char capability in EmitRange to avoid
222 scope creep: translate the character to the alternate character
223 set when the alternate character set is enabled, and do not use
224 repeat_char for characters past 255.
225 * improve wide-character implementation of myADDNSTR in
226 frm_driver.c, which was inconsistent with the normal
228 * modify winnstr and winchnstr to return error if the output pointer
229 is null, as well as adding a null pointer check of the window
230 pointer for better compatibility with other implementations.
231 * modify setupterm to save original tty-modes so that erasechar
232 works as expected. Also modify _nc_setupscreen to avoid redundant
233 calls to get original tty-modes.
234 * modify wattr_set and wattr_get to return ERR if win-parameter is
236 * correct order of initialization for traces in use_env and
237 use_tioctl versus first _tracef calls.
238 * correct parameters for copywin call in _nc_Synchronize_Attributes
239 * flush the standard output in _nc_flush for the case where SP is
240 zero, e.g., when called via putp. This fixes a scenario where
241 "tput flash" did not work after changes in 20130112.
242 * amend internal use of tputs to consistently use the number of
243 lines affected, e.g., for insert/delete character operations.
244 While merging terminfo source early in 1995, several descriptions
245 used the "*" proportional delay for these operations, prompting a
247 * correct return-value of extended putwin.
248 * double-width multibyte characters were not counted properly in
249 winsnstr and wins_nwstr.
250 * amend fix for _nc_ripoffline from 20091031 to make test/ditto.c
251 work in threaded configuration.
252 * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as
253 a whole rather than their multibyte equivalents.
254 * minor fix in wadd_wchnstr to ensure that each cell has nonzero
256 * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of
257 error status when processing Unicode values which are not mapped.
258 * add missing assignment in lib_getch.c to make notimeout work
262 While reviewing user feedback, it became apparent that the differences
263 between [20]reset (an alias for tset) and "tput reset" were confusing:
264 * one ([21]tset) updated the terminal modes, but used only part of
265 the terminfo capabilities for initialization, while
266 * the other ([22]tput) used all of the terminal capabilities while
267 neglecting the terminal modes.
269 On further investigation, it turned out that the differences were
270 largely an accident due to the way those programs had evolved.
272 This release eliminates the unnecessary differences, using the same
273 approach for tput's init (initialization), reset and clear operations
274 as the separate [23]reset and [24]clear programs. Doing this does not
275 change the command-line options; existing scripts are unaffected.
277 These are the user-visible changes for the three programs (tput, tset
279 * add the terminal-mode parts of "reset" (aka tset) to the "tput
280 reset" command, making the two almost the same except for
282 * improve tput's check for being called as "init" or "reset" to
283 allow for transformed names.
284 * add "clear" as a possible link/alias to tput.
285 * amend changes for tput to reset tty modes to "sane" if the program
286 is run as "reset", like tset. Likewise, ensure that tset sends
287 either reset- or init-strings.
288 * add -x option to clear/tput to make the E3 extension optional
289 * add functionality of "tset -w" to tput, like the "-c" feature this
290 is not optional in tput.
291 * add options -T and -V to clear command for compatibility with
293 * drop long-obsolete "-n" option from tset.
294 * modify tset's assignment to TERM in its output to reflect the name
295 by which the terminal description is found, rather than the
296 primary name. That was an unnecessary part from the initial
297 conversion of tset from termcap to terminfo. The termcap library
298 in 4.3BSD did this to avoid using the short 2-character name
299 * remove a restriction in tput's support for termcap names which
300 omitted capabilities normally not shown in termcap translations
301 * add usage message to clear command
302 * improve usage messages for tset and tput.
304 Other user-visible improvements and new features include:
305 * modify tic/infocmp display of numeric values to use hexadecimal
306 when they are "close" to a power of two, making the result more
308 * add "-W" option to tic/infocmp to force long strings to wrap.
309 + This is in addition to the "-w" option which attempts to fit
310 capabilities into a given line-length.
311 + If "-f" option splits line, do not further split it with
313 + Begin a new line when adding "use=" after a wrapped line.
314 * add "-q" option to infocmp to suppress the "Reconstructed from"
315 comment from the header, and a corresponding option to tic to
316 suppress all comments from the "tic -I" output.
317 * Sorted options in usage message for infocmp, to make it simpler to
319 * Updated usage message for tic, adding "-0" option.
320 * add infocmp/tic "-Q" option, which allows one to dump the compiled
321 form of the terminal entry, in hexadecimal or base64:
322 + A "b64:" prefix in the TERMINFO variable tells the terminfo
323 reader to use base64 according to RFC-3548 as well as
324 RFC-4648 url/filename-safe format.
325 + A "hex:" prefix tells the terminfo reader to accept
326 hexadecimal data as generated by "infocmp -0qQ1".
328 Other less-visible improvements and new features include:
329 * modify utility headers such as tic.h to make it clearer which are
330 externals that are used by tack.
331 * add "reset" to list of programs whose names might change in
332 manpages due to program-transformation configure options.
333 * modify "-T" option of clear and tput to call use_tioctl to obtain
334 the operating system's notion of the screensize if possible.
335 * add check in tput for init/reset operands to ensure those use a
337 * modify programs clear, tabs, tput and tset to pass the actual tty
338 file descriptor to setupterm rather than the standard output or
339 error, making padding work.
340 * change tset's initialization to allow it to get settings from the
341 standard input as well as /dev/tty, to be more effective when
342 output or error are redirected.
343 * amend check in tput, tabs and clear to allow those to use the
344 database-only features in cron if a "-T" option gives a suitable
346 * improve error message from tset/reset when both stderr/stdout are
347 redirected to a file or pipe.
349 Several of the less apparent features deal with translation of
350 terminfo to termcap (and the reverse), with corresponding checks by
352 * modify check in fmt_entry to handle a cancelled reset string. Make
353 similar fixes in other parts of dump_entry.c and tput.c
354 * correct read of terminfo entry in which all strings are absent or
355 explicitly cancelled. Before this fix, the result was that all
356 were treated as only absent.
357 * modify infocmp to suppress mixture of absent/cancelled
358 capabilities that would only show as "NULL, NULL", unless the "-q"
359 option is used, e.g., to show "-, @" or "@, -".
360 * correct a warning from tic about keys which are the same, to skip
361 over missing/cancelled values.
362 * add check in tic for use of bold, etc., video attributes in the
363 color capabilities, accounting whether the feature is listed in
365 * add check in tic for unnecessary use of "2" to denote a shifted
367 * improve check in tic for delays by also warning about beep/flash
368 when a delay is not embedded, or if those use the VT100 reverse
369 video escape without using a delay.
370 * improve checks in trim_sgr0, comp_parse.c and parse_entry.c, for
371 cancelled string capabilities.
372 * add check in tic for some syntax errors of delays, as well as use
373 of proportional delays for non-line capabilities.
374 * add check in tic for conflict between ritm, rmso, rmul versus
376 * add check in _nc_parse_entry for invalid entry name, setting the
377 name to "invalid" to avoid problems storing entries.
378 * improve _nc_tparm_analyze, using that to extend the checks made by
379 tic for reporting inconsistencies between the expected number of
380 parameters for a capability and the actual.
381 * remove tic warning about "^?" in string capabilities, which was
382 marked as an extension; however all Unix implementations support
383 this and X/Open Curses does not address it. On the other hand,
384 [25]BSD termcap did not support this feature (until the
386 in _nc_infotocap, added a check to ensure that terminfo "^?" is
387 not written to termcap.
388 * modify sscanf calls in _nc_infotocap for patterns "%{number}%+%c"
389 and "%'char'%+%c" to check that the final character is really "c",
390 avoiding a case in icl6404 which cannot be converted to termcap.
391 * in _nc_tic_expand and _nc_infotocap, improved string-length check
392 when deciding whether to use "^X" or "\xxx" format for control
393 characters, to make the output of tic/infocmp more predictable.
394 * limited termcap "%d" width to 2 digits on input, and use "%2" in
395 preference to "%02" on output.
396 * correct terminfo/termcap conversion of "%02" and "%03" into "%2"
397 and "%3"; the result repeated the last character.
401 Along with the library and utilities, many improvements were made to
402 the [27]ncurses-examples.
404 These changes were made to demonstrate new extensions in ncurses:
405 * add demo_new_pair program, to demonstrate [28]alloc_pair,
406 [29]find_pair and [30]free_pair functions.
407 This program iterates over the possible color combinations,
408 allocating or initializing color pairs. For best results, choose
409 screen-width dividing evenly into the number of colors. e.g.,
411 32x64,32x128 256 colors
412 24x44,24x88 88 colors
413 32x64,24x128 16 colors
415 * add extended_color program, like the older color_set program, but
416 using the extended color functions, with and without the
417 SP-functions interface.
418 * add picsmap program to fill in some testing issues not met by
419 dots, using this as the third example in a comparison of the
420 [31]ncurses versus slang libraries.
421 The program can directly read X bitmap and pixmap files,
422 displaying a picture. It can read other image files using
423 ImageMagick's convert program to translate the image into text.
424 For 16-, 88- and 256-color terminal descriptions, picsmap can load
425 a palette file which tells it which color palette entries to use.
426 For direct-colors, the terminal descriptions use the RGB extension
429 There are other new example programs and a few scripts:
430 * add dots_xcurses program to illustrate a different approach used
431 for extended colors which can be contrasted with dots_curses.
432 * add list_keys program show function keys for one or more terminal
433 descriptions. It uses ncurses's convention of modifiers for
434 special keys, based on xterm.
435 * add padview program, to compare pads with direct updates in the
437 * add sp_tinfo program to exercise the SP-functions extension of the
438 low-level terminfo library.
439 * add test-programs for termattrs and term_attrs functions.
440 * add test_sgr program to exercise all combinations of the sgr
442 * add tput-colorcube demo script, imitating xterm's 88- and
443 256-color scripts using tput.
444 * add tput-initc script to demonstrate how tput may be used to
445 initialize a color palette from a data file.
447 A variety of improvements were made to existing programs, both new
448 features as well as options added to make the set of programs more
451 The ncurses program is the largest; a proportionately large number of
452 changes were made to it:
453 * modify a/A screens to make exiting on an escape character depend
454 on the start of keypad and timeout modes, to allow better testing
456 add "t" toggle for notimeout function.
457 * modify layout of b/B screens to allow for additional annotation on
458 the right margin; some terminals with partial support did not
460 * modify c/C screens to allow for extended color pairs.
461 add z/Z zoom feature to make extended color pairs easier to test.
462 modify test-screens to take advantage of wide screens, reducing
463 the number of lines used for 88- and 256-colors.
464 * modify "d" edit-color screen to optionally read xterm color
465 palette directly from terminal, as well as handling KEY_RESIZE and
466 screen-repainting with control/L and control/R.
467 * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS.
468 * improve "g" screen, correcting ifdef which made the legend not
469 reflect changes to keypad- and scroll-modes. Added check for
470 return-value of putwin.
471 * make "s" test easier to understand which subtests are available
472 add a corresponding "S" wide-character overlap test-screen.
473 * add "v" screen to show baudrate and other values.
475 These changes were made to the other examples:
476 * modify blue program to use Unicode values for card-glyphs when
477 available, as well as improving the check for CP437 and CP850.
478 * improve demo_menus program, allowing mouse-click on the
479 menu-headers to switch the active menu. This requires a new
480 extension option O_MOUSE_MENU to tell the menu driver to put mouse
481 events which do not apply to the active menu back into the queue
482 so that the application can handle the event.
483 * correct logic in demo_terminfo program for "-f" option
484 * modify ditto program to allow $XTERM_PROG environment variable to
485 override "xterm" as the name of the program to run in the threaded
487 * add several options to the "dots" test-programs.
488 * modify filter program:
489 + illustrate an alternative to getnstr, that polls for input
490 while updating a clock on the right margin as well as
491 responding to window size-changes.
492 + adapt logic used in [32]dialog [33]"--keep-tite" option for
493 filter program as the "-a" option. When set, filter attempts
494 to suppress the alternate screen.
495 * modify knight program to provide the "slow" solution for small
496 screens using "R", noting that Warnsdorf's method is easily done
498 * modify the savescreen program to add test patterns that exercise
499 88-, 256-, etc., colors.
500 * add options to test_arrays, for selecting termcap vs terminfo,
502 * modify the view program:
503 + expand tabs using the ncurses library rather than in the
505 + eliminate the "-n" option by simply reading the whole file.
506 + implement page up/down commands.
507 + remove the very old SIGWINCH example; just use KEY_RESIZE.
508 * improve animation in xmas program by adding a time-delay in
510 * modify several test-programs which call use_default_colors to
511 consistently do this only if the "-d" option is given.
512 * modify the install-rule for ncurses-examples to put the data files
513 in the data directory, e.g., /usr/share/ncurses-examples.
514 * modify several test programs to use new popup_msgs function,
515 adapted from the help-screen used in the edit_field program.
516 * modify test data for xterm palettes to use the newer
517 color4/color12 values.
518 * improve the tracemunch script:
519 + show screenXX pointers and thread identifiers as names.
520 + chang address-parameters of add_wch, color_content and
521 pair_content to dummy parameters.
525 There are several new terminal descriptions:
527 dumb-emacs-ansi, dvtm, dvtm-256color, fbterm, iterm2, linux-m1
528 minitel entries, putty-noapp, viewdata, and vt100+4bsd
531 xterm+noalt, xterm+titlestack, xterm+alt1049, xterm+alt+title
532 building blocks and xterm+direct, xterm+indirect, xterm-direct.
533 from [34]xterm patch #331.
535 several other "-direct" descriptions to address the differences of
536 other terminal emulators versus xterm-direct.
538 There are many changes to existing terminal descriptions. Some were
539 updates to several descriptions:
540 * use xterm+sm+1006 in several terminal descriptions which were
541 validated as supporting the extended mouse feature for their
542 respective terminal emulators.
543 * corrected sgr/sgr0 strings in a few cases reported by tic, making
544 those correspond to the non-sgr settings where they differ, but
545 otherwise use ECMA-48 consistently.
546 * add 0.1sec mandatory delay to flash capabilities using the VT100
547 reverse-video control
549 while others affected specific descriptions. These were retested, to
550 take into account new/undocumented changes by their developers:
552 iterm, minitel, st, viewdata, nsterm
554 while these are specific fixes based on user reports, or warnings from
557 [35]ansi building blocks
559 + restored rmir/smir in ansi+idc to better match original
560 ansiterm+idc, add alias ansiterm
564 + corrected missing comma-separator between string capabilities
565 in icl6402 and m2-nam
569 + updated using tack and SFU with Windows 7 Ultimate.
574 + made linux3.0 entry the default linux entry
575 + modify linux2.6 entry to improve line-drawing so that the
576 linux3.0 entry can be used in non-UTF-8 mode
577 + omitted selection of ISO-8859-1 for G0 in enacs capability
578 from linux2.6 entry, to avoid conflict with the user-defined
579 mapping. The reset feature uses ISO-8859-1 in any case.
580 + modify flash capability for linux and wyse entries to put the
581 delay between the reverse/normal escapes rather than after
582 + modify linux-16color to not mask dim, standout or reverse
583 with the ncv capability
587 + fixed some inconsistencies in the pccon* entries
588 + add bold to pccon+sgr+acs and pccon-base
589 + add keys f12-f124 to pccon+keys
593 + corrected sgr string, which used screen's "standout" code
594 rather than the standard code.
595 + add settings corresponding to xterm-keys option to reflect
596 upcoming change to make that option "on" by default
601 + modify vt100 rs2 string to reset vt52 mode and scrolling
603 + corrected rs2 string for vt100-nam
604 + made minor fixes for vt100+4bsd, e.g., delay in sgr for
609 + moved SGR 24 and 27 from vte-2014 to vte-2012
610 + add a few capabilities fixed in recent VTE development
614 + add rep to xterm-new, available since [44]late 1996.
615 + modify xterm+256color and xterm+256setaf to use correct
616 number of color pairs.
617 + modify rs1 for xterm-16color, xterm-88color and
618 xterm-256color to reset palette using oc string as in linux
620 + add rs1 capability to xterm-256color
621 + add oc capability to xterm+256color, allowing palette reset
623 + add op to xterm+256setaf
624 + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs
625 to match [45]xterm #272, reflecting packager's changes
626 + used ANSI reply for u8 in xterm-new, to reflect vt220-style
627 responses that could be returned.
628 + made xterm-pcolor sgr consistent with other capabilities
630 A few entries use extensions (user-defined terminal capabilities):
631 * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic
632 * used RGB capability in new *-direct entries to denote direct-color
637 As usual, this release
638 * improves documentation by describing new features,
639 * attempts to improve the description of features which users have
641 * fills in overlooked descriptions of features which were described
642 in the [46]NEWS file but treated sketchily in manual pages.
645 * Since the underlying features for [47]tset, [48]tput, and
646 [49]clear have been better integrated, the documentation now
647 includes information on how those tools evolved.
648 In addition to explaining the improved integration of the tools,
649 the manual pages made it easier to see how the tools are similar
650 and how they are different.
651 * The addch manual page has additional information on
652 [50]portability and differences from other implementations.
653 * The discussion of color-pairs in the attributes manual page is
654 improved in its [51]history section.
655 * The documentation of the chtype, cchar_t types and the attribute
656 values which can be stored in those types, in particular the
657 [52]history and [53]portability sections of the attributes manual
658 page, has been improved.
659 * improve discussion of [54]portability in the mouse manual.
660 * The pad manual page has a section on the [55]origin and
662 * Differences between SVr4 and X/Open Curses soft-keys are discussed
663 in a new section on [56]portability.
664 * There are updated/improved notes on portability in the
665 [57]resizeterm and [58]wresize manual pages.
667 In addition to providing background information to explain these
668 features and show how they evolved, there are corrections,
669 clarifications, etc.:
670 * add note in the [59]addch manual about line-drawing when it
672 * improve discussion of line-drawing characters in the [60]add_wch
674 * explain in [61]clear's manual page that it writes to the standard
676 * improve description of [62]endwin.
677 * improve discussion of field validation in the [63]form driver
679 * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page.
680 * clarify in the [65]getch manual that the keypad mode affects an
681 application's ability to read KEY_MOUSE codes, but does not affect
683 trim some obsolete/incorrect wording about EINTR from the getch
685 improve manual pages for [66]getch and [67]get_wch to point out
686 that they might return user-defined values which have no
687 predefined names in <curses.h>
688 * improve description of the -R option in the [68]infocmp manual
690 * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed
691 onto the input stream.
692 * document return value of [70]use_extended_names
693 * document differences in [71]ESCDELAY versus AIX's implementation
694 in the variables manual page.
695 * The _nc_free_tinfo function is now documented in the
696 [72]memory-leaks manual page, because it could be used in tack for
697 memory-leak checking.
698 * add a note to the [73]tic manual page about -W versus -f options.
699 * improve terminfo manual description of [74]terminfo syntax.
700 improve terminfo manual page discussion of [75]control- and
701 graphics- characters.
702 improve [76]color-handling section in terminfo manual page
703 * clarify description in [77]tput manual page regarding support for
705 update [78]tput manual page to reflect changes to manipulate
706 terminal modes by sharing functions with tset.
707 * clarify in manual pages that the optional verbose option level of
708 [79]tic and [80]infocmp is available only when ncurses is
709 configured for tracing.
710 * improve manual page description of [81]tset/reset versus
712 * improve description of [82]tgoto parameters
714 There are new manual pages:
715 * [83]user_caps documents the terminfo extensions used by ncurses.
716 * [84]scr_dump documents the screen-dump format.
718 Some of the improvements are more subtle, relating to the way the
719 information is presented:
720 * Made minor fixes to manpage NAME/SYNOPSIS sections to consistently
721 use rule that either all functions which are prototyped in
722 SYNOPSIS are listed in the NAME section, or the manual-page name
723 is the sole item listed in the NAME section. The latter is used to
724 reduce clutter, e.g., for the top-level library manual pages as
725 well as for certain feature-pages such as [85]SP-funcs and
727 * improve manual pages for utilities with respect to POSIX versus
729 * improve organization of the [87]attributes and [88]color manual
732 Interesting bug-fixes
734 * modify toe to not exit if unable to read a terminal description,
735 e.g., if there is a permission problem.
736 * correct 20100515 change for weak signals versus sigprocmask
737 * work around Ada tool-breakage in Debian 9 and later by invoking
738 gprconfig to specify the C compiler to be used by gnatmake, and
739 conditionally suppressing Library_Options line for static
741 * There were, as well, several bug-fixes to handle illegal input for
742 tic. Because those did not correspond to useful terminal
743 descriptions, most users are unaffected.
745 Configuration changes
749 This release provides a new binary format for terminal descriptions
750 that use extended numeric capabilities. Applications built with the
751 wide-character ncursesw library can use these extended numbers.
752 * This includes utilities such as tic and infocmp, because (as noted
753 in [89]New features), the feature relies upon an extension to the
754 low-level tinfo library.
755 * A few software packagers use a configuration option of ncurses
756 which allows the low-level tinfo library to be shared between the
757 high-level ncurses and ncursesw libraries. This new feature was
758 designed to work in that configuration as well.
760 Other applications (i.e., using the 8-bit ncurses library) which read
761 the extended terminal descriptions see those numeric capabilities set
762 to the maximum value for a signed 16-bit number.
764 Older versions of ncurses' tic accept out-of-range numeric
765 capabilities, storing those as the maximum value for a signed 16-bit
766 number. Other implementations of curses (mentioned in the discussion
767 of [90]picsmap) give zero for these out-of-range capabilities.
769 Configuration options
771 These changes provide support for tack 1.08, released in [91]July
773 * add --without-tack configure option to refine --with-progs
774 configure option. Normally tack is built outside the ncurses tree,
775 but a few packagers combine it during the build. If term_entry.h
776 is installed, there is no advantage to in-tree builds.
777 * adjust configure-script to define HAVE_CURSES_DATA_BOOLNAMES
778 symbol needed for tack 1.08 when built in-tree. Rather than
779 relying upon internal "_nc_" functions, tack now uses the boolean,
780 number and string capability name-arrays provided by ncurses and
781 SVr4 Unix curses. It still uses term_entry.h for the definitions
782 of the extended capability arrays.
783 * add dependency upon ncurses_cfg.h to tic's header-files; any
784 program using tic-library will have to supply this file. Legacy
785 tack versions supply this file; ongoing tack development has
786 dropped the dependency upon tic-library and new releases will not
789 Other changes to the configure-script and generated files include
790 * add configure options to disable checks for form, menu and panel
791 libraries so that ncurses-examples can be built with non-SVr4
792 curses implementations.
793 * add configure option --enable-opaque-curses for ncurses library
794 and similar options for the other libraries.
795 * add configure option --disable-wattr-macros for use in cases where
796 one wants to use the same headers for ncurses5/ncurses6
797 development, by suppressing the wattr* macros which differ due to
798 the introduction of extended colors
799 * modify configure macro for shared-library rules to use -Wl,-rpath
800 rather than -rpath to work around a bug in scons
801 * improve ncurses-examples' configure script to define as needed
802 NCURSES_WIDECHAR for platforms where _XOPEN_SOURCE_EXTENDED does
803 not work. Also modified the test program to ensure that if
804 building with ncurses, that the cchar_t type is checked, since
805 that is normally (since [92]20111030) ifdef'd depending on this
807 * modify configure script to handle the case where tic-library is
808 renamed, but the --with-debug option is used by itself without
809 normal or shared libraries
810 * modify editing script which generates resulting.map to work with
811 the clang configuration on recent FreeBSD, which gives an error on
812 an empty "local" section.
813 * improve configure check for setting the WILDCARD_SYMS variable; on
814 ppc64 the variable is in the Data section rather than Text.
815 * correct result of configure option --without-fallbacks, which
816 caused FALLBACK_LIST to be set to "no"
817 * modify --with-pkg-config-libdir option to make it possible to
818 install ".pc" files even if pkg-config is not found. Limit this
819 change, to suppress the actual install if it is not overridden to
820 a valid directory at install time.
821 * disallow "no" as a possible value for --with-shlib-version option,
822 overlooked in cleanup-changes for [93]20000708.
826 Many of the portability changes are implemented via the configure
828 * improve configure script's CF_CC_ENV_FLAGS macro to allow for
829 compiler wrappers such as ccache. This change moves only the
830 preprocessor, optimization and warning flags to CPPFLAGS and
831 CFLAGS, leaving the residue in CC. That happens to work for gcc's
832 various "model" options, but may require tuning for other
834 * modify ncurses-examples' configure script to use pkg-config for
835 the extra form/menu/panel libraries, to be more consistent with
836 the handling of the curses/ncurses library.
837 * add configuration checks to build with [94]NetBSD curses, which
838 for example lacks [95]use_env.
839 * change ncurses-examples to use attr_t vs chtype to follow X/Open
840 documentation more closely since Solaris xpg4-curses uses
841 different values for WA_xxx vs A_xxx that rely on attr_t being an
842 unsigned short. Tru64 aka OSF1, HPUX, AIX did as ncurses does,
843 equating the two sets.
844 * modify several test programs to reflect that ncurses honors
845 existing signal handlers in initscr, while other implementations
847 * add configure check for openpty to ncurses-examples' configure
849 * improve check for working poll function by using posix_openpt as a
850 fallback in case there is no valid terminal on the standard input
851 * modify ncurses-examples' configure script to check for pthread
852 dependency of ncursest or ncursestw library when building the
853 ncurses examples, e.g., in case weak symbols are used.
854 * add checks in ncurses-examples' configure script for some
855 functions neither in 4.3BSD curses, nor based on X/Open Curses:
856 + modify a loop limit in firework.c to work around absense of
857 limit checks in some libraries.
858 + fill the last row of a window with "?" in firstlast if waddch
859 does not return ERR on the lower-right corner.
860 * build-fixes for the Portland Group (PGI) compilers
861 + accept whitespace in sed expression for generating expanded.c
862 + modify configure check that g++ compiler warnings are not
864 + add configure check for -fPIC option needed for shared
866 * modify configure script for clang as used on FreeBSD, to work
867 around clang's differences in exit codes vs gcc.
868 * fixes for configure/build using clang on OSX
869 + do not redefine "inline" in ncurses_cfg.h; this was
870 originally to solve a problem with gcc/g++, but is aggravated
871 by clang's misuse of symbols to pretend it is gcc.
872 + add braces to configure script to prevent unwanted addition
873 of "-lstdc++" option to the CXXLIBS symbol.
874 + improve/update test-program used for checking existence of
876 + if $CXXLIBS is set, the linkage test uses that in addition to
879 + use button instead of kbuf[0] in EMX-specific part of
881 + support building with libtool on OS/2
882 + use stdc++ library with OS/2 kLIBC
883 + clear configure script's cf_XOPEN_SOURCE for OS/2, to work
884 with its header files
885 * add "newer" baudrate symbols to the [96]baudrate function in the
886 ncurses library as well as to a corresponding table in tset.
887 * modify ncurses-examples savescreen to work with AIX and HPUX.
888 * define WIN32_LEAN_AND_MEAN for MinGW port, making builds faster.
889 * add a configure check for wcwidth versus the ncurses line-drawing
890 characters, to use in special-casing systems such as Solaris.
891 Solaris, however, requires a special case that maps Unicode
892 line-drawing characters into the acsc string for non-Unicode
893 locales. Solaris also has a misconfigured wcwidth which marks all
894 of the line drawing characters as double-width.
895 * string-hacks (non-standard):
896 + fix configure script to record when strlcat is found on
898 + add --enable-string-hacks option to ncurses-examples'
900 + completed string-hacks for sprintf, etc., including the
901 ncurses-examples programs.
902 + make --enable-string-hacks option work with Debian by
903 checking for the "bsd" library and its associated
904 "<bsd/string.h>" header.
905 * workaround for Debian's antique/unmaintained version of mawk:
906 + see Debian #65617, which was fixed in mawk's upstream
907 releases in [97]2009.
908 + related fixes when building link_test.
909 _________________________________________________________________
913 The ncurses package is fully upward-compatible with SVr4 (System V
915 * All of the SVr4 calls have been implemented (and are documented).
916 * ncurses supports all of the for SVr4 curses features including
917 keyboard mapping, color, forms-drawing with ACS characters, and
918 automatic recognition of keypad and function keys.
919 * ncurses provides these SVr4 add-on libraries (not part of X/Open
921 + the panels library, supporting a stack of windows with
923 + the menus library, supporting a uniform but flexible
924 interface for menu programming.
925 + the form library, supporting data collection through
927 * ncurses's terminal database is fully compatible with that used by
929 + ncurses supports user-defined capabilities which it can see,
930 but which are hidden from SVr4 curses applications using the
931 same terminal database.
932 + It can be optionally configured to match the format used in
933 related systems such as AIX and Tru64.
934 + Alternatively, ncurses can be configured to use hashed
935 databases rather than the directory of files used by SVr4
937 * The ncurses utilities have options to allow you to filter terminfo
938 entries for use with less capable curses/terminfo versions such as
939 the HP/UX and AIX ports.
941 The ncurses package also has many useful extensions over SVr4:
942 * The API is 8-bit clean and base-level conformant with the X/OPEN
943 curses specification, XSI curses (that is, it implements all BASE
944 level features, and most EXTENDED features). It includes many
945 function calls not supported under SVr4 curses (but portability of
946 all calls is documented so you can use the SVr4 subset only).
947 * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
948 corner of the screen if your terminal has an insert-character
950 * Ada95 and C++ bindings.
951 * Support for mouse event reporting with X Window xterm and FreeBSD
952 and OS/2 console windows.
953 * Extended mouse support via Alessandro Rubini's gpm package.
954 * The function wresize allows you to resize windows, preserving
956 * The function use_default_colors allows you to use the terminal's
957 default colors for the default color pair, achieving the effect of
959 * The functions keyok and define_key allow you to better control the
960 use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
961 defining more than one control sequence to map to a given key
963 * Support for 256-color terminals, such as modern xterm.
964 * Support for 16-color terminals, such as aixterm and modern xterm.
965 * Better cursor-movement optimization. The package now features a
966 cursor-local-movement computation more efficient than either BSD's
968 * Super hardware scrolling support. The screen-update code
969 incorporates a novel, simple, and cheap algorithm that enables it
970 to make optimal use of hardware scrolling, line-insertion, and
971 line-deletion for screen-line movements. This algorithm is more
972 powerful than the 4.4BSD curses quickch routine.
973 * Real support for terminals with the magic-cookie glitch. The
974 screen-update code will refrain from drawing a highlight if the
975 magic- cookie unattributed spaces required just before the
976 beginning and after the end would step on a non-space character.
977 It will automatically shift highlight boundaries when doing so
978 would make it possible to draw the highlight without changing the
979 visual appearance of the screen.
980 * It is possible to generate the library with a list of pre-loaded
981 fallback entries linked to it so that it can serve those terminal
982 types even when no terminfo tree or termcap file is accessible
983 (this may be useful for support of screen-oriented programs that
984 must run in single-user mode).
985 * The [98]tic/[99]captoinfo utility provided with ncurses has the
986 ability to translate many termcaps from the XENIX, IBM and AT&T
988 * A BSD-like [100]tset utility is provided.
989 * The ncurses library and utilities will automatically read terminfo
990 entries from $HOME/.terminfo if it exists, and compile to that
991 directory if it exists and the user has no write access to the
992 system directory. This feature makes it easier for users to have
993 personal terminfo entries without giving up access to the system
995 * You may specify a path of directories to search for compiled
996 descriptions with the environment variable TERMINFO_DIRS (this
997 generalizes the feature provided by TERMINFO under stock System
999 * In terminfo source files, use capabilities may refer not just to
1000 other entries in the same source file (as in System V) but also to
1001 compiled entries in either the system terminfo directory or the
1002 user's $HOME/.terminfo directory.
1003 * The table-of-entries utility [101]toe makes it easy for users to
1004 see exactly what terminal types are available on the system.
1005 * The library meets the XSI requirement that every macro entry point
1006 have a corresponding function which may be linked (and will be
1007 prototype-checked) if the macro definition is disabled with
1009 * Extensive documentation is provided (see the [102]Additional
1010 Reading section of the [103]ncurses FAQ for online documentation).
1012 Applications using ncurses
1014 The ncurses distribution includes a selection of test programs
1015 (including a few games). These are available separately as
1016 [104]ncurses-examples
1018 The ncurses library has been tested with a wide variety of
1019 applications including:
1022 FrontEnd to Apt, the debian package manager
1024 [105]https://wiki.debian.org/Aptitude
1027 Curses Development Kit
1029 [106]https://invisible-island.net/cdk/
1034 [107]https://invisible-island.net/ded/
1037 the underlying application used in Slackware's setup, and the
1038 basis for similar install/configure applications on many
1041 [108]https://invisible-island.net/dialog/
1044 the text WWW browser
1046 [109]https://lynx.invisible-island.net/
1051 [110]http://www.mutt.org/
1054 file-transfer utility
1056 [111]https://www.ncftp.com/
1059 New vi uses ncurses.
1061 [112]https://sites.google.com/a/bostic.com/keithbostic/vi
1064 A console file manager with VI key bindings in Python.
1066 [113]https://ranger.github.io/
1069 newsreader, supporting color, MIME
1071 [114]http://www.tin.org/
1074 File manager with vi like keybindings
1076 [115]https://vifm.info/
1078 as well as some that use ncurses for the terminfo support alone:
1081 terminal emulator for serial modem connections
1083 [116]https://alioth.debian.org/projects/minicom/
1086 a replacement for ssh.
1088 [117]https://mosh.mit.edu/
1091 terminfo action checker
1093 [118]https://invisible-island.net/ncurses/tack.html
1096 terminal multiplexor
1098 [119]https://github.com/tmux/tmux/wiki
1101 vi-like-emacs may be built to use the terminfo, termcap or
1104 [120]https://invisible-island.net/vile/
1106 and finally, those which use only the termcap interface:
1111 [121]https://www.gnu.org/software/emacs/
1114 The most commonly used pager (a program that displays text
1117 [122]http://www.greenwoodsoftware.com/less/
1120 terminal multiplexor
1122 [123]https://www.gnu.org/software/screen/
1127 [124]https://www.vim.org/
1129 Development activities
1131 Zeyd Ben-Halim started ncurses from a previous package pcurses,
1132 written by Pavel Curtis. Eric S. Raymond continued development.
1133 Juergen Pfeifer wrote most of the form and menu libraries. Ongoing
1134 development work is done by [125]Thomas Dickey. Thomas Dickey also
1135 acts as the maintainer for the Free Software Foundation, which holds
1136 the [126]copyright on ncurses.
1138 Contact the current maintainers at
1140 [127]bug-ncurses@gnu.org
1142 To join the ncurses mailing list, please write email to
1144 [128]bug-ncurses-request@gnu.org
1146 containing the line:
1148 subscribe <name>@<host.domain>
1150 This list is open to anyone interested in helping with the development
1151 and testing of this package.
1153 Beta versions of ncurses and patches to the current release are made
1156 [129]ftp://ftp.invisible-island.net/ncurses/ and
1157 [130]https://invisible-mirror.net/archives/ncurses/ .
1159 There is an archive of the mailing list here:
1161 [131]http://lists.gnu.org/archive/html/bug-ncurses (also
1166 The release notes make scattered references to these pages, which may
1167 be interesting by themselves:
1168 * [133]ncurses licensing
1169 * [134]Symbol versioning in ncurses
1170 * [135]Comments on ncurses versus slang (S-Lang)
1171 * [136]tack - terminfo action checker
1172 * [137]tctest - termcap library checker
1173 * [138]Terminal Database
1177 The distribution provides a newer version of the terminfo-format
1178 terminal description file once maintained by [139]Eric Raymond .
1179 Unlike the older version, the termcap and terminfo data are provided
1180 in the same file, which also provides several user-definable
1181 extensions beyond the X/Open specification.
1183 You can find lots of information on terminal-related topics not
1184 covered in the terminfo file at [140]Richard Shuford's archive .
1187 * [142]Release Notes
1188 + [143]Library improvements
1190 o [145]Other improvements
1191 + [146]Program improvements
1194 + [149]Terminal database
1195 + [150]Documentation
1196 + [151]Interesting bug-fixes
1197 + [152]Configuration changes
1198 o [153]Major changes
1199 o [154]Configuration options
1201 * [156]Features of ncurses
1202 * [157]Applications using ncurses
1203 * [158]Development activities
1204 * [159]Related resources
1205 * [160]Other resources
1209 1. https://invisible-island.net/ncurses/man/captoinfo.1m.html
1210 2. https://invisible-island.net/ncurses/man/clear.1.html
1211 3. https://invisible-island.net/ncurses/man/infocmp.1m.html
1212 4. https://invisible-island.net/ncurses/man/tabs.1.html
1213 5. https://invisible-island.net/ncurses/man/tic.1m.html
1214 6. https://invisible-island.net/ncurses/man/toe.1m.html
1215 7. https://invisible-island.net/ncurses/man/tput.1.html
1216 8. https://invisible-island.net/ncurses/man/tset.1.html
1217 9. https://invisible-island.net/ncurses/
1218 10. ftp://ftp.invisible-island.net/ncurses/
1219 11. https://invisible-mirror.net/archives/ncurses/
1220 12. ftp://ftp.gnu.org/gnu/ncurses/
1221 13. https://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-def_prog_mode_-def_shell_mode
1222 14. https://invisible-island.net/ncurses/ncurses-mapsyms.html
1223 15. https://invisible-island.net/ncurses/tctest.html#bsd42-numeric-caps
1224 16. https://invisible-island.net/ncurses/ncurses-slang.html#cause_numbers
1225 17. https://invisible-island.net/ncurses/tack.html#portable
1226 18. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
1227 19. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-EXTENSIONS
1228 20. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
1229 21. https://invisible-island.net/ncurses/man/tset.1.html
1230 22. https://invisible-island.net/ncurses/man/tput.1.html
1231 23. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
1232 24. https://invisible-island.net/ncurses/man/clear.1.html
1233 25. https://invisible-island.net/ncurses/tctest.html#bsd42-ctl-question
1234 26. https://invisible-island.net/ncurses/tctest.html#freebsd-ctl-question
1235 27. https://invisible-island.net/ncurses/ncurses-examples.html
1236 28. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-alloc_pair
1237 29. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-find_pair
1238 30. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-free_pair
1239 31. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
1240 32. https://invisible-island.net/dialog/
1241 33. https://invisible-island.net/dialog/manpage/dialog.html#h3-Common-Options
1242 34. https://invisible-island.net/xterm/xterm.log.html#xterm_331
1243 35. 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
1244 36. https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404
1245 37. https://invisible-island.net/ncurses/terminfo.src.html#tic-interix
1246 38. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Linux_consoles
1247 39. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Open_B_S_D_consoles
1248 40. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Tmux
1249 41. https://invisible-island.net/ncurses/terminfo.src.html#toc-_D_E_C__V_T100_and_compatibles
1250 42. https://invisible-island.net/ncurses/terminfo.src.html#toc-_G_N_O_M_E__V_T_E_
1251 43. https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M
1252 44. https://invisible-island.net/xterm/xterm.log.html#xterm_32
1253 45. https://invisible-island.net/xterm/xterm.log.html#xterm_272
1254 46. https://invisible-island.net/ncurses/NEWS.html
1255 47. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
1256 48. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
1257 49. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
1258 50. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-PORTABILITY
1259 51. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
1260 52. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
1261 53. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY
1262 54. https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h2-PORTABILITY
1263 55. https://invisible-island.net/ncurses/man/curs_pad.3x.html#h2-PORTABILITY
1264 56. https://invisible-island.net/ncurses/man/curs_slk.3x.html#h2-PORTABILITY
1265 57. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-PORTABILITY
1266 58. https://invisible-island.net/ncurses/man/wresize.3x.html#h2-PORTABILITY
1267 59. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols
1268 60. https://invisible-island.net/ncurses/man/curs_add_wch.3x.html
1269 61. https://invisible-island.net/ncurses/man/clear.1.html#h2-DESCRIPTION
1270 62. https://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-endwin
1271 63. https://invisible-island.net/ncurses/man/form_driver.3x.html
1272 64. https://invisible-island.net/ncurses/man/curs_get_wstr.3x.html#h2-RETURN-VALUE
1273 65. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Predefined-key-codes
1274 66. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Keypad-Mode
1275 67. https://invisible-island.net/ncurses/man/curs_get_wch.3x.html#h2-DESCRIPTION
1276 68. https://invisible-island.net/ncurses/man/infocmp.1m.html
1277 69. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-NOTES
1278 70. https://invisible-island.net/ncurses/man/curs_extend.3x#h2-RETURN-VALUE
1279 71. https://invisible-island.net/ncurses/man/curs_variables.3x.html#h2-PORTABILITY
1280 72. https://invisible-island.net/ncurses/man/curs_memleaks.3x.html
1281 73. https://invisible-island.net/ncurses/man/tic.1m.html
1282 74. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Terminfo-Capabilities-Syntax
1283 75. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Line-Graphics
1284 76. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Color-Handling
1285 77. https://invisible-island.net/ncurses/man/tput.1.html#h2-PORTABILITY
1286 78. https://invisible-island.net/ncurses/man/tput.1.html#h3-Aliases
1287 79. https://invisible-island.net/ncurses/man/tic.1m.html#h2-OPTIONS
1288 80. https://invisible-island.net/ncurses/man/infocmp.1m.html#h3-Other-Options
1289 81. https://invisible-island.net/ncurses/man/tset.1.html
1290 82. https://invisible-island.net/ncurses/man/curs_termcap.3x.html#h3-FORMATTING-CAPABILITIES
1291 83. https://invisible-island.net/ncurses/man/user_caps.5.html
1292 84. https://invisible-island.net/ncurses/man/scr_dump.5.html
1293 85. https://invisible-island.net/ncurses/man/curs_sp_funcs.3x.html
1294 86. https://invisible-island.net/ncurses/man/curs_threads.3x.html
1295 87. https://invisible-island.net/ncurses/man/curs_attr.3x.html
1296 88. file:///ncurses/man/curs_color.3x.html
1297 89. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
1298 90. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
1299 91. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
1300 92. https://invisible-island.net/ncurses/NEWS.html#t20111030
1301 93. https://invisible-island.net/ncurses/NEWS.html#t20000708
1302 94. https://invisible-island.net/ncurses/ncurses-netbsd.html
1303 95. https://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env
1304 96. https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-baudrate
1305 97. https://invisible-island.net/mawk/CHANGES.html#t20090727
1306 98. https://invisible-island.net/ncurses/man/tic.1m.html
1307 99. https://invisible-island.net/ncurses/man/captoinfo.1m.html
1308 100. https://invisible-island.net/ncurses/man/tset.1.html
1309 101. https://invisible-island.net/ncurses/man/toe.1m.html
1310 102. https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading
1311 103. https://invisible-island.net/ncurses/ncurses.faq.html
1312 104. https://invisible-island.net/ncurses/ncurses-examples.html
1313 105. https://wiki.debian.org/Aptitude
1314 106. https://invisible-island.net/cdk/
1315 107. https://invisible-island.net/ded/
1316 108. https://invisible-island.net/dialog/
1317 109. https://lynx.invisible-island.net/
1318 110. http://www.mutt.org/
1319 111. https://www.ncftp.com/
1320 112. https://sites.google.com/a/bostic.com/keithbostic/vi
1321 113. https://ranger.github.io/
1322 114. http://www.tin.org/
1323 115. https://vifm.info/
1324 116. https://alioth.debian.org/projects/minicom/
1325 117. https://mosh.mit.edu/
1326 118. https://invisible-island.net/ncurses/tack.html
1327 119. https://github.com/tmux/tmux/wiki
1328 120. https://invisible-island.net/vile/
1329 121. https://www.gnu.org/software/emacs/
1330 122. http://www.greenwoodsoftware.com/less/
1331 123. https://www.gnu.org/software/screen/
1332 124. https://www.vim.org/
1333 125. mailto:dickey@invisible-island.net
1334 126. https://invisible-island.net/ncurses/ncurses-license.html
1335 127. mailto:bug-ncurses@gnu.org
1336 128. mailto:bug-ncurses-request@gnu.org
1337 129. ftp://ftp.invisible-island.net/ncurses/
1338 130. https://invisible-mirror.net/archives/ncurses/
1339 131. http://lists.gnu.org/archive/html/bug-ncurses
1340 132. https://lists.gnu.org/archive/html/bug-ncurses
1341 133. https://invisible-island.net/ncurses/ncurses-license.html
1342 134. https://invisible-island.net/ncurses/ncurses-mapsyms.html
1343 135. https://invisible-island.net/ncurses/ncurses-slang.html
1344 136. https://invisible-island.net/ncurses/tack.html
1345 137. https://invisible-island.net/ncurses/tctest.html
1346 138. https://invisible-island.net/ncurses/ncurses.html#download_database
1347 139. http://www.catb.org/~esr/terminfo/
1348 140. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal
1349 141. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-overview
1350 142. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-release-notes
1351 143. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-library
1352 144. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
1353 145. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-fixes-library
1354 146. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-programs
1355 147. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-utilities
1356 148. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-examples
1357 149. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-database
1358 150. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-documentation
1359 151. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-bug-fixes
1360 152. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-config-config
1361 153. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-major
1362 154. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-options
1363 155. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-portability
1364 156. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-features
1365 157. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-who-uses
1366 158. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-development
1367 159. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-this-stuff
1368 160. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-other-stuff