]> ncurses.scripts.mit.edu Git - ncurses.git/blob - ANNOUNCE
ncurses 6.1 - patch 20180728
[ncurses.git] / ANNOUNCE
1                             Announcing ncurses 6.1
2
3 Overview
4
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
10    Curses.
11
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.
15
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
20        OSX.
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,
25        Tru64.
26      * It should work readily on any ANSI/POSIX-conforming unix.
27
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
36        scripts
37      * [8]tset, to initialize the terminal
38
39    Full manual pages are provided for the library and tools.
40
41    The ncurses distribution is available at ncurses' [9]homepage:
42
43      [10]ftp://ftp.invisible-island.net/ncurses/ or
44      [11]https://invisible-mirror.net/archives/ncurses/ .
45
46    It is also available via anonymous FTP at the GNU distribution site
47
48      [12]ftp://ftp.gnu.org/gnu/ncurses/ .
49
50 Release Notes
51
52    These notes are for ncurses 6.1, released January 27, 2018.
53
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
58    the ncurses 6 ABI:
59      * improve integration of tput and tset
60      * provide support for extended numeric capabilities.
61
62    There  are,  of  course,  numerous  other improvements, listed in this
63    announcement.
64
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
67    release.
68
69   Library improvements
70
71     New features
72
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
78        data.
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
82        [13]def_prog_mode.
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
90        change.
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
94        did not change.
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
99        TERMTYPE2.
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.
108
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.
115
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.
125
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.
132
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
139    approach was used:
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).
148
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.
160
161     Other improvements
162
163    These are new or revised features:
164      * modify  c++/etip.h.in  to  accommodate  deprecation  of  throw and
165        throws in c++17
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
170        error-return.
171      * add  build-time  utility  report_offsets  to  help  show  when the
172        various configurations of tinfo library are compatible or not.
173
174    These were done to limit or ultimately deprecate features:
175      * drop  two  symbols  obsoleted  in  2004:  _nc_check_termtype,  and
176        _nc_resolve_uses
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
182        NCURSES_NOMACROS
183      * remove  initialization-check  for calling napms in the term-driver
184        configuration; none is needed.
185      * modify trace to avoid overwriting existing file
186
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
192        compatibility
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
209        colors
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.
216
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
220        cache.
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
227        implementation.
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
235        null, as documented.
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
246        change in doupdate.
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
255        width.
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
259
260   Program improvements
261
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.
268
269    On  further  investigation,  it  turned  out that the differences were
270    largely an accident due to the way those programs had evolved.
271
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.
276
277    These  are the user-visible changes for the three programs (tput, tset
278    and clear):
279      * add  the  terminal-mode  parts  of "reset" (aka tset) to the "tput
280        reset"  command,  making  the  two  almost  the  same  except  for
281        window-size.
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
292        tput.
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.
303
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
307        readable.
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
312             "-W".
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
318        see unused letters.
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".
327
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
336        terminal.
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
345        terminal name.
346      * improve  error message from tset/reset when both stderr/stdout are
347        redirected to a file or pipe.
348
349    Several  of  the  less  apparent  features  deal  with  translation of
350    terminfo  to  termcap  (and the reverse), with corresponding checks by
351    tic:
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
364        ncv.
365      * add  check  in  tic for unnecessary use of "2" to denote a shifted
366        special key.
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
375        sgr0.
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
385        [26]mid-1990s).
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.
398
399     Examples
400
401    Along  with  the library and utilities, many improvements were made to
402    the [27]ncurses-examples.
403
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.,
410
411      32x64,32x128   256 colors
412      24x44,24x88    88 colors
413      32x64,24x128   16 colors
414
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
427        capability.
428
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
436        view program.
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
441        capability.
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.
446
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
449    consistent.
450
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
455        of function-keys.
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
459        display well.
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.
474
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
486        configuration.
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
497        with "a".
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,
501        etc.
502      * modify the view program:
503           + expand  tabs  using  the  ncurses  library rather than in the
504             test-program.
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
509        blinkit.
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.
522
523   Terminal database
524
525    There are several new terminal descriptions:
526
527      dumb-emacs-ansi,  dvtm,  dvtm-256color,  fbterm,  iterm2,  linux-m1
528      minitel    entries,    putty-noapp,    viewdata,   and   vt100+4bsd
529      building-block.
530
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.
534
535      several  other "-direct" descriptions to address the differences of
536      other terminal emulators versus xterm-direct.
537
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
548
549    while  others  affected specific descriptions. These were retested, to
550    take into account new/undocumented changes by their developers:
551
552      iterm, minitel, st, viewdata, nsterm
553
554    while these are specific fixes based on user reports, or warnings from
555    tic:
556
557    [35]ansi building blocks
558
559           + restored  rmir/smir  in  ansi+idc  to  better  match original
560             ansiterm+idc, add alias ansiterm
561
562    [36]icl6402
563
564           + corrected missing comma-separator between string capabilities
565             in icl6402 and m2-nam
566
567    [37]interix
568
569           + updated using tack and SFU with Windows 7 Ultimate.
570           + used ^? for kdch1
571
572    [38]linux
573
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
584
585    [39]pccon entries
586
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
590
591    [40]tmux
592
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
597           + uncanceled Ms
598
599    [41]vt100
600
601           + modify  vt100  rs2  string  to  reset vt52 mode and scrolling
602             regions
603           + corrected rs2 string for vt100-nam
604           + made  minor  fixes  for  vt100+4bsd,  e.g.,  delay in sgr for
605             consistency
606
607    [42]vte
608
609           + moved SGR 24 and 27 from vte-2014 to vte-2012
610           + add a few capabilities fixed in recent VTE development
611
612    [43]xterm
613
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
619             entry.
620           + add rs1 capability to xterm-256color
621           + add  oc  capability to xterm+256color, allowing palette reset
622             for xterm
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
629
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
633        feature.
634
635   Documentation
636
637    As usual, this release
638      * improves documentation by describing new features,
639      * attempts  to  improve the description of features which users have
640        found confusing
641      * fills  in overlooked descriptions of features which were described
642        in the [46]NEWS file but treated sketchily in manual pages.
643
644    In particular,
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
661        portability of pads.
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.
666
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
671        depends upon UTF-8.
672      * improve  discussion  of line-drawing characters in the [60]add_wch
673        manual.
674      * explain  in [61]clear's manual page that it writes to the standard
675        output.
676      * improve description of [62]endwin.
677      * improve  discussion  of  field  validation  in the [63]form driver
678        manual page.
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
682        KEY_RESIZE.
683        trim  some  obsolete/incorrect  wording about EINTR from the getch
684        manual page
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
689        page
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
704        termcap names
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
711        window-size.
712      * improve description of [82]tgoto parameters
713
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.
717
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
726        [86]threading.
727      * improve  manual  pages  for utilities with respect to POSIX versus
728        X/Open Curses.
729      * improve  organization  of  the [87]attributes and [88]color manual
730        pages.
731
732   Interesting bug-fixes
733
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
740        libraries.
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.
744
745   Configuration changes
746
747     Major changes
748
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.
759
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.
763
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.
768
769     Configuration options
770
771    These  changes  provide  support  for  tack 1.08, released in [91]July
772    2017:
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
787        be affected.
788
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
806        test.
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.
823
824   Portability
825
826    Many  of  the  portability  changes  are implemented via the configure
827    script:
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
833        compilers.
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
846        do not.
847      * add  configure  check  for  openpty to ncurses-examples' configure
848        script, for ditto.
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
863             used.
864           + add  configure  check  for  -fPIC  option  needed  for shared
865             libraries.
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
875             stdc++ library.
876           + if $CXXLIBS is set, the linkage test uses that in addition to
877             $LIBS.
878      * fixes for OS/2:
879           + use  button  instead  of  kbuf[0]  in  EMX-specific  part  of
880             lib_mouse.c
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
897             OpenBSD.
898           + add   --enable-string-hacks   option   to   ncurses-examples'
899             configure script.
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      _________________________________________________________________
910
911 Features of ncurses
912
913    The  ncurses  package  is  fully upward-compatible with SVr4 (System V
914    Release 4) curses:
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
920        Curses):
921           + the  panels  library,  supporting  a  stack  of  windows with
922             backing store.
923           + the   menus   library,  supporting  a  uniform  but  flexible
924             interface for menu programming.
925           + the   form   library,   supporting  data  collection  through
926             on-screen forms.
927      * ncurses's  terminal database is fully compatible with that used by
928        SVr4 curses.
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
936             curses.
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.
940
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
949        capability.
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
955        their data.
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
958        transparent colors.
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
962        code.
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
967        or System V'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
987        extension sets.
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
994        terminfo directory.
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
998        V.)
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
1008        #undef.
1009      * Extensive  documentation  is  provided  (see  the  [102]Additional
1010        Reading section of the [103]ncurses FAQ for online documentation).
1011
1012 Applications using ncurses
1013
1014    The  ncurses  distribution  includes  a  selection  of  test  programs
1015    (including   a   few   games).   These  are  available  separately  as
1016    [104]ncurses-examples
1017
1018    The   ncurses   library  has  been  tested  with  a  wide  variety  of
1019    applications including:
1020
1021    aptitude
1022           FrontEnd to Apt, the debian package manager
1023
1024           [105]https://wiki.debian.org/Aptitude
1025
1026    cdk
1027           Curses Development Kit
1028
1029           [106]https://invisible-island.net/cdk/
1030
1031    ded
1032           directory-editor
1033
1034           [107]https://invisible-island.net/ded/
1035
1036    dialog
1037           the  underlying  application used in Slackware's setup, and the
1038           basis   for  similar  install/configure  applications  on  many
1039           systems.
1040
1041           [108]https://invisible-island.net/dialog/
1042
1043    lynx
1044           the text WWW browser
1045
1046           [109]https://lynx.invisible-island.net/
1047
1048    mutt
1049           mail utility
1050
1051           [110]http://www.mutt.org/
1052
1053    ncftp
1054           file-transfer utility
1055
1056           [111]https://www.ncftp.com/
1057
1058    nvi
1059           New vi uses ncurses.
1060
1061           [112]https://sites.google.com/a/bostic.com/keithbostic/vi
1062
1063    ranger
1064           A console file manager with VI key bindings in Python.
1065
1066           [113]https://ranger.github.io/
1067
1068    tin
1069           newsreader, supporting color, MIME
1070
1071           [114]http://www.tin.org/
1072
1073    vifm
1074           File manager with vi like keybindings
1075
1076           [115]https://vifm.info/
1077
1078    as well as some that use ncurses for the terminfo support alone:
1079
1080    minicom
1081           terminal emulator for serial modem connections
1082
1083           [116]https://alioth.debian.org/projects/minicom/
1084
1085    mosh
1086           a replacement for ssh.
1087
1088           [117]https://mosh.mit.edu/
1089
1090    tack
1091           terminfo action checker
1092
1093           [118]https://invisible-island.net/ncurses/tack.html
1094
1095    tmux
1096           terminal multiplexor
1097
1098           [119]https://github.com/tmux/tmux/wiki
1099
1100    vile
1101           vi-like-emacs  may  be  built  to  use the terminfo, termcap or
1102           curses interfaces.
1103
1104           [120]https://invisible-island.net/vile/
1105
1106    and finally, those which use only the termcap interface:
1107
1108    emacs
1109           text editor
1110
1111           [121]https://www.gnu.org/software/emacs/
1112
1113    less
1114           The  most  commonly  used  pager  (a program that displays text
1115           files).
1116
1117           [122]http://www.greenwoodsoftware.com/less/
1118
1119    screen
1120           terminal multiplexor
1121
1122           [123]https://www.gnu.org/software/screen/
1123
1124    vim
1125           text editor
1126
1127           [124]https://www.vim.org/
1128
1129 Development activities
1130
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.
1137
1138    Contact the current maintainers at
1139
1140      [127]bug-ncurses@gnu.org
1141
1142    To join the ncurses mailing list, please write email to
1143
1144      [128]bug-ncurses-request@gnu.org
1145
1146    containing the line:
1147
1148      subscribe <name>@<host.domain>
1149
1150    This list is open to anyone interested in helping with the development
1151    and testing of this package.
1152
1153    Beta  versions  of ncurses and patches to the current release are made
1154    available at
1155
1156      [129]ftp://ftp.invisible-island.net/ncurses/ and
1157      [130]https://invisible-mirror.net/archives/ncurses/ .
1158
1159    There is an archive of the mailing list here:
1160
1161      [131]http://lists.gnu.org/archive/html/bug-ncurses            (also
1162      [132]https)
1163
1164 Related resources
1165
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
1174
1175 Other resources
1176
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.
1182
1183    You  can  find  lots  of  information  on  terminal-related topics not
1184    covered in the terminfo file at [140]Richard Shuford's archive .
1185
1186      * [141]Overview
1187      * [142]Release Notes
1188           + [143]Library improvements
1189                o [144]New features
1190                o [145]Other improvements
1191           + [146]Program improvements
1192                o [147]Utilities
1193                o [148]Examples
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
1200           + [155]Portability
1201      * [156]Features of ncurses
1202      * [157]Applications using ncurses
1203      * [158]Development activities
1204      * [159]Related resources
1205      * [160]Other resources
1206
1207 References
1208
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