ncurses 5.9 - patch 20131019
[ncurses.git] / ANNOUNCE
index e09e73177a45557238edf8d979c8ac5a3b665a66..11933c5f6d55f4f21e79e0829da3c801365977ce 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-                            Announcing ncurses 5.7
+                            Announcing ncurses 5.9
 
    The  ncurses  (new  curses)  library  is  a free software emulation of
    curses  in  System  V  Release 4.0, and more. It uses terminfo format,
                                  Release Notes
 
    This  release  is  designed  to  be upward compatible from ncurses 5.0
-   through   5.6;  very  few  applications  will  require  recompilation,
+   through   5.8;  very  few  applications  will  require  recompilation,
    depending   on  the  platform.  These  are  the  highlights  from  the
-   change-log since ncurses 5.6 release.
-
-   Interface changes:
-     * generate linkable stubs for some macros:
-       getattrs
-
-   New features and improvements:
-     * library
-          + new  flavor  of  the  ncurses  library  provides  rudimentary
-            support  for  POSIX threads. Several functions are reentrant,
-            but most require either a window-level or screen-level mutex.
-            (This  is  API-compatible,  but  not  ABI-compatible with the
-            normal library).
-          + add  NCURSES_OPAQUE  symbol  to  curses.h,  will  use to make
-            structs opaque in selected configurations.
-          + add   NCURSES_EXT_FUNCS  and  NCURSES_EXT_COLORS  symbols  to
-            curses.h to make it simpler to tell if the extended functions
-            and/or colors are declared.
-          + add wresize() to C++ binding
-          + eliminate fixed-buffer vsprintf() calls in C++ binding.
-          + add  several  functions to C++ binding which wrap C functions
-            that pass a WINDOW* parameter.
-          + adapt mouse-handling code from menu library in form-library
-          + improve  tracing  for  form  library,  showing created forms,
-            fields, etc.
-          + make $NCURSES_NO_PADDING feature work for termcap interface .
-          + add  check  to  trace-file  open,  if  the  given  name  is a
-            directory, add ".log" to the name and try again.
-          + several   new   manpages:  curs_legacy.3x,  curs_memleaks.3x,
-            curs_opaque.3x and curs_threads.3x
-     * programs:
-          + modified  three  test-programs  to  demonstrate the threading
-            support in this version: ditto, rain, worm.
-          + several    new    test-programs:   demo_panels,   dots_mvcur,
-            inch_wide,    inchs,    key_name,    key_names,   savescreen,
-            savescreen.sh    test_arrays,   test_get_wstr,   test_getstr,
-            test_instr, test_inwstr and test_opaque.
-          + add adacurses-config to the Ada95 install.
-          + modify  tic  -f option to format spaces as \s to prevent them
-            from  being  lost  when  that  is  read  back  in unformatted
-            strings.
-          + The tack program is now distributed separately from ncurses.
-     * terminal database
-          + added entries:
-               o Eterm-256color, Eterm-88color and rxvt-88color
-               o aterm
-               o konsole-256color
-               o mrxvt
-               o screen.mlterm
-               o screen.rxvt
-               o teraterm4.59  is now the primary primary teraterm entry,
-                 renamed original to teraterm2.3
-               o 9term terminal
-               o Newbury Data entries
-          + updated/improved entries:
-               o gnome to version 2.22.3
-               o h19, z100
-               o konsole to version 1.6.6
-               o mlterm, mlterm+pcfkeys
-               o xterm, and building-blocks for function-keys to [3]xterm
-                 patch #230.
-
-   Major bug fixes:
-     * add   logic   to   tic  for  cancelling  strings  in  user-defined
-       capabilities (this is needed for current konsole terminfo entry).
-     * modify  mk-1st.awk  so the generated makefile rules for linking or
-       installing  shared  libraries  do not first remove the library, in
-       case it is in use, e.g., libncurses.so by /bin/sh.
-     * correct check for notimeout() in wgetch().
-     * fix a sign-extension bug in infocmp's repair_acsc() function.
-     * change winnstr() to stop at the end of the line.
-     * make Ada95 demo_panels() example work.
-     * fix for adding a non-spacing character at the beginning of a line.
-     * fill   in   extended-color   pair   to   make   colors   work  for
-       wide-characters using extended-colors.
-     * improve  refresh  of  window  on  top  of multi-column characters,
-       taking   into   account  split  characters  on  left/right  window
-       boundaries.
-     * modify  win_wchnstr()  to ensure that only a base cell is returned
-       for each multi-column character.
-     * improve waddch() and winsch() handling of EILSEQ from mbrtowc() by
-       using  unctrl()  to  display  illegal  bytes rather than trying to
-       append further bytes to make up a valid sequence.
-     * restore curs_set() state after endwin()/refresh()
-     * modify  keyname() to use "^X" form only if meta() has been called,
-       or  if  keyname() is called without initializing curses, e.g., via
-       initscr() or newterm().
-     * modify  unctrl() to check codes in 128-255 range versus isprint().
-       If  they  are not printable, and locale was set, use a "M-" or "~"
-       sequence.
-     * improve  resizeterm()  by  moving ripped-off lines, and repainting
-       the soft-keys.
-     * modify  form  library to accept control characters such as newline
-       in set_field_buffer(), which is compatible with Solaris.
-     * use  NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc.,
-       to   make   those   work   properly  with  the  --enable-ext-mouse
-       configuration
-     * correct  some  functions  in Ada95 binding which were using return
-       value from C where none was returned.
-     * reviewed/fixed issues reported by Coverity and Klocwork tools.
-
-   Portability:
-     * configure script:
-          + new options:
-
-              --disable-big-strings
-                      control  whether static string tables are generated
-                      as   single   large  strings  (to  improve  startup
-                      performance), or as array of individual strings.
-
-              --disable-relink
-                      control   whether  shared  libraries  are  relinked
-                      (during install) when rpath is enabled.
-
-              --disable-tic-depends
-                      make   explicit  whether  tic  library  depends  on
-                      ncurses/ncursesw library.
-
-              --enable-mixed-case
-                      override   the  configure  script's  check  if  the
-                      filesystem   supports  mixed-case  filenames.  This
-                      allows  one  to  control  how the terminal database
-                      maps to the filesystem. For filesystems that do not
-                      support   mixed-case,  the  library  uses  generate
-                      2-character (hexadecimal) codes for the lower-level
-                      of the filesystem terminfo database
-
-              --enable-reentrant
-                      builds  a  different  flavor of the ncurses library
-                      (ncursest)  which  improves  reentrant  use  of the
-                      library  by  reducing  global  and static variables
-                      (see  the  "--with-pthread" option for the threaded
-                      support).
-
-              --enable-weak-symbols
-                      use  weak-symbols  for  linking to the POSIX thread
-                      library,  and  use  the same soname for the ncurses
-                      shared  library  as the normal library (caveat: the
-                      ABI is for the threaded library, which makes global
-                      data accessed via functions).
-
-              --with-pthread
-                      build  with  the  POSIX thread library (tested with
-                      AIX,   Linux,   FreeBSD,   OpenBSD,  HPUX,  IRIX64,
-                      Solaris, Tru64).
-
-              --with-ticlib
-                      build/install   the   tic-support  functions  in  a
-                      separate library
-
-          + improved options:
-
-              --enable-ext-colors
-                      requires the wide-character configuration.
-
-              --with-chtype
-                      ignore  option  value "unsigned" is always added to
-                      the   type   in   curses.h;   do   the   same   for
-                      --with-mmask-t.
-
-              --with-dmalloc
-                      build-fix for redefinition of strndup.
-
-              --with-hashed-db
-                      accepts  a parameter which is the install-prefix of
-                      a given Berkeley Database.
-
-              --with-hashed-db
-                      the $LIBS environment variable overrides the search
-                      for the db library.
-
-              --without-hashed-db
-                      assumed when "--disable-database" is used.
-
-     * other configure/build issues:
-          + build-fixes for LynxOS
-          + modify  shared-library  rules  to  allow  FreeBSD  3.x to use
-            rpath.
-          + build-fix for FreeBSD "contemporary" TTY interface.
-          + build-fixes for AIX with libtool.
-          + build-fixes for Darwin and libtool.
-          + modify BeOS-specific ifdef's to build on Haiku.
-          + corrected  gcc  options  for  building  shared  libraries  on
-            Solaris and IRIX64.
-          + change  shared-library  configuration for OpenBSD, make rpath
-            work.
-          + build-fixes for using libutf8, e.g., on OpenBSD 3.7
-          + add   "-e"  option  in  ncurses/Makefile.in  when  generating
-            source-files  to  force earlier exit if the build environment
-            fails unexpectedly.
-          + add support for shared libraries for QNX.
-          + change  delimiter  in  MKlib_gen.sh from '%' to '@', to avoid
-            substitution  by  IBM xlc to '#' as part of its extensions to
-            digraphs.
-     * library:
-          + rewrite  wrapper  for  wcrtomb(),  making it work on Solaris.
-            This  is  used in the form library to determine the length of
-            the buffer needed by field_buffer.
-          + add/use  configure  script  macro  CF_SIG_ATOMIC_T,  use  the
-            corresponding type for data manipulated by signal handlers.
-          + set locale in misc/ncurses-config.in since it uses a range
-          + disable  GPM  mouse  support  when  $TERM  does not happen to
-            contain  "linux",  since  Gpm_Open()  no  longer  limits  its
-            assertion  to  terminals  that  it might handle, e.g., within
-            "screen" in xterm.
-          + reset mouse file-descriptor when unloading GPM library.
-     * test programs:
-          + update  test  programs to build/work with various UNIX curses
-            for comparisons.
+   change-log since ncurses 5.8 release.
+
+   This  is  a  bug-fix  release,  correcting  a  small  number of urgent
+   problems in the ncurses library from the 5.8 release.
+
+   It also improves the Ada95 binding:
+     * fixes  a  longstanding  portability  problem  with  its use of the
+       [3]set_field_type    function.    Because   that   function   uses
+       variable-length  argument  lists, its interface with gnat does not
+       work with certain platforms.
+     * improves  configurability and portability, particularly when built
+       separately  from the main ncurses tree. The 5.8 release introduced
+       scripts  which  can be used to construct separate tarballs for the
+       Ada95 and ncurses examples.
+       Those  were a proof of concept. For the 5.9 release, those scripts
+       are  augmented  with  rpm-  and  dpkg-scripts  used in test builds
+       against  a  variety of gnat- and system ncurses versions as old as
+       gnat  3.15  and  ncurses  5.4  (see  snapshots  and systems tested
+       [4]here.
+     * additional  improvements  were made for portability of the ncurses
+       examples,  adding  rpm-  and  dpkg-scripts  for  test-builds.  See
+       [5]this page for snapshots and other information.
 
                               Features of Ncurses
 
      * Support  for mouse event reporting with X Window xterm and FreeBSD
        and OS/2 console windows.
      * Extended mouse support via Alessandro Rubini's gpm package.
-     * The  function  wresize()  allows you to resize windows, preserving
+     * The  function  wresize  allows  you  to resize windows, preserving
        their data.
-     * The function use_default_colors() allows you to use the terminal's
+     * The  function  use_default_colors allows you to use the terminal's
        default colors for the default color pair, achieving the effect of
        transparent colors.
-     * The functions keyok() and define_key() allow you to better control
-       the  use  of function keys, e.g., disabling the ncurses KEY_MOUSE,
-       or  by  defining  more than one control sequence to map to a given
-       key code.
+     * The functions keyok and define_key allow you to better control the
+       use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
+       defining  more  than  one  control  sequence to map to a given key
+       code.
      * Support  for  256-color  terminals,  such  as  modern  xterm, when
        configured using the --enable-ext-colors option.
      * Support for 16-color terminals, such as aixterm and modern xterm.
        incorporates  a novel, simple, and cheap algorithm that enables it
        to  make  optimal  use  of hardware scrolling, line-insertion, and
        line-deletion  for  screen-line  movements. This algorithm is more
-       powerful than the 4.4BSD curses quickch() routine.
+       powerful than the 4.4BSD curses quickch routine.
      * Real  support  for  terminals  with  the  magic-cookie glitch. The
        screen-update  code  will  refrain from drawing a highlight if the
        magic-   cookie  unattributed  spaces  required  just  before  the
 
    cdk
           Curses Development Kit
-          [4]http://invisible-island.net/cdk/
-          [5]http://www.vexus.ca/products/CDK/
+          [6]http://invisible-island.net/cdk/
+          [7]http://www.vexus.ca/products/CDK/
 
    ded
           directory-editor
-          [6]http://invisible-island.net/ded/
+          [8]http://invisible-island.net/ded/
 
    dialog
           the  underlying  application used in Slackware's setup, and the
           basis for similar applications on GNU/Linux.
-          [7]http://invisible-island.net/dialog/
+          [9]http://invisible-island.net/dialog/
 
    lynx
           the character-screen WWW browser
-          [8]http://lynx.isc.org/release/
+          [10]http://lynx.isc.org/release/
 
    Midnight Commander
           file manager
-          [9]http://www.ibiblio.org/mc/
+          [11]http://www.midnight-commander.org/
 
    mutt
           mail utility
-          [10]http://www.mutt.org/
+          [12]http://www.mutt.org/
 
    ncftp
           file-transfer utility
-          [11]http://www.ncftp.com/
+          [13]http://www.ncftp.com/
 
    nvi
           New vi versions 1.50 are able to use ncurses versions 1.9.7 and
           later.
-          [12]http://www.bostic.com/vi/
+          [14]https://sites.google.com/a/bostic.com/keithbostic/nvi
 
    pinfo
           Lynx-like info browser.
-          [13]https://alioth.debian.org/projects/pinfo/
+          [15]https://alioth.debian.org/projects/pinfo/
 
    tin
-          newsreader, supporting color, MIME [14]http://www.tin.org/
+          newsreader, supporting color, MIME [16]http://www.tin.org/
 
    as well as some that use ncurses for the terminfo support alone:
 
    minicom
           terminal emulator
-          [15]http://alioth.debian.org/projects/minicom/
+          [17]http://alioth.debian.org/projects/minicom/
 
    vile
           vi-like-emacs
-          [16]http://invisible-island.net/vile/
+          [18]http://invisible-island.net/vile/
 
    The  ncurses  distribution  includes  a  selection  of  test  programs
    (including a few games).
 Who's Who and What's What
 
    Zeyd  Ben-Halim started it from a previous package pcurses, written by
-   Pavel  Curtis.  Eric  S. Raymond continued development. Jürgen Pfeifer
+   Pavel  Curtis.  Eric S. Raymond continued development. Juergen Pfeifer
    wrote  most of the form and menu libraries. Ongoing work is being done
-   by  [17]Thomas  Dickey.  Thomas  Dickey acts as the maintainer for the
+   by  [19]Thomas  Dickey.  Thomas  Dickey acts as the maintainer for the
    Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
-   Contact the current maintainers at [18]bug-ncurses@gnu.org.
+   Contact the current maintainers at [20]bug-ncurses@gnu.org.
 
    To   join   the   ncurses   mailing   list,   please  write  email  to
    bug-ncurses-request@gnu.org containing the line:
@@ -426,7 +239,7 @@ Who's Who and What's What
    and testing of this package.
 
    Beta  versions  of ncurses and patches to the current release are made
-   available at [19]ftp://invisible-island.net/ncurses/ .
+   available at [21]ftp://invisible-island.net/ncurses/ .
 
 Future Plans
 
@@ -440,34 +253,36 @@ Future Plans
 Other Related Resources
 
    The  distribution  provides  a  newer  version  of the terminfo-format
-   terminal description file once maintained by [20]Eric Raymond . Unlike
+   terminal description file once maintained by [22]Eric Raymond . Unlike
    the  older  version, the termcap and terminfo data are provided in the
    same  file,  and provides several user-definable extensions beyond the
    X/Open specification.
 
    You  can  find  lots  of  information  on  terminal-related topics not
-   covered in the terminfo file at [21]Richard Shuford's archive .
+   covered in the terminfo file at [23]Richard Shuford's archive .
 
 References
 
    1. ftp://ftp.gnu.org/gnu/ncurses/
    2. ftp://invisible-island.net/ncurses/
-   3. http://invisible-island.net/xterm/xterm.log.html#xterm_230
-   4. http://invisible-island.net/cdk/
-   5. http://www.vexus.ca/products/CDK/
-   6. http://invisible-island.net/ded/
-   7. http://invisible-island.net/dialog/
-   8. http://lynx.isc.org/release/
-   9. http://www.ibiblio.org/mc/
-  10. http://www.mutt.org/
-  11. http://www.ncftp.com/
-  12. http://www.bostic.com/vi/
-  13. https://alioth.debian.org/projects/pinfo/
-  14. http://www.tin.org/
-  15. http://alioth.debian.org/projects/minicom/
-  16. http://invisible-island.net/vile/
-  17. mailto:dickey@invisible-island.net
-  18. mailto:bug-ncurses@gnu.org
-  19. ftp://invisible-island.net/ncurses/
-  20. http://www.catb.org/~esr/terminfo/
-  21. http://www.cs.utk.edu/~shuford/terminal_index.html
+   3. http://invisible-island.net/ncurses/man/form_fieldtype.3x
+   4. http://invisible-island.net/ncurses/ncurses-Ada95.html
+   5. http://invisible-island.net/ncurses/ncurses-examples.html
+   6. http://invisible-island.net/cdk/
+   7. http://www.vexus.ca/products/CDK/
+   8. http://invisible-island.net/ded/
+   9. http://invisible-island.net/dialog/
+  10. http://lynx.isc.org/release/
+  11. http://www.midnight-commander.org/
+  12. http://www.mutt.org/
+  13. http://www.ncftp.com/
+  14. https://sites.google.com/a/bostic.com/keithbostic/nvi
+  15. https://alioth.debian.org/projects/pinfo/
+  16. http://www.tin.org/
+  17. http://alioth.debian.org/projects/minicom/
+  18. http://invisible-island.net/vile/
+  19. mailto:dickey@invisible-island.net
+  20. mailto:bug-ncurses@gnu.org
+  21. ftp://invisible-island.net/ncurses/
+  22. http://www.catb.org/~esr/terminfo/
+  23. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal