ncurses 5.7 - patch 20090207
[ncurses.git] / ANNOUNCE
index bbeeb8922d4724c0b184b8de901cfb0d99577bb5..e09e73177a45557238edf8d979c8ac5a3b665a66 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-                            Announcing ncurses 5.6
+                            Announcing ncurses 5.7
 
    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.5;  very  few  applications  will  require  recompilation,
+   through   5.6;  very  few  applications  will  require  recompilation,
    depending   on  the  platform.  These  are  the  highlights  from  the
-   change-log since ncurses 5.5 release.
+   change-log since ncurses 5.6 release.
 
    Interface changes:
      * generate linkable stubs for some macros:
-       getbegx,  getbegy,  getcurx,  getcury,  getmaxx, getmaxy, getparx,
-       getpary, getpary,
-       and (for libncursesw)
-       wgetbkgrnd
+       getattrs
 
    New features and improvements:
      * library
-          + support  hashed databases for the terminal descriptions. This
-            uses  the  Berkeley  database,  has  been  tested for several
-            versions on different platforms.
-          + add    use_legacy_coding()   function   to   support   lynx's
-            font-switching feature.
-          + add extension nofilter(), to cancel a prior filter() call.
-          + add/install a package config script, e.g., ncurses5-config or
-            ncursesw5-config, according to configuration options.
-          + provide  ifdef  for  NCURSES_NOMACROS  which  suppresses most
-            macro  definitions  from  curses.h,  i.e.,  where  a macro is
-            defined to override a function to improve performance.
-          + make  ifdef's  consistent in curses.h for the extended colors
-            so the header file can be used for the normal curses library.
-            The  header file installed for extended colors is a variation
-            of the wide-character configuration.
-          + improve  tgetstr()  by making the return value point into the
-            user's buffer, if provided.
-          + add  ifdef's  allowing ncurses to be built with tparm() using
-            either   varargs   (the   existing   status),   or   using  a
-            fixed-parameter list (to match X/Open).
-          + widen  the  test  for xterm kmous a little to allow for other
-            strings  than  "\E[M",  e.g.,  for xterm-sco functionality in
-            xterm.
-          + modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs.
-          + move  prototypes  for  wide-character  trace  functions  from
-            curses.tail  to  curses.wide to avoid accidental reference to
-            those  if  _XOPEN_SOURCE_EXTENDED is defined without ensuring
-            that <wchar.h> is included.
-          + change  the  way  shared  libraries  (other than libtool) are
-            installed.  Rather  than  copying the build-tree's libraries,
-            link  the  shared  objects  into  the install directory. This
-            makes the --with-rpath option work except with $(DESTDIR).
-          + several  improvements for rendering in hpterm. These are only
-            available    if    the    library    is    configured   using
-            --enable-xmc-glitch.
-          + Add    NCURSES_NO_HARD_TABS    and    NCURSES_NO_MAGIC_COOKIE
-            environment  variables  to  allow  runtime suppression of the
-            related hard-tabs and xmc-glitch features.
+          + 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:
-          + add  new  test programs: chgat.c, demo_altkeys.c, echochar.c,
-            foldkeys.c,  movewindow.c,  redraw.c,  (noting  that existing
-            test   programs   also   were  modified  to  test  additional
-            features).
-          + modify tack to test extended capability function-key strings.
-          + modify  toe  to  access  termcap  data,  e.g.,  via cgetent()
-            functions, or as a text file if those are not available.
-          + improve infocmp/tic -f option formatting.
-          + add  toe  -a  option,  to  show  all databases. This uses new
-            private  interfaces  in  the  ncurses  library  for iterating
-            through the list of databases.
-          + modify MKfallback.sh to use tic -x when constructing fallback
-            tables  to allow extended capabilities to be retrieved from a
-            fallback entry.
+          + 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
-          + add terminfo entries for xfce terminal (xfce) and multi gnome
-            terminal (mgt)
-          + add nsterm-16color entry
-          + updated mlterm terminfo entry
-          + add kon, kon2 and jfbterm terminfo entry
-          + remove  invis capability from klone+sgr, mainly used by linux
-            entry, since it does not really do this
-          + add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
-          + add  shifted  up/down  arrow  codes  to xterm-new as kind/kri
-            strings
-          + add hpterm-color terminfo entry
-          + add  256color variants of terminfo entries for programs which
-            are reported to implement this feature
-          + correct  order  of use-clauses in rxvt-basic entry which made
-            codes for f1-f4 vt100-style rather than vt220-style.
+          + 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:
-     * correct  a typo in configure --with-bool option for the case where
-       --without-cxx is used.
-     * move  assignment from environment variable ESCDELAY from initscr()
-       down to newterm() so the environment variable affects timeouts for
-       terminals opened with newterm() as well.
-     * modify  werase  to clear multicolumn characters that extend into a
-       derived window.
-     * modify wchgat() to mark updated cells as changed so a refresh will
-       repaint those cells.
-     * correct  logic  in wadd_wch() and wecho_wch(), which did not guard
-       against   passing  the  multi-column  attribute  into  a  call  on
-       waddch(), e.g., using data returned by win_wch()
-     * fix  redrawing  of  windows other than stdscr using wredrawln() by
-       touching the corresponding rows in curscr.
-     * reduce  memory leaks in repeated calls to tgetent() by remembering
-       the  last TERMINAL* value allocated to hold the corresponding data
-       and freeing that if the tgetent() result buffer is the same as the
-       previous call.
-     * modify  read_termtype() so the term_names data is always allocated
-       as part of the str_table, a better fix for a memory leak.
-     * fix  wins_nwstr(),  which  did  not  handle single-column non-8bit
-       codes.
-     * modify  wbkgrnd()  to avoid clearing the A_CHARTEXT attribute bits
-       since those record the state of multicolumn characters.
-     * improve   SIGWINCH   handling  by  postponing  its  effect  during
-       newterm(), etc., when allocating screens.
-     * remove  970913 feature for copying subwindows as they are moved in
-       mvwin().
-     * add checks in waddchnstr() and wadd_wchnstr() to stop copying when
-       a null character is found.
-     * add  some  checks  to  ensure current position is within scrolling
-       region before scrolling on a new line.
-     * add  a  workaround  to  ACS  mapping to allow applications such as
-       test/blue.c  to  use  the "PC ROM" characters by masking them with
-       A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
-       of legacy coding.
+     * 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:
 
-              --with-hashed-db
-                      Use  Berkeley  hashed database for storing terminfo
-                      data  rather  than storing each compiled entry in a
-                      separate binary file within a directory tree.
-
-              --without-dlsym
-                      Do not use dlsym() to load GPM dynamically.
+              --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
 
-              --with-valgrind
-                      Simplify building for testing with valgrind.
+          + improved options:
 
-              --enable-wgetch-events
-                      Compile with experimental wgetch-events code.
+              --enable-ext-colors
+                      requires the wide-character configuration.
 
-              --enable-signed-char
-                      Store booleans in "signed char" rather than "char".
+              --with-chtype
+                      ignore  option  value "unsigned" is always added to
+                      the   type   in   curses.h;   do   the   same   for
+                      --with-mmask-t.
 
-          + improved options:
+              --with-dmalloc
+                      build-fix for redefinition of strndup.
 
-              --disable-largefile
-                      make the option work both ways.
+              --with-hashed-db
+                      accepts  a parameter which is the install-prefix of
+                      a given Berkeley Database.
 
-              --with-gpm
-                      The  option now accepts a parameter, i.e., the name
-                      of the dynamic GPM library to load via dlopen()
+              --with-hashed-db
+                      the $LIBS environment variable overrides the search
+                      for the db library.
 
-              --disable-symlinks
-                      The  option  now allows one to disable symlink() in
-                      tic even when link() does not work.
+              --without-hashed-db
+                      assumed when "--disable-database" is used.
 
      * other configure/build issues:
-          + remove  special  case for Darwin in CF_XOPEN_SOURCE configure
-            macro.
-          + add  configure  check  to  ensure that SIGWINCH is defined on
-            platforms such as OS X which exclude that when _XOPEN_SOURCE,
-            etc., are defined
-          + use  ld's -search_paths_first option on Darwin to work around
-            odd search rules on that platform.
-          + improve  ifdef's for _POSIX_VDISABLE in tset to work with Mac
-            OS X.
-          + modify  configure  script to ensure that if the C compiler is
-            used  rather  than the loader in making shared libraries, the
-            $(CFLAGS) variable is also used.
-          + use  ${CC}  rather  than  ${LD}  in  shared library rules for
-            IRIX64,  Solaris  to help ensure that initialization sections
-            are  provided  for  extra  linkage requirements, e.g., of C++
-            applications.
-          + improve  some  shared-library  configure scripting for Linux,
-            FreeBSD and NetBSD to make --with-shlib-version work.
-          + split    up    dependency   of   names.c   and   codes.c   in
-            ncurses/Makefile to work with parallel make.
-          + modify  MKlib_gen.sh  to  change  preprocessor-expanded _Bool
-            back to bool.
-          + modify progs/Makefile.in to make tput init work properly with
-            cygwin, i.e., do not pass a .exe in the reference string used
-            in check_aliases.
+          + 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:
-          + ignore wide-acs line-drawing characters that wcwidth() claims
-            are  not one-column. This is a workaround for Solaris' broken
-            locale support.
-          + reduce  name-pollution  in  term.h  by removing #define's for
-            HAVE_xxx symbols.
-          + fix #ifdef in c++/internal.h for QNX 6.1
+          + 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:
-          + modify  test/configure script to allow building test programs
-            with PDCurses/X11.
-          + modified  test  programs  to  allow  some to work with NetBSD
-            curses.  Several  do  not  because NetBSD curses implements a
-            subset  of  X/Open  curses,  and  also  lacks  much  of  SVr4
-            additions. But it is enough for comparison.
-          + improved  test/configure  to  build  test/ncurses  on HPUX 11
-            using the vendor curses.
-          + change  configure  script  to produce test/Makefile from data
-            file.
+          + update  test  programs to build/work with various UNIX curses
+            for comparisons.
 
                               Features of Ncurses
 
        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.
      * Better  cursor-movement  optimization.  The package now features a
        cursor-local-movement computation more efficient than either BSD's
 
    cdk
           Curses Development Kit
-          [3]http://invisible-island.net/cdk/
-          [4]http://www.vexus.ca/products/CDK/
+          [4]http://invisible-island.net/cdk/
+          [5]http://www.vexus.ca/products/CDK/
 
    ded
           directory-editor
-          [5]http://invisible-island.net/ded/
+          [6]http://invisible-island.net/ded/
 
    dialog
           the  underlying  application used in Slackware's setup, and the
           basis for similar applications on GNU/Linux.
-          [6]http://invisible-island.net/dialog/
+          [7]http://invisible-island.net/dialog/
 
    lynx
           the character-screen WWW browser
-          [7]http://lynx.isc.org/release/
+          [8]http://lynx.isc.org/release/
 
    Midnight Commander
           file manager
-          [8]http://www.ibiblio.org/mc/
+          [9]http://www.ibiblio.org/mc/
 
    mutt
           mail utility
-          [9]http://www.mutt.org/
+          [10]http://www.mutt.org/
 
    ncftp
           file-transfer utility
-          [10]http://www.ncftp.com/
+          [11]http://www.ncftp.com/
 
    nvi
           New vi versions 1.50 are able to use ncurses versions 1.9.7 and
           later.
-          [11]http://www.bostic.com/vi/
+          [12]http://www.bostic.com/vi/
 
    pinfo
           Lynx-like info browser.
-          [12]http://dione.ids.pl/~pborys/software/pinfo/
+          [13]https://alioth.debian.org/projects/pinfo/
 
    tin
-          newsreader, supporting color, MIME [13]http://www.tin.org/
-
-   vh-1.6
-          Volks-Hypertext browser for the Jargon File
-          [14]http://www.debian.org/Packages/unstable/text/vh.html
+          newsreader, supporting color, MIME [14]http://www.tin.org/
 
    as well as some that use ncurses for the terminfo support alone:
 
 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. Juergen Pfeifer
+   Pavel  Curtis.  Eric  S. Raymond continued development. Jürgen 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
    Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
@@ -442,18 +452,18 @@ References
 
    1. ftp://ftp.gnu.org/gnu/ncurses/
    2. ftp://invisible-island.net/ncurses/
-   3. http://invisible-island.net/cdk/
-   4. http://www.vexus.ca/products/CDK/
-   5. http://invisible-island.net/ded/
-   6. http://invisible-island.net/dialog/
-   7. http://lynx.isc.org/release/
-   8. http://www.ibiblio.org/mc/
-   9. http://www.mutt.org/
-  10. http://www.ncftp.com/
-  11. http://www.bostic.com/vi/
-  12. http://dione.ids.pl/~pborys/software/pinfo/
-  13. http://www.tin.org/
-  14. http://www.debian.org/Packages/unstable/text/vh.html
+   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