11933c5f6d55f4f21e79e0829da3c801365977ce
[ncurses.git] / ANNOUNCE
1                             Announcing ncurses 5.9
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.8;  very  few  applications  will  require  recompilation,
31    depending   on  the  platform.  These  are  the  highlights  from  the
32    change-log since ncurses 5.8 release.
33
34    This  is  a  bug-fix  release,  correcting  a  small  number of urgent
35    problems in the ncurses library from the 5.8 release.
36
37    It also improves the Ada95 binding:
38      * fixes  a  longstanding  portability  problem  with  its use of the
39        [3]set_field_type    function.    Because   that   function   uses
40        variable-length  argument  lists, its interface with gnat does not
41        work with certain platforms.
42      * improves  configurability and portability, particularly when built
43        separately  from the main ncurses tree. The 5.8 release introduced
44        scripts  which  can be used to construct separate tarballs for the
45        Ada95 and ncurses examples.
46        Those  were a proof of concept. For the 5.9 release, those scripts
47        are  augmented  with  rpm-  and  dpkg-scripts  used in test builds
48        against  a  variety of gnat- and system ncurses versions as old as
49        gnat  3.15  and  ncurses  5.4  (see  snapshots  and systems tested
50        [4]here.
51      * additional  improvements  were made for portability of the ncurses
52        examples,  adding  rpm-  and  dpkg-scripts  for  test-builds.  See
53        [5]this page for snapshots and other information.
54
55                               Features of Ncurses
56
57    The ncurses package is fully compatible with SVr4 (System V Release 4)
58    curses:
59      * All  257  of  the  SVr4  calls  have  been  implemented  (and  are
60        documented).
61      * Full  support for SVr4 curses features including keyboard mapping,
62        color,   forms-drawing   with   ACS   characters,   and  automatic
63        recognition of keypad and function keys.
64      * An  emulation  of  the  SVr4 panels library, supporting a stack of
65        windows with backing store, is included.
66      * An  emulation  of the SVr4 menus library, supporting a uniform but
67        flexible interface for menu programming, is included.
68      * An  emulation of the SVr4 form library, supporting data collection
69        through on-screen forms, is included.
70      * Binary   terminfo   entries   generated   by  the  ncurses  tic(1)
71        implementation  are  bit-for-bit-compatible  with the entry format
72        SVr4 curses uses.
73      * The utilities have options to allow you to filter terminfo entries
74        for  use  with  less  capable curses/terminfo versions such as the
75        HP/UX and AIX ports.
76
77    The ncurses package also has many useful extensions over SVr4:
78      * The  API  is 8-bit clean and base-level conformant with the X/OPEN
79        curses  specification, XSI curses (that is, it implements all BASE
80        level  features,  and  most  EXTENDED  features). It includes many
81        function calls not supported under SVr4 curses (but portability of
82        all calls is documented so you can use the SVr4 subset only).
83      * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
84        corner  of  the  screen  if  your terminal has an insert-character
85        capability.
86      * Ada95 and C++ bindings.
87      * Support  for mouse event reporting with X Window xterm and FreeBSD
88        and OS/2 console windows.
89      * Extended mouse support via Alessandro Rubini's gpm package.
90      * The  function  wresize  allows  you  to resize windows, preserving
91        their data.
92      * The  function  use_default_colors allows you to use the terminal's
93        default colors for the default color pair, achieving the effect of
94        transparent colors.
95      * The functions keyok and define_key allow you to better control the
96        use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
97        defining  more  than  one  control  sequence to map to a given key
98        code.
99      * Support  for  256-color  terminals,  such  as  modern  xterm, when
100        configured using the --enable-ext-colors option.
101      * Support for 16-color terminals, such as aixterm and modern xterm.
102      * Better  cursor-movement  optimization.  The package now features a
103        cursor-local-movement computation more efficient than either BSD's
104        or System V's.
105      * Super   hardware   scrolling   support.   The  screen-update  code
106        incorporates  a novel, simple, and cheap algorithm that enables it
107        to  make  optimal  use  of hardware scrolling, line-insertion, and
108        line-deletion  for  screen-line  movements. This algorithm is more
109        powerful than the 4.4BSD curses quickch routine.
110      * Real  support  for  terminals  with  the  magic-cookie glitch. The
111        screen-update  code  will  refrain from drawing a highlight if the
112        magic-   cookie  unattributed  spaces  required  just  before  the
113        beginning  and  after the end would step on a non-space character.
114        It  will  automatically  shift  highlight boundaries when doing so
115        would  make it possible to draw the highlight without changing the
116        visual appearance of the screen.
117      * It  is  possible to generate the library with a list of pre-loaded
118        fallback  entries linked to it so that it can serve those terminal
119        types  even  when  no  terminfo tree or termcap file is accessible
120        (this  may  be useful for support of screen-oriented programs that
121        must run in single-user mode).
122      * The tic(1)/captoinfo utility provided with ncurses has the ability
123        to  translate many termcaps from the XENIX, IBM and AT&T extension
124        sets.
125      * A BSD-like tset(1) utility is provided.
126      * The ncurses library and utilities will automatically read terminfo
127        entries  from  $HOME/.terminfo  if  it exists, and compile to that
128        directory  if  it  exists  and the user has no write access to the
129        system  directory.  This feature makes it easier for users to have
130        personal  terminfo  entries without giving up access to the system
131        terminfo directory.
132      * You  may  specify  a  path  of  directories to search for compiled
133        descriptions  with  the  environment  variable TERMINFO_DIRS (this
134        generalizes  the  feature  provided by TERMINFO under stock System
135        V.)
136      * In  terminfo  source files, use capabilities may refer not just to
137        other entries in the same source file (as in System V) but also to
138        compiled  entries  in  either the system terminfo directory or the
139        user's $HOME/.terminfo directory.
140      * A  script  (capconvert)  is  provided to help BSD users transition
141        from  termcap to terminfo. It gathers the information in a TERMCAP
142        environment  variable  and/or  a ~/.termcap local entries file and
143        converts   it   to   an   equivalent  local  terminfo  tree  under
144        $HOME/.terminfo.
145      * Automatic  fallback  to  the  /etc/termcap file can be compiled in
146        when  it is not possible to build a terminfo tree. This feature is
147        neither  fast  nor cheap, you don't want to use it unless you have
148        to, but it's there.
149      * The  table-of-entries  utility  toe makes it easy for users to see
150        exactly what terminal types are available on the system.
151      * The library meets the XSI requirement that every macro entry point
152        have  a  corresponding  function  which may be linked (and will be
153        prototype-checked)  if  the  macro  definition  is  disabled  with
154        #undef.
155      * An  HTML  "Introduction  to  Programming  with  NCURSES"  document
156        provides  a  narrative  introduction  to  the  curses  programming
157        interface.
158
159                              State of the Package
160
161    Numerous bugs present in earlier versions have been fixed; the library
162    is  far  more  reliable  than  it  used to be. Bounds checking in many
163    `dangerous'  entry points has been improved. The code is now type-safe
164    according  to gcc -Wall. The library has been checked for malloc leaks
165    and arena corruption by the Purify memory-allocation tester.
166
167    The  ncurses  code has been tested with a wide variety of applications
168    including (versions starting with those noted):
169
170    cdk
171           Curses Development Kit
172           [6]http://invisible-island.net/cdk/
173           [7]http://www.vexus.ca/products/CDK/
174
175    ded
176           directory-editor
177           [8]http://invisible-island.net/ded/
178
179    dialog
180           the  underlying  application used in Slackware's setup, and the
181           basis for similar applications on GNU/Linux.
182           [9]http://invisible-island.net/dialog/
183
184    lynx
185           the character-screen WWW browser
186           [10]http://lynx.isc.org/release/
187
188    Midnight Commander
189           file manager
190           [11]http://www.midnight-commander.org/
191
192    mutt
193           mail utility
194           [12]http://www.mutt.org/
195
196    ncftp
197           file-transfer utility
198           [13]http://www.ncftp.com/
199
200    nvi
201           New vi versions 1.50 are able to use ncurses versions 1.9.7 and
202           later.
203           [14]https://sites.google.com/a/bostic.com/keithbostic/nvi
204
205    pinfo
206           Lynx-like info browser.
207           [15]https://alioth.debian.org/projects/pinfo/
208
209    tin
210           newsreader, supporting color, MIME [16]http://www.tin.org/
211
212    as well as some that use ncurses for the terminfo support alone:
213
214    minicom
215           terminal emulator
216           [17]http://alioth.debian.org/projects/minicom/
217
218    vile
219           vi-like-emacs
220           [18]http://invisible-island.net/vile/
221
222    The  ncurses  distribution  includes  a  selection  of  test  programs
223    (including a few games).
224
225 Who's Who and What's What
226
227    Zeyd  Ben-Halim started it from a previous package pcurses, written by
228    Pavel  Curtis.  Eric S. Raymond continued development. Juergen Pfeifer
229    wrote  most of the form and menu libraries. Ongoing work is being done
230    by  [19]Thomas  Dickey.  Thomas  Dickey acts as the maintainer for the
231    Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
232    Contact the current maintainers at [20]bug-ncurses@gnu.org.
233
234    To   join   the   ncurses   mailing   list,   please  write  email  to
235    bug-ncurses-request@gnu.org containing the line:
236              subscribe <name>@<host.domain>
237
238    This list is open to anyone interested in helping with the development
239    and testing of this package.
240
241    Beta  versions  of ncurses and patches to the current release are made
242    available at [21]ftp://invisible-island.net/ncurses/ .
243
244 Future Plans
245
246      * Extended-level   XPG4   conformance,   with   internationalization
247        support.
248      * Ports to more systems, including DOS and Windows.
249
250    We  need  people to help with these projects. If you are interested in
251    working on them, please join the ncurses list.
252
253 Other Related Resources
254
255    The  distribution  provides  a  newer  version  of the terminfo-format
256    terminal description file once maintained by [22]Eric Raymond . Unlike
257    the  older  version, the termcap and terminfo data are provided in the
258    same  file,  and provides several user-definable extensions beyond the
259    X/Open specification.
260
261    You  can  find  lots  of  information  on  terminal-related topics not
262    covered in the terminfo file at [23]Richard Shuford's archive .
263
264 References
265
266    1. ftp://ftp.gnu.org/gnu/ncurses/
267    2. ftp://invisible-island.net/ncurses/
268    3. http://invisible-island.net/ncurses/man/form_fieldtype.3x
269    4. http://invisible-island.net/ncurses/ncurses-Ada95.html
270    5. http://invisible-island.net/ncurses/ncurses-examples.html
271    6. http://invisible-island.net/cdk/
272    7. http://www.vexus.ca/products/CDK/
273    8. http://invisible-island.net/ded/
274    9. http://invisible-island.net/dialog/
275   10. http://lynx.isc.org/release/
276   11. http://www.midnight-commander.org/
277   12. http://www.mutt.org/
278   13. http://www.ncftp.com/
279   14. https://sites.google.com/a/bostic.com/keithbostic/nvi
280   15. https://alioth.debian.org/projects/pinfo/
281   16. http://www.tin.org/
282   17. http://alioth.debian.org/projects/minicom/
283   18. http://invisible-island.net/vile/
284   19. mailto:dickey@invisible-island.net
285   20. mailto:bug-ncurses@gnu.org
286   21. ftp://invisible-island.net/ncurses/
287   22. http://www.catb.org/~esr/terminfo/
288   23. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal