| 1 |                             Announcing ncurses 5.5
 | 
|---|
| 2 | 
 | 
|---|
| 3 |    The  ncurses  (new  curses)  library  is  a free software emulation of
 | 
|---|
| 4 |    curses  in  System  V  Release 4.0, and more. It uses terminfo format,
 | 
|---|
| 5 |    supports  pads  and color and multiple highlights and forms characters
 | 
|---|
| 6 |    and   function-key   mapping,   and  has  all  the  other  SYSV-curses
 | 
|---|
| 7 |    enhancements over BSD curses.
 | 
|---|
| 8 | 
 | 
|---|
| 9 |    In  mid-June  1995,  the  maintainer of 4.4BSD curses declared that he
 | 
|---|
| 10 |    considered  4.4BSD curses obsolete, and encouraged the keepers of Unix
 | 
|---|
| 11 |    releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
 | 
|---|
| 12 | 
 | 
|---|
| 13 |    The ncurses code was developed under GNU/Linux. It has been in use for
 | 
|---|
| 14 |    some  time  with  OpenBSD as the system curses library, and on FreeBSD
 | 
|---|
| 15 |    and  NetBSD  as  an  external  package.  It  should port easily to any
 | 
|---|
| 16 |    ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
 | 
|---|
| 17 | 
 | 
|---|
| 18 |    The distribution includes the library and support utilities, including
 | 
|---|
| 19 |    a   terminfo  compiler  tic(1),  a  decompiler  infocmp(1),  clear(1),
 | 
|---|
| 20 |    tput(1),  tset(1),  and  a  termcap conversion tool captoinfo(1). Full
 | 
|---|
| 21 |    manual pages are provided for the library and tools.
 | 
|---|
| 22 | 
 | 
|---|
| 23 |    The  ncurses  distribution  is  available via anonymous FTP at the GNU
 | 
|---|
| 24 |    distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ .
 | 
|---|
| 25 |    It is also available at [2]ftp://invisible-island.net/ncurses/ .
 | 
|---|
| 26 | 
 | 
|---|
| 27 |                                  Release Notes
 | 
|---|
| 28 | 
 | 
|---|
| 29 |    This  release  is  designed  to  be upward compatible from ncurses 5.0
 | 
|---|
| 30 |    through   5.4;  very  few  applications  will  require  recompilation,
 | 
|---|
| 31 |    depending   on  the  platform.  These  are  the  highlights  from  the
 | 
|---|
| 32 |    change-log since ncurses 5.4 release.
 | 
|---|
| 33 | 
 | 
|---|
| 34 |    Interface changes:
 | 
|---|
| 35 |      * terminfo   installs  "xterm-new"  as  "xterm"  entry  rather  than
 | 
|---|
| 36 |        "xterm-old" (aka xterm-r6).
 | 
|---|
| 37 |      * terminfo  data  is  installed using the tic -x option (few systems
 | 
|---|
| 38 |        still use ncurses 4.2).
 | 
|---|
| 39 |      * modify  C++  binding to work with newer C++ compilers by providing
 | 
|---|
| 40 |        initializers  and  using  modern casts. Old-style header names are
 | 
|---|
| 41 |        still  used  in  this  release  to allow compiling with not-so-old
 | 
|---|
| 42 |        compilers.
 | 
|---|
| 43 |      * modify parameter type in c++ binding for insch() and mvwinsch() to
 | 
|---|
| 44 |        be  consistent  with  underlying  ncurses  library  (was  char, is
 | 
|---|
| 45 |        chtype).
 | 
|---|
| 46 |      * change NCursesWindow::err_handler() to a virtual function.
 | 
|---|
| 47 |      * form  and  menu  libraries  now  work  with  wide-character  data.
 | 
|---|
| 48 |        Applications  which  bypassed the form library and manipulated the
 | 
|---|
| 49 |        FIELD.buf  data  directly  will  not  work properly with libformw,
 | 
|---|
| 50 |        since   that   no   longer   points  to  an  array  of  char.  The
 | 
|---|
| 51 |        set_field_buffer()  and field_buffer() functions translate to/from
 | 
|---|
| 52 |        the actual field data.
 | 
|---|
| 53 |      * add  symbol  to  curses.h which can be used to suppress include of
 | 
|---|
| 54 |        stdbool.h, e.g.,
 | 
|---|
| 55 |                 #define NCURSES_ENABLE_STDBOOL_H 0
 | 
|---|
| 56 |                 #include <curses.h>
 | 
|---|
| 57 | 
 | 
|---|
| 58 |      * change  SP->_current_attr  to  a pointer, adjust ifdef's to ensure
 | 
|---|
| 59 |        that  libtinfo.so  and  libtinfow.so have the same ABI. The reason
 | 
|---|
| 60 |        for  this  is  that  the  corresponding  data which belongs to the
 | 
|---|
| 61 |        upper-level ncurses library has a different size in each model.
 | 
|---|
| 62 |      * winnstr()   now   returns  multibyte  character  strings  for  the
 | 
|---|
| 63 |        wide-character configuration.
 | 
|---|
| 64 |      * assume_default_colors()      no      longer      requires     that
 | 
|---|
| 65 |        use_default_colors() be called first.
 | 
|---|
| 66 |      * data_ahead() now works with wide-characters.
 | 
|---|
| 67 |      * slk_set()  and  slk_wset()  now  accept  and  store  multibyte  or
 | 
|---|
| 68 |        multicolumn characters.
 | 
|---|
| 69 |      * start_color()  now returns OK if colors have already been started.
 | 
|---|
| 70 |        start_color() also returns ERR if it cannot allocate memory.
 | 
|---|
| 71 |      * pair_content()  now returns -1 for consistency with init_pair() if
 | 
|---|
| 72 |        it corresponds to the default-color.
 | 
|---|
| 73 |      * unctrl()  now returns null if its parameter does not correspond to
 | 
|---|
| 74 |        an unsigned char.
 | 
|---|
| 75 | 
 | 
|---|
| 76 |    New features and improvements:
 | 
|---|
| 77 |      * library
 | 
|---|
| 78 |           + environment     variable     NCURSES_NO_UTF8_ACS     supports
 | 
|---|
| 79 |             miscellaneous   terminal  emulators  which  ignore  alternate
 | 
|---|
| 80 |             character set escape sequences when in UTF-8 mode.
 | 
|---|
| 81 |           + modify  initialization  of  key  lookup  table  so that if an
 | 
|---|
| 82 |             extended  capability (tic -x) string is defined, and its name
 | 
|---|
| 83 |             begins  with  'k',  ncurses  will automatically treat it as a
 | 
|---|
| 84 |             key.
 | 
|---|
| 85 |           + change  GPM  initialization,  using  dl  library  to  load it
 | 
|---|
| 86 |             dynamically at runtime.
 | 
|---|
| 87 |           + form, menu and panel libraries support debug-tracing.
 | 
