xref: /freebsd/contrib/ncurses/ANNOUNCE (revision 4a1a95108dd76c4259fe6c37c4471f7969b17983)
14a1a9510SRong-En Fan                            Announcing ncurses 5.6
20e3d5408SPeter Wemm
30e3d5408SPeter Wemm   The  ncurses  (new  curses)  library  is  a free software emulation of
40e3d5408SPeter Wemm   curses  in  System  V  Release 4.0, and more. It uses terminfo format,
50e3d5408SPeter Wemm   supports  pads  and color and multiple highlights and forms characters
60e3d5408SPeter Wemm   and   function-key   mapping,   and  has  all  the  other  SYSV-curses
70e3d5408SPeter Wemm   enhancements over BSD curses.
80e3d5408SPeter Wemm
90e3d5408SPeter Wemm   In  mid-June  1995,  the  maintainer of 4.4BSD curses declared that he
104a1a9510SRong-En Fan   considered  4.4BSD curses obsolete, and encouraged the keepers of Unix
114a1a9510SRong-En Fan   releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
120e3d5408SPeter Wemm
134a1a9510SRong-En Fan   The ncurses code was developed under GNU/Linux. It has been in use for
144a1a9510SRong-En Fan   some  time  with  OpenBSD as the system curses library, and on FreeBSD
154a1a9510SRong-En Fan   and  NetBSD  as  an  external  package.  It  should port easily to any
164a1a9510SRong-En Fan   ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
170e3d5408SPeter Wemm
180e3d5408SPeter Wemm   The distribution includes the library and support utilities, including
190e3d5408SPeter Wemm   a   terminfo  compiler  tic(1),  a  decompiler  infocmp(1),  clear(1),
200e3d5408SPeter Wemm   tput(1),  tset(1),  and  a  termcap conversion tool captoinfo(1). Full
210e3d5408SPeter Wemm   manual pages are provided for the library and tools.
220e3d5408SPeter Wemm
230e3d5408SPeter Wemm   The  ncurses  distribution  is  available via anonymous FTP at the GNU
244a1a9510SRong-En Fan   distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ .
254a1a9510SRong-En Fan   It is also available at [2]ftp://invisible-island.net/ncurses/ .
260e3d5408SPeter Wemm
270e3d5408SPeter Wemm                                 Release Notes
280e3d5408SPeter Wemm
294a1a9510SRong-En Fan   This  release  is  designed  to  be upward compatible from ncurses 5.0
304a1a9510SRong-En Fan   through   5.5;  very  few  applications  will  require  recompilation,
314a1a9510SRong-En Fan   depending   on  the  platform.  These  are  the  highlights  from  the
324a1a9510SRong-En Fan   change-log since ncurses 5.5 release.
330e3d5408SPeter Wemm
340e3d5408SPeter Wemm   Interface changes:
354a1a9510SRong-En Fan     * generate linkable stubs for some macros:
364a1a9510SRong-En Fan       getbegx,  getbegy,  getcurx,  getcury,  getmaxx, getmaxy, getparx,
374a1a9510SRong-En Fan       getpary, getpary,
384a1a9510SRong-En Fan       and (for libncursesw)
394a1a9510SRong-En Fan       wgetbkgrnd
400e3d5408SPeter Wemm
417a69bbfbSPeter Wemm   New features and improvements:
424a1a9510SRong-En Fan     * library
434a1a9510SRong-En Fan          + support  hashed databases for the terminal descriptions. This
444a1a9510SRong-En Fan            uses  the  Berkeley  database,  has  been  tested for several
454a1a9510SRong-En Fan            versions on different platforms.
464a1a9510SRong-En Fan          + add    use_legacy_coding()   function   to   support   lynx's
474a1a9510SRong-En Fan            font-switching feature.
484a1a9510SRong-En Fan          + add extension nofilter(), to cancel a prior filter() call.
494a1a9510SRong-En Fan          + add/install a package config script, e.g., ncurses5-config or
504a1a9510SRong-En Fan            ncursesw5-config, according to configuration options.
514a1a9510SRong-En Fan          + provide  ifdef  for  NCURSES_NOMACROS  which  suppresses most
524a1a9510SRong-En Fan            macro  definitions  from  curses.h,  i.e.,  where  a macro is
534a1a9510SRong-En Fan            defined to override a function to improve performance.
544a1a9510SRong-En Fan          + make  ifdef's  consistent in curses.h for the extended colors
554a1a9510SRong-En Fan            so the header file can be used for the normal curses library.
564a1a9510SRong-En Fan            The  header file installed for extended colors is a variation
574a1a9510SRong-En Fan            of the wide-character configuration.
584a1a9510SRong-En Fan          + improve  tgetstr()  by making the return value point into the
594a1a9510SRong-En Fan            user's buffer, if provided.
604a1a9510SRong-En Fan          + add  ifdef's  allowing ncurses to be built with tparm() using
614a1a9510SRong-En Fan            either   varargs   (the   existing   status),   or   using  a
624a1a9510SRong-En Fan            fixed-parameter list (to match X/Open).
634a1a9510SRong-En Fan          + widen  the  test  for xterm kmous a little to allow for other
644a1a9510SRong-En Fan            strings  than  "\E[M",  e.g.,  for xterm-sco functionality in
654a1a9510SRong-En Fan            xterm.
664a1a9510SRong-En Fan          + modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs.
674a1a9510SRong-En Fan          + move  prototypes  for  wide-character  trace  functions  from
684a1a9510SRong-En Fan            curses.tail  to  curses.wide to avoid accidental reference to
694a1a9510SRong-En Fan            those  if  _XOPEN_SOURCE_EXTENDED is defined without ensuring
704a1a9510SRong-En Fan            that <wchar.h> is included.
714a1a9510SRong-En Fan          + change  the  way  shared  libraries  (other than libtool) are
724a1a9510SRong-En Fan            installed.  Rather  than  copying the build-tree's libraries,
734a1a9510SRong-En Fan            link  the  shared  objects  into  the install directory. This
744a1a9510SRong-En Fan            makes the --with-rpath option work except with $(DESTDIR).
754a1a9510SRong-En Fan          + several  improvements for rendering in hpterm. These are only
764a1a9510SRong-En Fan            available    if    the    library    is    configured   using
774a1a9510SRong-En Fan            --enable-xmc-glitch.
784a1a9510SRong-En Fan          + Add    NCURSES_NO_HARD_TABS    and    NCURSES_NO_MAGIC_COOKIE
794a1a9510SRong-En Fan            environment  variables  to  allow  runtime suppression of the
804a1a9510SRong-En Fan            related hard-tabs and xmc-glitch features.
814a1a9510SRong-En Fan     * programs:
824a1a9510SRong-En Fan          + add  new  test programs: chgat.c, demo_altkeys.c, echochar.c,
834a1a9510SRong-En Fan            foldkeys.c,  movewindow.c,  redraw.c,  (noting  that existing
844a1a9510SRong-En Fan            test   programs   also   were  modified  to  test  additional
854a1a9510SRong-En Fan            features).
864a1a9510SRong-En Fan          + modify tack to test extended capability function-key strings.
874a1a9510SRong-En Fan          + modify  toe  to  access  termcap  data,  e.g.,  via cgetent()
884a1a9510SRong-En Fan            functions, or as a text file if those are not available.
894a1a9510SRong-En Fan          + improve infocmp/tic -f option formatting.
904a1a9510SRong-En Fan          + add  toe  -a  option,  to  show  all databases. This uses new
914a1a9510SRong-En Fan            private  interfaces  in  the  ncurses  library  for iterating
924a1a9510SRong-En Fan            through the list of databases.
934a1a9510SRong-En Fan          + modify MKfallback.sh to use tic -x when constructing fallback
944a1a9510SRong-En Fan            tables  to allow extended capabilities to be retrieved from a
954a1a9510SRong-En Fan            fallback entry.
964a1a9510SRong-En Fan     * terminal database
974a1a9510SRong-En Fan          + add terminfo entries for xfce terminal (xfce) and multi gnome
984a1a9510SRong-En Fan            terminal (mgt)
994a1a9510SRong-En Fan          + add nsterm-16color entry
1004a1a9510SRong-En Fan          + updated mlterm terminfo entry
1014a1a9510SRong-En Fan          + add kon, kon2 and jfbterm terminfo entry
1024a1a9510SRong-En Fan          + remove  invis capability from klone+sgr, mainly used by linux
1034a1a9510SRong-En Fan            entry, since it does not really do this
1044a1a9510SRong-En Fan          + add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
1054a1a9510SRong-En Fan          + add  shifted  up/down  arrow  codes  to xterm-new as kind/kri
1064a1a9510SRong-En Fan            strings
1074a1a9510SRong-En Fan          + add hpterm-color terminfo entry
1084a1a9510SRong-En Fan          + add  256color variants of terminfo entries for programs which
1094a1a9510SRong-En Fan            are reported to implement this feature
1104a1a9510SRong-En Fan          + correct  order  of use-clauses in rxvt-basic entry which made
1114a1a9510SRong-En Fan            codes for f1-f4 vt100-style rather than vt220-style.
1120e3d5408SPeter Wemm
1130e3d5408SPeter Wemm   Major bug fixes:
1144a1a9510SRong-En Fan     * correct  a typo in configure --with-bool option for the case where
1154a1a9510SRong-En Fan       --without-cxx is used.
1164a1a9510SRong-En Fan     * move  assignment from environment variable ESCDELAY from initscr()
1174a1a9510SRong-En Fan       down to newterm() so the environment variable affects timeouts for
1184a1a9510SRong-En Fan       terminals opened with newterm() as well.
1194a1a9510SRong-En Fan     * modify  werase  to clear multicolumn characters that extend into a
1204a1a9510SRong-En Fan       derived window.
1214a1a9510SRong-En Fan     * modify wchgat() to mark updated cells as changed so a refresh will
1224a1a9510SRong-En Fan       repaint those cells.
1234a1a9510SRong-En Fan     * correct  logic  in wadd_wch() and wecho_wch(), which did not guard
1244a1a9510SRong-En Fan       against   passing  the  multi-column  attribute  into  a  call  on
1254a1a9510SRong-En Fan       waddch(), e.g., using data returned by win_wch()
1264a1a9510SRong-En Fan     * fix  redrawing  of  windows other than stdscr using wredrawln() by
1274a1a9510SRong-En Fan       touching the corresponding rows in curscr.
1284a1a9510SRong-En Fan     * reduce  memory leaks in repeated calls to tgetent() by remembering
1294a1a9510SRong-En Fan       the  last TERMINAL* value allocated to hold the corresponding data
1304a1a9510SRong-En Fan       and freeing that if the tgetent() result buffer is the same as the
1314a1a9510SRong-En Fan       previous call.
1324a1a9510SRong-En Fan     * modify  read_termtype() so the term_names data is always allocated
1334a1a9510SRong-En Fan       as part of the str_table, a better fix for a memory leak.
1344a1a9510SRong-En Fan     * fix  wins_nwstr(),  which  did  not  handle single-column non-8bit
1354a1a9510SRong-En Fan       codes.
1364a1a9510SRong-En Fan     * modify  wbkgrnd()  to avoid clearing the A_CHARTEXT attribute bits
1374a1a9510SRong-En Fan       since those record the state of multicolumn characters.
1384a1a9510SRong-En Fan     * improve   SIGWINCH   handling  by  postponing  its  effect  during
1394a1a9510SRong-En Fan       newterm(), etc., when allocating screens.
1404a1a9510SRong-En Fan     * remove  970913 feature for copying subwindows as they are moved in
1414a1a9510SRong-En Fan       mvwin().
1424a1a9510SRong-En Fan     * add checks in waddchnstr() and wadd_wchnstr() to stop copying when
1434a1a9510SRong-En Fan       a null character is found.
1444a1a9510SRong-En Fan     * add  some  checks  to  ensure current position is within scrolling
1454a1a9510SRong-En Fan       region before scrolling on a new line.
1464a1a9510SRong-En Fan     * add  a  workaround  to  ACS  mapping to allow applications such as
1474a1a9510SRong-En Fan       test/blue.c  to  use  the "PC ROM" characters by masking them with
1484a1a9510SRong-En Fan       A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
1494a1a9510SRong-En Fan       of legacy coding.
1507a69bbfbSPeter Wemm
1517a69bbfbSPeter Wemm   Portability:
1527a69bbfbSPeter Wemm     * configure script:
1534a1a9510SRong-En Fan          + new options:
1544a1a9510SRong-En Fan
1554a1a9510SRong-En Fan              --with-hashed-db
1564a1a9510SRong-En Fan                      Use  Berkeley  hashed database for storing terminfo
1574a1a9510SRong-En Fan                      data  rather  than storing each compiled entry in a
1584a1a9510SRong-En Fan                      separate binary file within a directory tree.
1594a1a9510SRong-En Fan
1604a1a9510SRong-En Fan              --without-dlsym
1614a1a9510SRong-En Fan                      Do not use dlsym() to load GPM dynamically.
1624a1a9510SRong-En Fan
1634a1a9510SRong-En Fan              --with-valgrind
1644a1a9510SRong-En Fan                      Simplify building for testing with valgrind.
1654a1a9510SRong-En Fan
1664a1a9510SRong-En Fan              --enable-wgetch-events
1674a1a9510SRong-En Fan                      Compile with experimental wgetch-events code.
1684a1a9510SRong-En Fan
1694a1a9510SRong-En Fan              --enable-signed-char
1704a1a9510SRong-En Fan                      Store booleans in "signed char" rather than "char".
1714a1a9510SRong-En Fan
1724a1a9510SRong-En Fan          + improved options:
1734a1a9510SRong-En Fan
1744a1a9510SRong-En Fan              --disable-largefile
1754a1a9510SRong-En Fan                      make the option work both ways.
1764a1a9510SRong-En Fan
1774a1a9510SRong-En Fan              --with-gpm
1784a1a9510SRong-En Fan                      The  option now accepts a parameter, i.e., the name
1794a1a9510SRong-En Fan                      of the dynamic GPM library to load via dlopen()
1804a1a9510SRong-En Fan
1814a1a9510SRong-En Fan              --disable-symlinks
1824a1a9510SRong-En Fan                      The  option  now allows one to disable symlink() in
1834a1a9510SRong-En Fan                      tic even when link() does not work.
1844a1a9510SRong-En Fan
1854a1a9510SRong-En Fan     * other configure/build issues:
1864a1a9510SRong-En Fan          + remove  special  case for Darwin in CF_XOPEN_SOURCE configure
1877a69bbfbSPeter Wemm            macro.
1884a1a9510SRong-En Fan          + add  configure  check  to  ensure that SIGWINCH is defined on
1894a1a9510SRong-En Fan            platforms such as OS X which exclude that when _XOPEN_SOURCE,
1904a1a9510SRong-En Fan            etc., are defined
1914a1a9510SRong-En Fan          + use  ld's -search_paths_first option on Darwin to work around
1924a1a9510SRong-En Fan            odd search rules on that platform.
1934a1a9510SRong-En Fan          + improve  ifdef's for _POSIX_VDISABLE in tset to work with Mac
1944a1a9510SRong-En Fan            OS X.
1954a1a9510SRong-En Fan          + modify  configure  script to ensure that if the C compiler is
1964a1a9510SRong-En Fan            used  rather  than the loader in making shared libraries, the
1974a1a9510SRong-En Fan            $(CFLAGS) variable is also used.
1984a1a9510SRong-En Fan          + use  ${CC}  rather  than  ${LD}  in  shared library rules for
1994a1a9510SRong-En Fan            IRIX64,  Solaris  to help ensure that initialization sections
2004a1a9510SRong-En Fan            are  provided  for  extra  linkage requirements, e.g., of C++
2014a1a9510SRong-En Fan            applications.
2024a1a9510SRong-En Fan          + improve  some  shared-library  configure scripting for Linux,
2034a1a9510SRong-En Fan            FreeBSD and NetBSD to make --with-shlib-version work.
2044a1a9510SRong-En Fan          + split    up    dependency   of   names.c   and   codes.c   in
2054a1a9510SRong-En Fan            ncurses/Makefile to work with parallel make.
2064a1a9510SRong-En Fan          + modify  MKlib_gen.sh  to  change  preprocessor-expanded _Bool
2074a1a9510SRong-En Fan            back to bool.
2084a1a9510SRong-En Fan          + modify progs/Makefile.in to make tput init work properly with
2094a1a9510SRong-En Fan            cygwin, i.e., do not pass a .exe in the reference string used
2104a1a9510SRong-En Fan            in check_aliases.
2117a69bbfbSPeter Wemm     * library:
2124a1a9510SRong-En Fan          + ignore wide-acs line-drawing characters that wcwidth() claims
2134a1a9510SRong-En Fan            are  not one-column. This is a workaround for Solaris' broken
2144a1a9510SRong-En Fan            locale support.
2154a1a9510SRong-En Fan          + reduce  name-pollution  in  term.h  by removing #define's for
2164a1a9510SRong-En Fan            HAVE_xxx symbols.
2174a1a9510SRong-En Fan          + fix #ifdef in c++/internal.h for QNX 6.1
2184a1a9510SRong-En Fan     * test programs:
2194a1a9510SRong-En Fan          + modify  test/configure script to allow building test programs
2204a1a9510SRong-En Fan            with PDCurses/X11.
2214a1a9510SRong-En Fan          + modified  test  programs  to  allow  some to work with NetBSD
2224a1a9510SRong-En Fan            curses.  Several  do  not  because NetBSD curses implements a
2234a1a9510SRong-En Fan            subset  of  X/Open  curses,  and  also  lacks  much  of  SVr4
2244a1a9510SRong-En Fan            additions. But it is enough for comparison.
2254a1a9510SRong-En Fan          + improved  test/configure  to  build  test/ncurses  on HPUX 11
2264a1a9510SRong-En Fan            using the vendor curses.
2274a1a9510SRong-En Fan          + change  configure  script  to produce test/Makefile from data
2284a1a9510SRong-En Fan            file.
2290e3d5408SPeter Wemm
2300e3d5408SPeter Wemm                              Features of Ncurses
2310e3d5408SPeter Wemm
2320e3d5408SPeter Wemm   The ncurses package is fully compatible with SVr4 (System V Release 4)
2330e3d5408SPeter Wemm   curses:
2340e3d5408SPeter Wemm     * All  257  of  the  SVr4  calls  have  been  implemented  (and  are
2350e3d5408SPeter Wemm       documented).
2360e3d5408SPeter Wemm     * Full  support for SVr4 curses features including keyboard mapping,
2370e3d5408SPeter Wemm       color,   forms-drawing   with   ACS   characters,   and  automatic
2380e3d5408SPeter Wemm       recognition of keypad and function keys.
2390e3d5408SPeter Wemm     * An  emulation  of  the  SVr4 panels library, supporting a stack of
2400e3d5408SPeter Wemm       windows with backing store, is included.
2410e3d5408SPeter Wemm     * An  emulation  of the SVr4 menus library, supporting a uniform but
2420e3d5408SPeter Wemm       flexible interface for menu programming, is included.
2430e3d5408SPeter Wemm     * An  emulation of the SVr4 form library, supporting data collection
2440e3d5408SPeter Wemm       through on-screen forms, is included.
2450e3d5408SPeter Wemm     * Binary   terminfo   entries   generated   by  the  ncurses  tic(1)
2460e3d5408SPeter Wemm       implementation  are  bit-for-bit-compatible  with the entry format
2470e3d5408SPeter Wemm       SVr4 curses uses.
2480e3d5408SPeter Wemm     * The utilities have options to allow you to filter terminfo entries
2490e3d5408SPeter Wemm       for  use  with  less  capable curses/terminfo versions such as the
2500e3d5408SPeter Wemm       HP/UX and AIX ports.
2510e3d5408SPeter Wemm
2520e3d5408SPeter Wemm   The ncurses package also has many useful extensions over SVr4:
2530e3d5408SPeter Wemm     * The  API  is 8-bit clean and base-level conformant with the X/OPEN
2540e3d5408SPeter Wemm       curses  specification, XSI curses (that is, it implements all BASE
2554a1a9510SRong-En Fan       level  features,  and  most  EXTENDED  features). It includes many
2564a1a9510SRong-En Fan       function calls not supported under SVr4 curses (but portability of
2574a1a9510SRong-En Fan       all calls is documented so you can use the SVr4 subset only).
2581759abf3SPeter Wemm     * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
2590e3d5408SPeter Wemm       corner  of  the  screen  if  your terminal has an insert-character
2600e3d5408SPeter Wemm       capability.
2610e3d5408SPeter Wemm     * Ada95 and C++ bindings.
2624a1a9510SRong-En Fan     * Support  for mouse event reporting with X Window xterm and FreeBSD
2634a1a9510SRong-En Fan       and OS/2 console windows.
2640e3d5408SPeter Wemm     * Extended mouse support via Alessandro Rubini's gpm package.
2650e3d5408SPeter Wemm     * The  function  wresize()  allows you to resize windows, preserving
2660e3d5408SPeter Wemm       their data.
2670e3d5408SPeter Wemm     * The function use_default_colors() allows you to use the terminal's
2680e3d5408SPeter Wemm       default colors for the default color pair, achieving the effect of
2690e3d5408SPeter Wemm       transparent colors.
2700e3d5408SPeter Wemm     * The functions keyok() and define_key() allow you to better control
2710e3d5408SPeter Wemm       the  use  of function keys, e.g., disabling the ncurses KEY_MOUSE,
2720e3d5408SPeter Wemm       or  by  defining  more than one control sequence to map to a given
2730e3d5408SPeter Wemm       key code.
2744a1a9510SRong-En Fan     * Support for 16-color terminals, such as aixterm and modern xterm.
2750e3d5408SPeter Wemm     * Better  cursor-movement  optimization.  The package now features a
2760e3d5408SPeter Wemm       cursor-local-movement computation more efficient than either BSD's
2770e3d5408SPeter Wemm       or System V's.
2780e3d5408SPeter Wemm     * Super   hardware   scrolling   support.   The  screen-update  code
2790e3d5408SPeter Wemm       incorporates  a novel, simple, and cheap algorithm that enables it
2800e3d5408SPeter Wemm       to  make  optimal  use  of hardware scrolling, line-insertion, and
2810e3d5408SPeter Wemm       line-deletion  for  screen-line  movements. This algorithm is more
2820e3d5408SPeter Wemm       powerful than the 4.4BSD curses quickch() routine.
2830e3d5408SPeter Wemm     * Real  support  for  terminals  with  the  magic-cookie glitch. The
2840e3d5408SPeter Wemm       screen-update  code  will  refrain from drawing a highlight if the
2850e3d5408SPeter Wemm       magic-   cookie  unattributed  spaces  required  just  before  the
2860e3d5408SPeter Wemm       beginning  and  after the end would step on a non-space character.
2870e3d5408SPeter Wemm       It  will  automatically  shift  highlight boundaries when doing so
2880e3d5408SPeter Wemm       would  make it possible to draw the highlight without changing the
2890e3d5408SPeter Wemm       visual appearance of the screen.
2900e3d5408SPeter Wemm     * It  is  possible to generate the library with a list of pre-loaded
2910e3d5408SPeter Wemm       fallback  entries linked to it so that it can serve those terminal
2920e3d5408SPeter Wemm       types  even  when  no  terminfo tree or termcap file is accessible
2930e3d5408SPeter Wemm       (this  may  be useful for support of screen-oriented programs that
2940e3d5408SPeter Wemm       must run in single-user mode).
2950e3d5408SPeter Wemm     * The tic(1)/captoinfo utility provided with ncurses has the ability
2960e3d5408SPeter Wemm       to  translate many termcaps from the XENIX, IBM and AT&T extension
2970e3d5408SPeter Wemm       sets.
2980e3d5408SPeter Wemm     * A BSD-like tset(1) utility is provided.
2990e3d5408SPeter Wemm     * The ncurses library and utilities will automatically read terminfo
3000e3d5408SPeter Wemm       entries  from  $HOME/.terminfo  if  it exists, and compile to that
3010e3d5408SPeter Wemm       directory  if  it  exists  and the user has no write access to the
3020e3d5408SPeter Wemm       system  directory.  This feature makes it easier for users to have
3030e3d5408SPeter Wemm       personal  terminfo  entries without giving up access to the system
3040e3d5408SPeter Wemm       terminfo directory.
3050e3d5408SPeter Wemm     * You  may  specify  a  path  of  directories to search for compiled
3060e3d5408SPeter Wemm       descriptions  with  the  environment  variable TERMINFO_DIRS (this
3070e3d5408SPeter Wemm       generalizes  the  feature  provided by TERMINFO under stock System
3080e3d5408SPeter Wemm       V.)
3090e3d5408SPeter Wemm     * In  terminfo  source files, use capabilities may refer not just to
3100e3d5408SPeter Wemm       other entries in the same source file (as in System V) but also to
3110e3d5408SPeter Wemm       compiled  entries  in  either the system terminfo directory or the
3120e3d5408SPeter Wemm       user's $HOME/.terminfo directory.
3130e3d5408SPeter Wemm     * A  script  (capconvert)  is  provided to help BSD users transition
3140e3d5408SPeter Wemm       from  termcap to terminfo. It gathers the information in a TERMCAP
3150e3d5408SPeter Wemm       environment  variable  and/or  a ~/.termcap local entries file and
3160e3d5408SPeter Wemm       converts   it   to   an   equivalent  local  terminfo  tree  under
3170e3d5408SPeter Wemm       $HOME/.terminfo.
3180e3d5408SPeter Wemm     * Automatic  fallback  to  the  /etc/termcap file can be compiled in
3190e3d5408SPeter Wemm       when  it is not possible to build a terminfo tree. This feature is
3200e3d5408SPeter Wemm       neither  fast  nor cheap, you don't want to use it unless you have
3210e3d5408SPeter Wemm       to, but it's there.
3220e3d5408SPeter Wemm     * The  table-of-entries  utility  toe makes it easy for users to see
3230e3d5408SPeter Wemm       exactly what terminal types are available on the system.
3240e3d5408SPeter Wemm     * The library meets the XSI requirement that every macro entry point
3250e3d5408SPeter Wemm       have  a  corresponding  function  which may be linked (and will be
3260e3d5408SPeter Wemm       prototype-checked)  if  the  macro  definition  is  disabled  with
3270e3d5408SPeter Wemm       #undef.
3280e3d5408SPeter Wemm     * An  HTML  "Introduction  to  Programming  with  NCURSES"  document
3290e3d5408SPeter Wemm       provides  a  narrative  introduction  to  the  curses  programming
3300e3d5408SPeter Wemm       interface.
3310e3d5408SPeter Wemm
3320e3d5408SPeter Wemm                             State of the Package
3330e3d5408SPeter Wemm
3340e3d5408SPeter Wemm   Numerous bugs present in earlier versions have been fixed; the library
3350e3d5408SPeter Wemm   is  far  more  reliable  than  it  used to be. Bounds checking in many
3360e3d5408SPeter Wemm   `dangerous'  entry points has been improved. The code is now type-safe
3370e3d5408SPeter Wemm   according  to gcc -Wall. The library has been checked for malloc leaks
3380e3d5408SPeter Wemm   and arena corruption by the Purify memory-allocation tester.
3390e3d5408SPeter Wemm
3400e3d5408SPeter Wemm   The  ncurses  code has been tested with a wide variety of applications
3410e3d5408SPeter Wemm   including (versions starting with those noted):
3420e3d5408SPeter Wemm
3431759abf3SPeter Wemm   cdk
34415589c42SPeter Wemm          Curses Development Kit
3454a1a9510SRong-En Fan          [3]http://invisible-island.net/cdk/
3464a1a9510SRong-En Fan          [4]http://www.vexus.ca/products/CDK/
3471759abf3SPeter Wemm
3480e3d5408SPeter Wemm   ded
34915589c42SPeter Wemm          directory-editor
3504a1a9510SRong-En Fan          [5]http://invisible-island.net/ded/
3510e3d5408SPeter Wemm
3520e3d5408SPeter Wemm   dialog
3530e3d5408SPeter Wemm          the  underlying  application used in Slackware's setup, and the
3540e3d5408SPeter Wemm          basis for similar applications on GNU/Linux.
3554a1a9510SRong-En Fan          [6]http://invisible-island.net/dialog/
3560e3d5408SPeter Wemm
3571759abf3SPeter Wemm   lynx
3580e3d5408SPeter Wemm          the character-screen WWW browser
3594a1a9510SRong-En Fan          [7]http://lynx.isc.org/release/
3600e3d5408SPeter Wemm
3614a1a9510SRong-En Fan   Midnight Commander
3620e3d5408SPeter Wemm          file manager
3634a1a9510SRong-En Fan          [8]http://www.ibiblio.org/mc/
3640e3d5408SPeter Wemm
3651759abf3SPeter Wemm   mutt
3660e3d5408SPeter Wemm          mail utility
3674a1a9510SRong-En Fan          [9]http://www.mutt.org/
3680e3d5408SPeter Wemm
3691759abf3SPeter Wemm   ncftp
3700e3d5408SPeter Wemm          file-transfer utility
3714a1a9510SRong-En Fan          [10]http://www.ncftp.com/
3720e3d5408SPeter Wemm
3730e3d5408SPeter Wemm   nvi
3740e3d5408SPeter Wemm          New vi versions 1.50 are able to use ncurses versions 1.9.7 and
3750e3d5408SPeter Wemm          later.
3764a1a9510SRong-En Fan          [11]http://www.bostic.com/vi/
3774a1a9510SRong-En Fan
3784a1a9510SRong-En Fan   pinfo
3794a1a9510SRong-En Fan          Lynx-like info browser.
3804a1a9510SRong-En Fan          [12]http://dione.ids.pl/~pborys/software/pinfo/
3810e3d5408SPeter Wemm
3821759abf3SPeter Wemm   tin
3834a1a9510SRong-En Fan          newsreader, supporting color, MIME [13]http://www.tin.org/
3840e3d5408SPeter Wemm
3850e3d5408SPeter Wemm   vh-1.6
3860e3d5408SPeter Wemm          Volks-Hypertext browser for the Jargon File
3874a1a9510SRong-En Fan          [14]http://www.debian.org/Packages/unstable/text/vh.html
3880e3d5408SPeter Wemm
3890e3d5408SPeter Wemm   as well as some that use ncurses for the terminfo support alone:
3900e3d5408SPeter Wemm
3911759abf3SPeter Wemm   minicom
3920e3d5408SPeter Wemm          terminal emulator
3934a1a9510SRong-En Fan          [15]http://alioth.debian.org/projects/minicom/
3940e3d5408SPeter Wemm
3950e3d5408SPeter Wemm   vile
39615589c42SPeter Wemm          vi-like-emacs
3974a1a9510SRong-En Fan          [16]http://invisible-island.net/vile/
3980e3d5408SPeter Wemm
3990e3d5408SPeter Wemm   The  ncurses  distribution  includes  a  selection  of  test  programs
4000e3d5408SPeter Wemm   (including a few games).
4010e3d5408SPeter Wemm
4020e3d5408SPeter WemmWho's Who and What's What
4030e3d5408SPeter Wemm
4044a1a9510SRong-En Fan   Zeyd  Ben-Halim started it from a previous package pcurses, written by
4054a1a9510SRong-En Fan   Pavel  Curtis.  Eric S. Raymond continued development. Juergen Pfeifer
4064a1a9510SRong-En Fan   wrote  most of the form and menu libraries. Ongoing work is being done
4074a1a9510SRong-En Fan   by  [17]Thomas  Dickey.  Thomas  Dickey acts as the maintainer for the
4080e3d5408SPeter Wemm   Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
4094a1a9510SRong-En Fan   Contact the current maintainers at [18]bug-ncurses@gnu.org.
4100e3d5408SPeter Wemm
4110e3d5408SPeter Wemm   To   join   the   ncurses   mailing   list,   please  write  email  to
4120e3d5408SPeter Wemm   bug-ncurses-request@gnu.org containing the line:
4130e3d5408SPeter Wemm             subscribe <name>@<host.domain>
4140e3d5408SPeter Wemm
4150e3d5408SPeter Wemm   This list is open to anyone interested in helping with the development
4160e3d5408SPeter Wemm   and testing of this package.
4170e3d5408SPeter Wemm
4180e3d5408SPeter Wemm   Beta  versions  of ncurses and patches to the current release are made
4194a1a9510SRong-En Fan   available at [19]ftp://invisible-island.net/ncurses/ .
4200e3d5408SPeter Wemm
4210e3d5408SPeter WemmFuture Plans
4220e3d5408SPeter Wemm
4230e3d5408SPeter Wemm     * Extended-level   XPG4   conformance,   with   internationalization
4240e3d5408SPeter Wemm       support.
4250e3d5408SPeter Wemm     * Ports to more systems, including DOS and Windows.
4260e3d5408SPeter Wemm
4270e3d5408SPeter Wemm   We  need  people to help with these projects. If you are interested in
4280e3d5408SPeter Wemm   working on them, please join the ncurses list.
4290e3d5408SPeter Wemm
4300e3d5408SPeter WemmOther Related Resources
4310e3d5408SPeter Wemm
4324a1a9510SRong-En Fan   The  distribution  provides  a  newer  version  of the terminfo-format
4334a1a9510SRong-En Fan   terminal description file once maintained by [20]Eric Raymond . Unlike
4344a1a9510SRong-En Fan   the  older  version, the termcap and terminfo data are provided in the
4354a1a9510SRong-En Fan   same  file,  and provides several user-definable extensions beyond the
4364a1a9510SRong-En Fan   X/Open specification.
4370e3d5408SPeter Wemm
4380e3d5408SPeter Wemm   You  can  find  lots  of  information  on  terminal-related topics not
4394a1a9510SRong-En Fan   covered in the terminfo file at [21]Richard Shuford's archive .
4400e3d5408SPeter Wemm
4410e3d5408SPeter WemmReferences
4420e3d5408SPeter Wemm
4434a1a9510SRong-En Fan   1. ftp://ftp.gnu.org/gnu/ncurses/
4444a1a9510SRong-En Fan   2. ftp://invisible-island.net/ncurses/
4454a1a9510SRong-En Fan   3. http://invisible-island.net/cdk/
4464a1a9510SRong-En Fan   4. http://www.vexus.ca/products/CDK/
4474a1a9510SRong-En Fan   5. http://invisible-island.net/ded/
4484a1a9510SRong-En Fan   6. http://invisible-island.net/dialog/
44915589c42SPeter Wemm   7. http://lynx.isc.org/release/
4504a1a9510SRong-En Fan   8. http://www.ibiblio.org/mc/
45118259542SPeter Wemm   9. http://www.mutt.org/
45218259542SPeter Wemm  10. http://www.ncftp.com/
45318259542SPeter Wemm  11. http://www.bostic.com/vi/
4544a1a9510SRong-En Fan  12. http://dione.ids.pl/~pborys/software/pinfo/
4554a1a9510SRong-En Fan  13. http://www.tin.org/
4564a1a9510SRong-En Fan  14. http://www.debian.org/Packages/unstable/text/vh.html
4574a1a9510SRong-En Fan  15. http://alioth.debian.org/projects/minicom/
4584a1a9510SRong-En Fan  16. http://invisible-island.net/vile/
4594a1a9510SRong-En Fan  17. mailto:dickey@invisible-island.net
4604a1a9510SRong-En Fan  18. mailto:bug-ncurses@gnu.org
4614a1a9510SRong-En Fan  19. ftp://invisible-island.net/ncurses/
4624a1a9510SRong-En Fan  20. http://www.catb.org/~esr/terminfo/
4634a1a9510SRong-En Fan  21. http://www.cs.utk.edu/~shuford/terminal_index.html
464