|---|
| 88 |      * add   NCURSES-Programming-HOWTO.html   by   Pradeep   Padala  (see
 | 
|---|
| 89 |        http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
 | 
|---|
| 90 |      * programs:
 | 
|---|
| 91 |      * infocmp:
 | 
|---|
| 92 |           + The  -i  option  now matches 8-bit controls against its table
 | 
|---|
| 93 |             entries, e.g., so it can analyze the xterm-8bit entry.
 | 
|---|
| 94 |           + add  "-x"  option to infocmp like tic's "-x", for use in "-F"
 | 
|---|
| 95 |             comparisons.  This  modifies  infocmp to only report extended
 | 
|---|
| 96 |             capabilities  if  the  -x  option  is given, making this more
 | 
|---|
| 97 |             consistent  with  tic.  Some scripts may break, since infocmp
 | 
|---|
| 98 |             previous gave this information without an option.
 | 
|---|
| 99 |      * tic:
 | 
|---|
| 100 |           + modify  termcap-parsing  to retain 2-character aliases at the
 | 
|---|
| 101 |             beginning of an entry if the "-x" option is used in tic.
 | 
|---|
| 102 |           + filter  out  long  extended names when translating to termcap
 | 
|---|
| 103 |             format.  Only  two  characters  are  permissible  for termcap
 | 
|---|
| 104 |             capability names.
 | 
|---|
| 105 |           + correct  translation  of  "%%" in terminfo format to termcap,
 | 
|---|
| 106 |             e.g., using "tic -C".
 | 
|---|
| 107 |           + modify  the  "-c  -v" options to ignore delays when comparing
 | 
|---|
| 108 |             strings.  Also  modify  it  to  ignore a canceled sgr string,
 | 
|---|
| 109 |             e.g.,  for terminals which cannot properly combine attributes
 | 
|---|
| 110 |             in one control sequence.
 | 
|---|
| 111 |           + add  a  check  for  improperly  ended  strings, i.e., where a
 | 
|---|
| 112 |             following line begins in column 1.
 | 
|---|
| 113 |           + add a check in tic for terminfo entries having an sgr0 but no
 | 
|---|
| 114 |             sgr string. This confuses Tru64 and HPUX curses when combined
 | 
|---|
| 115 |             with  color,  e.g., making them leave line-drawing characters
 | 
|---|
| 116 |             in odd places.
 | 
|---|
| 117 |           + add  check (with debug configuration) that provides about the
 | 
|---|
| 118 |             runtime  changes  that  would  be  made  to  sgr0 for termcap
 | 
|---|
| 119 |             applications.
 | 
|---|
| 120 |      * tset:
 | 
|---|
| 121 |           + add  -c  and  -w  options  to allow user to suppress ncurses'
 | 
|---|
| 122 |             resizing  of the terminal emulator window in the special case
 | 
|---|
| 123 |             where it is not able to detect the true size.
 | 
|---|
| 124 | 
 | 
|---|
| 125 |    Major bug fixes:
 | 
|---|
| 126 |      * improve  logic  in tgetent() which adjusts the termcap "me" string
 | 
|---|
| 127 |        to  work with ISO-2022 string used in xterm-new. This is a feature
 | 
|---|
| 128 |        that was incompletely implemented in ncurses 5.3. ncurses attempts
 | 
|---|
| 129 |        to  provide  termcap clients with the portion of the sgr0 (termcap
 | 
|---|
| 130 |        "me") string that does not reset line-drawing.
 | 
|---|
| 131 |      * cells  in  the  WINDOW  which  are  continuations of a multicolumn
 | 
|---|
| 132 |        character   are   encoded   differently,  making  repainting  more
 | 
|---|
| 133 |        reliable.
 | 
|---|
| 134 |      * amend  change to setupterm() in ncurses 5.4 (20030405) which would
 | 
|---|
| 135 |        reuse  the value of cur_term if the same output was selected. This
 | 
|---|
| 136 |        now  reuses  it  only  when  setupterm() is called from tgetent(),
 | 
|---|
| 137 |        which  has no notion of separate SCREENs. Note that tgetent() must
 | 
|---|
| 138 |        be called after initscr() or newterm() to use this feature.
 | 
|---|
| 139 |      * make  setcchar() now works when its wchar_t* parameter is pointing
 | 
|---|
| 140 |        to a string which contains more data than can be converted.
 | 
|---|
| 141 |      * win_wchnstr() now works for more than one cell.
 | 
|---|
| 142 |      * resizeterm() now processes all levels of window hierarchy.
 | 
|---|
| 143 |      * disable  GPM  mouse support when $TERM happens to be prefixed with
 | 
|---|
| 144 |        "xterm".  Gpm_Open()  would otherwise assert that it can deal with
 | 
|---|
| 145 |        mouse events in this case.
 | 
|---|
| 146 |      * add  SP->_screen_acs_map[], used to ensure that mapping of missing
 | 
|---|
| 147 |        line-drawing   characters   is   handled  properly.  For  example,
 | 
|---|
| 148 |        ACS_DARROW  is  absent  from  xterm-new, and it was coincidentally
 | 
|---|
| 149 |        displayed the same as ACS_BTEE.
 | 
|---|
| 150 | 
 | 
|---|
| 151 |    Portability:
 | 
|---|
| 152 |      * configure script:
 | 
|---|
| 153 |           + new options:
 | 
|---|
| 154 | 
 | 
|---|
| 155 |               --enable-largefile
 | 
|---|
| 156 |                       set  compiler  and  linker  flags  to use largefile
 | 
|---|
| 157 |                       support.
 | 
|---|
| 158 | 
 | 
|---|
| 159 |               --enable-ext-colors
 | 
|---|
| 160 |                       Allow  encoding  of  256  foreground and background
 | 
|---|
| 161 |                       colors,    e.g.,   with   the   xterm-256color   or
 | 
|---|
| 162 |                       xterm-88color terminfo entries. This requires ABI 6
 | 
|---|
| 163 |                       because it changes the size of cchar_t.
 | 
|---|
| 164 | 
 | 
|---|
| 165 |               --enable-ext-mouse
 | 
|---|
| 166 |                       This  defines NCURSES_MOUSE_VERSION 2, and modifies
 | 
|---|
| 167 |                       the encoding of mouse events to support wheel mice,
 | 
|---|
| 168 |                       which may transmit buttons 4 and 5. This works with
 | 
|---|
| 169 |                       xterm and similar terminal emulators. This requires
 | 
|---|
| 170 |                       ABI  6  because  it  changes  the encoding of mouse
 | 
|---|
| 171 |                       events.
 | 
|---|
| 172 | 
 | 
|---|
| 173 |               --with-chtype
 | 
|---|
| 174 |                       overriding of the non-LP64 model's use of chtype
 | 
|---|
| 175 | 
 | 
|---|
| 176 |               --with-mmask-t
 | 
|---|
| 177 |                       overriding of the non-LP64 model's use of mmask_t
 | 
|---|
| 178 | 
 | 
|---|
| 179 |               --without-xterm-new
 | 
|---|
| 180 |                       Installs  "xterm-old"  as  the "xterm" entry of the
 | 
|---|
| 181 |                       terminfo database.
 | 
|---|
| 182 | 
 | 
|---|
| 183 |           + The  --with-termlib option now accepts a value which sets the
 | 
|---|
| 184 |             name  of the terminfo library. This would allow a packager to
 | 
|---|
| 185 |             build libtinfow.so renamed to coincide with libtinfo.so
 | 
|---|
| 186 |           + fixes/improvements for cross-compiling:
 | 
|---|
| 187 |                o suppress     $suffix     in     misc/run_tic.sh     when
 | 
|---|
| 188 |                  cross-compiling.  This  allows cross-compiles to use the
 | 
|---|
| 189 |                  host's  tic  program  to  handle the "make install.data"
 | 
|---|
| 190 |                  step.
 | 
|---|
| 191 |                o correct       BUILD_CPPFLAGS       substitution       in
 | 
|---|
| 192 |                  ncurses/Makefile.in,  to  allow  cross-compiling  from a
 | 
|---|
| 193 |                  separate directory tree.
 | 
|---|
| 194 |      * library:
 | 
|---|
| 195 |           + add  ifdef's  for  _LP64  in curses.h to avoid using wasteful
 | 
|---|
| 196 |             64-bits  for  chtype  and  mmask_t,  but add configure option
 | 
|---|
| 197 |             --disable-lp64 in case anyone used that configuration.
 | 
|---|
| 198 |           + modify  C++  binding to use some C internal functions to make
 | 
|---|
| 199 |             it compile properly on Solaris (and other platforms).
 | 
|---|
| 200 |           + remove  check  in  newwin()  that prevents allocating windows
 | 
|---|
| 201 |             that extend beyond the screen (Solaris does this).
 | 
|---|
| 202 |           + check  for  nl_langinfo(CODESET),  use  it if available. This
 | 
|---|
| 203 |             replaces  ad  hoc  tests of environment variables to check if
 | 
|---|
| 204 |             the  terminal is setup for UTF-8 encoding. Applications which
 | 
|---|
| 205 |             do  not  call  setlocale()  should be corrected, to make them
 | 
|---|
| 206 |             work properly with UTF-8 encoding.
 | 
|---|
| 207 |             In  particular,  applications  which  assume (and do not call
 | 
|---|
| 208 |             setlocale())  that Latin-1 codes are printable will no longer
 | 
|---|
| 209 |             work  in a UTF-8 locale since the ad hoc check of environment
 | 
|---|
| 210 |             variables  to  see  if  the locale was UTF-8 is not used when
 | 
|---|
| 211 |             nl_langinfo(CODESET) is available.
 | 
|---|
| 212 |           + use  setlocale() to query the program's current locale rather
 | 
|---|
| 213 |             than  using  getenv().  This supports applications which rely
 | 
|---|
| 214 |             upon  legacy treatment of 8-bit characters when the locale is
 | 
|---|
| 215 |             not initialized.
 | 
|---|
| 216 | 
 | 
|---|
| 217 |                               Features of Ncurses
 | 
|---|
| 218 | 
 | 
|---|
| 219 |    The ncurses package is fully compatible with SVr4 (System V Release 4)
 | 
|---|
| 220 |    curses:
 | 
|---|
| 221 |      * All  257  of  the  SVr4  calls  have  been  implemented  (and  are
 | 
|---|
| 222 |        documented).
 | 
|---|
| 223 |      * Full  support for SVr4 curses features including keyboard mapping,
 | 
|---|
| 224 |        color,   forms-drawing   with   ACS   characters,   and  automatic
 | 
|---|
| 225 |        recognition of keypad and function keys.
 | 
|---|
| 226 |      * An  emulation  of  the  SVr4 panels library, supporting a stack of
 | 
|---|
| 227 |        windows with backing store, is included.
 | 
|---|
| 228 |      * An  emulation  of the SVr4 menus library, supporting a uniform but
 | 
|---|
| 229 |        flexible interface for menu programming, is included.
 | 
|---|
| 230 |      * An  emulation of the SVr4 form library, supporting data collection
 | 
|---|
| 231 |        through on-screen forms, is included.
 | 
|---|
| 232 |      * Binary   terminfo   entries   generated   by  the  ncurses  tic(1)
 | 
|---|
| 233 |        implementation  are  bit-for-bit-compatible  with the entry format
 | 
|---|
| 234 |        SVr4 curses uses.
 | 
|---|
| 235 |      * The utilities have options to allow you to filter terminfo entries
 | 
|---|
| 236 |        for  use  with  less  capable curses/terminfo versions such as the
 | 
|---|
| 237 |        HP/UX and AIX ports.
 | 
|---|
| 238 | 
 | 
|---|
| 239 |    The ncurses package also has many useful extensions over SVr4:
 | 
|---|
| 240 |      * The  API  is 8-bit clean and base-level conformant with the X/OPEN
 | 
|---|
| 241 |        curses  specification, XSI curses (that is, it implements all BASE
 | 
|---|
| 242 |        level   features,   but   not   all   EXTENDED   features).   Most
 | 
|---|
| 243 |        EXTENDED-level features not directly concerned with wide-character
 | 
|---|
| 244 |        support   are  implemented,  including  many  function  calls  not
 | 
|---|
| 245 |        supported  under  SVr4  curses  (but  portability  of all calls is
 | 
|---|
| 246 |        documented so you can use the SVr4 subset only).
 | 
|---|
| 247 |      * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
 | 
|---|
| 248 |        corner  of  the  screen  if  your terminal has an insert-character
 | 
|---|
| 249 |        capability.
 | 
|---|
| 250 |      * Ada95 and C++ bindings.
 | 
|---|
| 251 |      * Support  for  mouse  event  reporting with X Window xterm and OS/2
 | 
|---|
| 252 |        console windows.
 | 
|---|
| 253 |      * Extended mouse support via Alessandro Rubini's gpm package.
 | 
|---|
| 254 |      * The  function  wresize()  allows you to resize windows, preserving
 | 
|---|
| 255 |        their data.
 | 
|---|
| 256 |      * The function use_default_colors() allows you to use the terminal's
 | 
|---|
| 257 |        default colors for the default color pair, achieving the effect of
 | 
|---|
| 258 |        transparent colors.
 | 
|---|
| 259 |      * The functions keyok() and define_key() allow you to better control
 | 
|---|
| 260 |        the  use  of function keys, e.g., disabling the ncurses KEY_MOUSE,
 | 
|---|
| 261 |        or  by  defining  more than one control sequence to map to a given
 | 
|---|
| 262 |        key code.
 | 
|---|
| 263 |      * Support for 16-color terminals, such as aixterm and XFree86 xterm.
 | 
|---|
| 264 |      * Better  cursor-movement  optimization.  The package now features a
 | 
|---|
| 265 |        cursor-local-movement computation more efficient than either BSD's
 | 
|---|
| 266 |        or System V's.
 | 
|---|
| 267 |      * Super   hardware   scrolling   support.   The  screen-update  code
 | 
|---|
| 268 |        incorporates  a novel, simple, and cheap algorithm that enables it
 | 
|---|
| 269 |        to  make  optimal  use  of hardware scrolling, line-insertion, and
 | 
|---|
| 270 |        line-deletion  for  screen-line  movements. This algorithm is more
 | 
|---|
| 271 |        powerful than the 4.4BSD curses quickch() routine.
 | 
|---|
| 272 |      * Real  support  for  terminals  with  the  magic-cookie glitch. The
 | 
|---|
| 273 |        screen-update  code  will  refrain from drawing a highlight if the
 | 
|---|
| 274 |        magic-   cookie  unattributed  spaces  required  just  before  the
 | 
|---|
| 275 |        beginning  and  after the end would step on a non-space character.
 | 
|---|
| 276 |        It  will  automatically  shift  highlight boundaries when doing so
 | 
|---|
| 277 |        would  make it possible to draw the highlight without changing the
 | 
|---|
| 278 |        visual appearance of the screen.
 | 
|---|
| 279 |      * It  is  possible to generate the library with a list of pre-loaded
 | 
|---|
| 280 |        fallback  entries linked to it so that it can serve those terminal
 | 
|---|
| 281 |        types  even  when  no  terminfo tree or termcap file is accessible
 | 
|---|
| 282 |        (this  may  be useful for support of screen-oriented programs that
 | 
|---|
| 283 |        must run in single-user mode).
 | 
|---|
| 284 |      * The tic(1)/captoinfo utility provided with ncurses has the ability
 | 
|---|
| 285 |        to  translate many termcaps from the XENIX, IBM and AT&T extension
 | 
|---|
| 286 |        sets.
 | 
|---|
| 287 |      * A BSD-like tset(1) utility is provided.
 | 
|---|
| 288 |      * The ncurses library and utilities will automatically read terminfo
 | 
|---|
| 289 |        entries  from  $HOME/.terminfo  if  it exists, and compile to that
 | 
|---|
| 290 |        directory  if  it  exists  and the user has no write access to the
 | 
|---|
| 291 |        system  directory.  This feature makes it easier for users to have
 | 
|---|
| 292 |        personal  terminfo  entries without giving up access to the system
 | 
|---|
| 293 |        terminfo directory.
 | 
|---|
| 294 |      * You  may  specify  a  path  of  directories to search for compiled
 | 
|---|
| 295 |        descriptions  with  the  environment  variable TERMINFO_DIRS (this
 | 
|---|
| 296 |        generalizes  the  feature  provided by TERMINFO under stock System
 | 
|---|
| 297 |        V.)
 | 
|---|
| 298 |      * In  terminfo  source files, use capabilities may refer not just to
 | 
|---|
| 299 |        other entries in the same source file (as in System V) but also to
 | 
|---|
| 300 |        compiled  entries  in  either the system terminfo directory or the
 | 
|---|
| 301 |        user's $HOME/.terminfo directory.
 | 
|---|
| 302 |      * A  script  (capconvert)  is  provided to help BSD users transition
 | 
|---|
| 303 |        from  termcap to terminfo. It gathers the information in a TERMCAP
 | 
|---|
| 304 |        environment  variable  and/or  a ~/.termcap local entries file and
 | 
|---|
| 305 |        converts   it   to   an   equivalent  local  terminfo  tree  under
 | 
|---|
| 306 |        $HOME/.terminfo.
 | 
|---|
| 307 |      * Automatic  fallback  to  the  /etc/termcap file can be compiled in
 | 
|---|
| 308 |        when  it is not possible to build a terminfo tree. This feature is
 | 
|---|
| 309 |        neither  fast  nor cheap, you don't want to use it unless you have
 | 
|---|
| 310 |        to, but it's there.
 | 
|---|
| 311 |      * The  table-of-entries  utility  toe makes it easy for users to see
 | 
|---|
| 312 |        exactly what terminal types are available on the system.
 | 
|---|
| 313 |      * The library meets the XSI requirement that every macro entry point
 | 
|---|
| 314 |        have  a  corresponding  function  which may be linked (and will be
 | 
|---|
| 315 |        prototype-checked)  if  the  macro  definition  is  disabled  with
 | 
|---|
| 316 |        #undef.
 | 
|---|
| 317 |      * An  HTML  "Introduction  to  Programming  with  NCURSES"  document
 | 
|---|
| 318 |        provides  a  narrative  introduction  to  the  curses  programming
 | 
|---|
| 319 |        interface.
 | 
|---|
| 320 | 
 | 
|---|
| 321 |                              State of the Package
 | 
|---|
| 322 | 
 | 
|---|
| 323 |    Numerous bugs present in earlier versions have been fixed; the library
 | 
|---|
| 324 |    is  far  more  reliable  than  it  used to be. Bounds checking in many
 | 
|---|
| 325 |    `dangerous'  entry points has been improved. The code is now type-safe
 | 
|---|
| 326 |    according  to gcc -Wall. The library has been checked for malloc leaks
 | 
|---|
| 327 |    and arena corruption by the Purify memory-allocation tester.
 | 
|---|
| 328 | 
 | 
|---|
| 329 |    The  ncurses  code has been tested with a wide variety of applications
 | 
|---|
| 330 |    including (versions starting with those noted):
 | 
|---|
| 331 | 
 | 
|---|
| 332 |    cdk
 | 
|---|
| 333 |           Curses Development Kit
 | 
|---|
| 334 |           [3]http://invisible-island.net/cdk/
 | 
|---|
| 335 |           [4]http://www.vexus.ca/products/CDK/
 | 
|---|
| 336 | 
 | 
|---|
| 337 |    ded
 | 
|---|
| 338 |           directory-editor
 | 
|---|
| 339 |           [5]http://invisible-island.net/ded/
 | 
|---|
| 340 | 
 | 
|---|
| 341 |    dialog
 | 
|---|
| 342 |           the  underlying  application used in Slackware's setup, and the
 | 
|---|
| 343 |           basis for similar applications on GNU/Linux.
 | 
|---|
| 344 |           [6]http://invisible-island.net/dialog/
 | 
|---|
| 345 | 
 | 
|---|
| 346 |    lynx
 | 
|---|
| 347 |           the character-screen WWW browser
 | 
|---|
| 348 |           [7]http://lynx.isc.org/release/
 | 
|---|
| 349 | 
 | 
|---|
| 350 |    Midnight Commander
 | 
|---|
| 351 |           file manager
 | 
|---|
| 352 |           [8]http://www.ibiblio.org/mc/
 | 
|---|
| 353 | 
 | 
|---|
| 354 |    mutt
 | 
|---|
| 355 |           mail utility
 | 
|---|
| 356 |           [9]http://www.mutt.org/
 | 
|---|
| 357 | 
 | 
|---|
| 358 |    ncftp
 | 
|---|
| 359 |           file-transfer utility
 | 
|---|
| 360 |           [10]http://www.ncftp.com/
 | 
|---|
| 361 | 
 | 
|---|
| 362 |    nvi
 | 
|---|
| 363 |           New vi versions 1.50 are able to use ncurses versions 1.9.7 and
 | 
|---|
| 364 |           later.
 | 
|---|
| 365 |           [11]http://www.bostic.com/vi/
 | 
|---|
| 366 | 
 | 
|---|
| 367 |    pinfo
 | 
|---|
| 368 |           Lynx-like info browser.
 | 
|---|
| 369 |           [12]http://dione.ids.pl/~pborys/software/pinfo/
 | 
|---|
| 370 | 
 | 
|---|
| 371 |    tin
 | 
|---|
| 372 |           newsreader, supporting color, MIME [13]http://www.tin.org/
 | 
|---|
| 373 | 
 | 
|---|
| 374 |    vh-1.6
 | 
|---|
| 375 |           Volks-Hypertext browser for the Jargon File
 | 
|---|
| 376 |           [14]http://www.debian.org/Packages/unstable/text/vh.html
 | 
|---|
| 377 | 
 | 
|---|
| 378 |    as well as some that use ncurses for the terminfo support alone:
 | 
|---|
| 379 | 
 | 
|---|
| 380 |    minicom
 | 
|---|
| 381 |           terminal emulator
 | 
|---|
| 382 |           [15]http://www.netsonic.fi/~walker/minicom.html
 | 
|---|
| 383 | 
 | 
|---|
| 384 |    vile
 | 
|---|
| 385 |           vi-like-emacs
 | 
|---|
| 386 |           [16]http://invisible-island.net/vile/
 | 
|---|
| 387 | 
 | 
|---|
| 388 |    The  ncurses  distribution  includes  a  selection  of  test  programs
 | 
|---|
| 389 |    (including a few games).
 | 
|---|
| 390 | 
 | 
|---|
| 391 | Who's Who and What's What
 | 
|---|
| 392 | 
 | 
|---|
| 393 |    Zeyd  Ben-Halim started it from a previous package pcurses, written by
 | 
|---|
| 394 |    Pavel  Curtis.  Eric  S. Raymond continued development. Jürgen Pfeifer
 | 
|---|
| 395 |    wrote  most of the form and menu libraries. Ongoing work is being done
 | 
|---|
| 396 |    by  [17]Thomas  Dickey.  Thomas  Dickey acts as the maintainer for the
 | 
|---|
| 397 |    Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
 | 
|---|
| 398 |    Contact the current maintainers at [18]bug-ncurses@gnu.org.
 | 
|---|
| 399 | 
 | 
|---|
| 400 |    To   join   the   ncurses   mailing   list,   please  write  email  to
 | 
|---|
| 401 |    bug-ncurses-request@gnu.org containing the line:
 | 
|---|
| 402 |              subscribe <name>@<host.domain>
 | 
|---|
| 403 | 
 | 
|---|
| 404 |    This list is open to anyone interested in helping with the development
 | 
|---|
| 405 |    and testing of this package.
 | 
|---|
| 406 | 
 | 
|---|
| 407 |    Beta  versions  of ncurses and patches to the current release are made
 | 
|---|
| 408 |    available at [19]ftp://invisible-island.net/ncurses/ .
 | 
|---|
| 409 | 
 | 
|---|
| 410 | Future Plans
 | 
|---|
| 411 | 
 | 
|---|
| 412 |      * Extended-level   XPG4   conformance,   with   internationalization
 | 
|---|
| 413 |        support.
 | 
|---|
| 414 |      * Ports to more systems, including DOS and Windows.
 | 
|---|
| 415 | 
 | 
|---|
| 416 |    We  need  people to help with these projects. If you are interested in
 | 
|---|
| 417 |    working on them, please join the ncurses list.
 | 
|---|
| 418 | 
 | 
|---|
| 419 | Other Related Resources
 | 
|---|
| 420 | 
 | 
|---|
| 421 |    The  distribution  provides  a  newer  version  of the terminfo-format
 | 
|---|
| 422 |    terminal  description file maintained by [20]Eric Raymond . Unlike the
 | 
|---|
| 423 |    older  version, the termcap and terminfo data are provided in the same
 | 
|---|
| 424 |    file.
 | 
|---|
| 425 | 
 | 
|---|
| 426 |    You  can  find  lots  of  information  on  terminal-related topics not
 | 
|---|
| 427 |    covered in the terminfo file at [21]Richard Shuford's archive .
 | 
|---|
| 428 | 
 | 
|---|
| 429 | References
 | 
|---|
| 430 | 
 | 
|---|
| 431 |    1. ftp://ftp.gnu.org/gnu/ncurses/
 | 
|---|
| 432 |    2. ftp://invisible-island.net/ncurses/
 | 
|---|
| 433 |    3. http://invisible-island.net/cdk/
 | 
|---|
| 434 |    4. http://www.vexus.ca/products/CDK/
 | 
|---|
| 435 |    5. http://invisible-island.net/ded/
 | 
|---|
| 436 |    6. http://invisible-island.net/dialog/
 | 
|---|
| 437 |    7. http://lynx.isc.org/release/
 | 
|---|
| 438 |    8. http://www.ibiblio.org/mc/
 | 
|---|
| 439 |    9. http://www.mutt.org/
 | 
|---|
| 440 |   10. http://www.ncftp.com/
 | 
|---|
| 441 |   11. http://www.bostic.com/vi/
 | 
|---|
| 442 |   12. http://dione.ids.pl/~pborys/software/pinfo/
 | 
|---|
| 443 |   13. http://www.tin.org/
 | 
|---|
| 444 |   14. http://www.debian.org/Packages/unstable/text/vh.html
 | 
|---|
| 445 |   15. http://www.netsonic.fi/~walker/minicom.html
 | 
|---|
| 446 |   16. http://invisible-island.net/vile/
 | 
|---|
| 447 |   17. mailto:dickey@invisible-island.net
 | 
|---|
| 448 |   18. mailto:bug-ncurses@gnu.org
 | 
|---|
| 449 |   19. ftp://invisible-island.net/ncurses/
 | 
|---|
| 450 |   20. http://www.catb.org/~esr/terminfo/
 | 
|---|
| 451 |   21. http://www.cs.utk.edu/~shuford/terminal_index.html
 | 
|---|