]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 5.4
[ncurses.git] / ANNOUNCE
index e39a0bee28d8656945825566da2f96f66f8a3c81..513234e33caa431aec05182c38be2c74dd34ffb6 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-                            Announcing ncurses 5.3
+                            Announcing ncurses 5.4
 
    The  ncurses  (new  curses)  library  is  a free software emulation of
    curses  in  System  V  Release 4.0, and more. It uses terminfo format,
    manual pages are provided for the library and tools.
 
    The  ncurses  distribution  is  available via anonymous FTP at the GNU
-   distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
-   It is also available at [2]ftp://invisible-island.net/ncurses.
+   distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ .
+   It is also available at [2]ftp://invisible-island.net/ncurses.
 
                                  Release Notes
 
    This  release is designed to be upward compatible from ncurses 5.0 and
-   5.2;  very  few  applications will require recompilation, depending on
+   5.3;  very  few  applications will require recompilation, depending on
    the  platform.  These  are  the  highlights  from the change-log since
-   ncurses 5.2 release.
+   ncurses 5.3 release.
 
    Interface changes:
-     * change  type  for  bool  used  in  headers  to NCURSES_BOOL, which
-       usually is the same as the compiler's definition for bool.
-     * add  all  but  two  functions  for  X/Open  curses  wide-character
-       support.  These  are  only  available if the library is configured
-       using the --enable-widec option. Missing functions are
+     * add  the  remaining  functions  for  X/Open  curses wide-character
+       support.
           + pecho_wchar()
           + slk_wset()
-     * add  environment  variable  $NCURSES_ASSUMED_COLORS  to modify the
-       assume_default_colors() extension.
+       These  are  only  available if the library is configured using the
+       --enable-widec option.
+     * write  getyx()  and related 2-return macros in terms of getcury(),
+       getcurx(), etc.
+     * simplify ifdef for bool declaration in curses.h
+     * modify  ifdef's  in  curses.h that disabled use of __attribute__()
+       for  g++,  since recent versions implement the cases which ncurses
+       uses.
+     * add  key_defined()  function,  to  tell  which keycode a string is
+       bound to.
 
    New features and improvements:
-     * Improved support for termcap applications:
-          + add  logic to dump_entry.c to remove function-key definitions
-            that  do  not  fit  into  the  1023-byte  limit for generated
-            termcaps. This makes hds200 fit.
-          + modify  tgetent()  to check if exit_attribute_mode resets the
-            alternate  character  set,  and  if so, attempt to adjust the
-            copy  of  the  termcap  "me"  string  which it will return to
-            eliminate that part. In particular, 'screen' would lose track
-            of line-drawing characters.
-          + add  check/fix  to  comp_parse.c  to  suppress  warning about
-            missing acsc string. This happens in configurations where raw
-            termcap  information  is processed; tic already does this and
-            other checks.
-          + add   tic  -A  option  to  suppress  capabilities  which  are
-            commented out when translating to termcap.
-          + modify  logic  in  lib_baudrate.c  for ospeed, for FreeBSD to
-            make  it  work  properly  for  termcap applications (patch by
-            Andrey A Chernov).
-     * add a call to _nc_keypad() in keypad() to accommodate applications
-       such  as nvi, which use curses for output but not for input (fixes
-       Debian #131263, cf: 20011215).
-     * correct  logic  for  COLORFGBG  environment  variable:  if rxvt is
-       compiled  with  xpm support, the variable has three fields, making
-       it   slightly  incompatible  with  itself.  In  either  case,  the
-       background color is the last field.
+     * library
+          + implement  logic  in  lib_mouse.c  to handle position reports
+            which  are  generated  when XFree86 xterm is initialized with
+            private  modes  1002  or  1003.  These  are  returned  to the
+            application  as the REPORT_MOUSE_POSITION mask, which was not
+            implemented.
+          + modify soft-key initialization to use A_REVERSE if A_STANDOUT
+            would  not  be  shown when colors are used, i.e., if ncv#1 is
+            set in the terminfo as is done in "screen".
+          + add  configure  option for FreeBSD sysmouse, --with-sysmouse,
+            and implement library support for that.
+     * programs:
+          + tack:
+               o allow it to run from fallback terminfo data.
+               o reset  colors  after  each  color  test, correct a place
+                 where    exit_standout_mode    was   used   instead   of
+                 exit_attribute_mode.
+               o improve  bce  test  by  making  it set colors other than
+                 black on white.
+          + tic:
+               o handle  a  case  where  an entry has no description, and
+                 capabilities begin on the same line as the entry name.
+               o allow a terminfo entry with a leading 2-character name.
+               o improved  warnings  when  suppressing  items  to  fit in
+                 termcap's 1023-byte limit.
+               o add check for multiple "tc=" clauses in a termcap.
+               o correct logic for resolving "use=" clauses allow infocmp
+                 and tic to show cancelled capabilities.
+               o check for incomplete line-drawing character mapping.
+               o check for missing/empty/illegal terminfo name.
+          + tput:
+               o modify  tput  to  use  the  same  parameter  analysis as
+                 tparm() does, to provide for user-defined strings, e.g.,
+                 for  xterm  title,  a  corresponding capability might be
+                 title=\E]2;%p1%s^G,
+          + tset:
+               o use  the  system's  default  values  for CKILL and other
+                 default control characters.
+               o correct  interchanged  defaults  for  kill and interrupt
+                 characters, which caused it to report unnecessarily.
 
    Major bug fixes:
-     * rewrote     limit-checks     in     wscrl()     and     associated
-       _nc_scroll_window(), to ensure that if the parameter of wscrl() is
-       larger  than  the size of the scrolling region, then the scrolling
-       region will be cleared.
-     * modify  tset  to  restore  original  I/O  modes  if  an  error  is
-       encountered.  Also  modify  to  use  buffered  stderr consistently
-       rather than mixing with write().
-     * move  calls  to  def_shell_mode()  and def_prog_mode() before loop
-       with  callbacks  in  lib_set_term.c,  since the c++ demo otherwise
-       initialized the tty modes before saving them.
-     * modified  wresize()  to  ensure  that  a  failed  realloc will not
-       corrupt  the  window  structure, and to make subwindows fit within
-       the resized window.
-     * altered  resizeterm()  to avoid having it fail when a child window
-       cannot be resized because it would be larger than its parent.
-     * correct/improve  logic  to  produce  an  exit status for errors in
-       tput,  which  did not exit with an error when told to put a string
-       not in the current terminfo entry.
-     * modify  behavior  of can_clear_with() so that if an application is
-       running  in  a  non-bce  terminals with default colors enabled, it
-       returns  true,  allowing  the  user  to  select/paste text without
-       picking up extraneous trailing blanks.
-     * add a check in relative_move() to guard against buffer overflow in
-       the overwrite logic.
-     * add some limit/pointer checks to -S option of tputs.
-     * modify  mvcur()  to  avoid emitting newline characters when nonl()
-       mode  is  set.  Normally  this  is  not a problem since the actual
-       terminal  mode is set to suppress nl/crlf translations, however it
-       is  useful  to allow the caller to manipulate the terminal mode to
-       avoid  staircasing  effects  after spawning a process which writes
-       messages (for lynx 2.8.4).
+     * prevent  recursion  in  wgetch()  via wgetnstr() if the connection
+       cannot  be  switched  between cooked/raw modes because it is not a
+       TTY.
+     * correct  a  case  in _nc_remove_string(), used by define_key(), to
+       avoid  infinite loop if the given string happens to be a substring
+       of other strings which are assigned to keys.
+     * modify  logic  of acsc to use the original character if no mapping
+       is defined, rather than a null.
+     * several  improvements  for  handling  multi-cell  display  of wide
+       characters.
+          + modify  setcchar()  to allow converting control characters to
+            complex characters.
+          + correct  handling of multibyte characters in waddch_literal()
+            which force wrapping because they are started too late on the
+            line.
+          + modify  setcchar()  to  allow  for wchar_t input strings that
+            have more than one spacing character.
+     * other fixes for wide-character support:
+          + rewrote  lib_acs.c  to  allow  PutAttrChar() to decide how to
+            render alternate-characters, i.e., to work with Linux console
+            and UTF-8 locale.
+          + implement  a  workaround  so  that  line-drawing  works  with
+            screen's  crippled  UTF-8  support (tested with 3.9.13). This
+            only  works with the wide-character support (--enable-widec);
+            the  normal  library  will  simply suppress line-drawing when
+            running in a UTF-8 locale in screen.
+          + corrections to lib_get_wstr.c:
+               o null-terminate   buffer   passed  to  setcchar(),  which
+                 occasionally failed.
+               o map    special    characters    such   as   erase-   and
+                 kill-characters  into  key-codes  so  those will work as
+                 expected even if they are not mentioned in the terminfo.
+     * modify  setupterm()  to  check  if the terminfo and terminal-modes
+       have  already  been  read.  This ensures that it does not reinvoke
+       def_prog_mode()  when an application calls more than one function,
+       such as tgetent() and initscr().
+     * fix    form_driver()    cases    for   REQ_CLR_EOF,   REQ_CLR_EOL,
+       REQ_DEL_CHAR,  REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure
+       the   cursor   was   at   the   editing   position  before  making
+       modifications.
+     * correct keybound(), which reported definitions in the wrong table,
+       i.e., the list of definitions which are disabled by keyok().
+     * fixes related to safe_sprintf.c:
+          + correct  an  allocation  size  in  safe_sprintf.c for the "*"
+            format code.
+          + correct  safe_sprintf.c  to  not return a null pointer if the
+            format happens to be an empty string.
+          + make   return   value  from  _nc_printf_string()  consistent.
+            Before,  depending on whether --enable-safe-sprintf was used,
+            it might not be cached for reallocating.
+     * other low-level improvements to the optimization code include:
+          + if  the  output  is  a  socket or other non-tty device, use 1
+            millisecond  for  the  cost  in  mvcur;  previously  it was 9
+            milliseconds because the baudrate was not known.
+          + modify lib_getch.c to avoid recursion via wgetnstr() when the
+            input is not a tty and consequently mode-changes do not work.
+          + fix  several  places  in tack/pad.c which tested and used the
+            parameter- and parameterless strings inconsistently.
+          + change several tputs() calls in scrolling code to use putp(),
+            to enable padding which may be needed for some terminals.
+          + improve  mvcur() by checking if it is safe to move when video
+            attributes   are   set  (msgr),  and  if  not,  reset/restore
+            attributes   within   that  function  rather  than  doing  it
+            separately in the GoTo() function in tty_update.c.
+          + use tputs() rather than putp() in a few cases in tty_update.c
+            since the corresponding delays are proportional to the number
+            of       lines      affected:      repeat_char,      clr_eos,
+            change_scroll_region.
+     * correct  line/column  reference in adjust_window(), needed to make
+       special windows such as curscr track properly when resizing.
+     * fix a potential recursion between napms() and _nc_timed_wait()
+     * rewrote lib_insch.c, combining it with lib_insstr.c so both handle
+       tab and other control characters consistently.
+     * do  not  try  to open gpm mouse driver if standard output is not a
+       tty; the gpm library does not make this check.
 
    Portability:
      * configure script:
-          + modify check in --disable-overwrite option so that it is used
-            by  default unless the --prefix/$prefix value is not /usr, in
-            attempt  to work around packagers who do not read the INSTALL
-            notes.
-          + correct  a  typo  in configure --enable-colorfgbg option, and
-            move it to the experimental section (cf: 20011208).
-          + modify  configure script to allow building with termcap only,
-            or with fallbacks only. In this case, we do not build tic and
-            toe.
-          + modify  run_tic.sh  to check if the build is a cross-compile.
-            In  that  case,  do  not  use  the build's tic to install the
-            terminfo database.
-          + modify  c++/Makefile.in  to accommodate archive programs that
-            are  different for C++ than for C, and add cases for vendor's
-            C++ compilers on Solaris and IRIX.
-          + add   several   configure   script   options   to   aid  with
-            cross-compiling:     --with-build-cc,    --with-build-cflags,
-            --with-build-ldflags, and --with-build-libs.
-          + add  experimental  --with-caps=XXX  option  to  customize  to
-            similar terminfo database formats such as AIX 4.x
-          + add  configure  option  --with-ospeed  to assist packagers in
-            transition to 5.3 change to ospeed type.
+          + new options:
+
+              --with-abi-version option.
+                      addresses  platforms  where packagers have diverged
+                      from ncurses ABI numbering.
+
+              --with-manpage-format=catonly
+                      addresses   behavior  of  BSDI,  allow  install  of
+                      man+cat   files   on  NetBSD,  whose  behavior  has
+                      diverged by requiring both to be present.
+
+              --with-manpage-aliases
+                      extends  "--with-manpage-aliases"  to  provide  the
+                      option   of  generating  ".so"  files  rather  than
+                      symbolic links for manpage aliases.
+
+              --with-rel-version
+                      workaround  to force libtool on Darwin generate the
+                      "same"  library  names  as with the "--with-shared"
+                      option.  The  Darwin  ld program does not work well
+                      with a zero as the minor-version value.
+
+              --with-trace
+                      simplifies defining TRACE to incorporate trace() in
+                      libraries.
+
+          + fixes/improvements for cross-compiling:
+               o allow BUILD_CC and related configure script variables to
+                 be overridden from the environment.
+               o use AC_CHECK_TOOL to get proper values for AR and LD for
+                 cross compiling.
+               o use $cross_compiling variable in configure script rather
+                 than  comparing  $host_alias  and  $target  alias, since
+                 "host"  is traditionally misused in autoconf to refer to
+                 the target platform.
+               o modify  run_tic.in to avoid using wrong shared libraries
+                 when cross-compiling.
+          + fixes for Mac OS X:
+               o fix  a  redefinition  of $RANLIB in the configure script
+                 when libtool is used.
+               o modify  MKlib_gen.sh to avoid passing "#" tokens through
+                 the  C  preprocessor.  This  works  around  Mac  OS  X's
+                 preprocessor,  which  insists  on adding a blank on each
+                 side of the token.
+          + workarounds for broken tools:
+               o add configure check for wchar_t and wint_t types, rather
+                 than  rely on preprocessor definitions. Also work around
+                 for  gcc  fixinclude  bug which creates a shadow copy of
+                 curses.h if it sees these symbols apparently typedef'd.
+               o modify  configure  script  to omit -Winline for gcc 3.3,
+                 since that feature is broken.
+               o several script fixes to work around the ironically named
+                 POSIXLY_CORRECT feature of GNU sed 4.0.
+               o modify  configure script to avoid using "head -1", which
+                 does not work if POSIXLY_CORRECT (sic) is set.
+               o update    configure    script   to   reflect   fix   for
+                 AC_PROG_GCC_TRADITIONAL,  which  is  broken  in autoconf
+                 2.5x for Mac OS X 10.2.3.
+               o repair  check  for missing C++ compiler, which is broken
+                 in autoconf 2.5x by hardcoding it to g++.
+          + corrected  ifdef's  relating  to configure check for wchar_t,
+            etc.
+          + remove configure script check to allow -Wconversion for older
+            versions of gcc
+          + modify  configure  script to accommodate libtool 1.5, as well
+            as  add an parameter to the "--with-libtool" option which can
+            specify the pathname of libtool.
+          + change  several  sed  scripts to avoid using "\+" since it is
+            not  a  BRE  (basic  regular expression). One instance caused
+            terminfo.5 to be misformatted on FreeBSD.
+          + use  '%'  as  sed  substitute  delimiter in run_tic script to
+            avoid problems with pathname delimiters such as ':' and '@'.
+          + add  -D_XOPEN_SOURCE=500  if  needed  when  configuring  with
+            "--enable-widec", to get mbstate_t declaration on HPUX 11.11.
      * library:
-          + implement a simple vsscanf() fallback function which uses the
-            %n conversion to help parse the input data.
-          + various fixes to build/work with different implementations of
-            vsscanf().
-          + add/use  macro  to  suppress  sign-extension  of char type on
-            platforms  where  this  is  a  problem in ctype macros, e.g.,
-            Solaris.
-          + finish changes needed to build dll's on cygwin.
-          + add  #undef's  before  possible redefinition of ERR and OK in
-            curses.h
-     * programs:
-          + modify  ifdef's  in  write_entry.c  to  allow use of symbolic
-            links on platforms with no hard links, e.g., BeOS.
-          + modify  _nc_write_entry()  to  allow for the possibility that
-            linking  aliases  on a filesystem that ignores case would not
-            succeed  because  the  source  and destination differ only by
-            case, e.g., NCR260VT300WPP0 on cygwin.
-          + modify  logic  in  tic,  toe,  tput and tset which checks for
-            basename  of argv[0] to work properly on systems such as OS/2
-            which   have   case-independent   filenames   and/or  program
-            suffixes, e.g., ".ext".
+          + adjust  include-options  in  CF_ETIP_DEFINES to avoid missing
+            ncurses_dll.h,  fixing special definitions that may be needed
+            for etip.h.
+          + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use
+            a ".so" suffix.
+          + improve  ifdef's to guard against redefinition of wchar_t and
+            wint_t in curses.h.
+          + remove  an  #undef for KEY_EVENT from curses.tail used in the
+            experimental   NCURSES_WGETCH_EVENTS   feature.   The  #undef
+            confuses Debian dpkg's build script.
 
                               Features of Ncurses
 
 
    cdk
           Curses Development Kit
-          [3]http://invisible-island.net/cdk.
-          [4]http://www.vexus.ca/CDK.html
+          [3]http://invisible-island.net/cdk/
+          [4]http://www.vexus.ca/products/CDK/
 
    ded
           directory-editor
-          [5]http://invisible-island.net/ded.
+          [5]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.
+          [6]http://invisible-island.net/dialog/
 
    lynx
           the character-screen WWW browser
-          [7]http://lynx.isc.org/release.
+          [7]http://lynx.isc.org/release/
 
    Midnight Commander
           file manager
-          [8]www.gnome.org/mc/.
+          [8]http://www.ibiblio.org/mc/
 
    mutt
           mail utility
-          [9]http://www.mutt.org.
+          [9]http://www.mutt.org/
 
    ncftp
           file-transfer utility
-          [10]http://www.ncftp.com.
+          [10]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/.
+          [11]http://www.bostic.com/vi/
 
-   tin
-          newsreader, supporting color, MIME
-          [12]http://www.tin.org.
+   pinfo
+          Lynx-like info browser.
+          [12]http://dione.ids.pl/~pborys/software/pinfo/
 
-   taper
-          tape archive utility
-          [13]http://members.iinet.net.au/~yusuf/taper/.
+   tin
+          newsreader, supporting color, MIME [13]http://www.tin.org/
 
    vh-1.6
           Volks-Hypertext browser for the Jargon File
-          [14]http://www.bg.debian.org/Packages/unstable/text/vh.html.
+          [14]http://www.debian.org/Packages/unstable/text/vh.html
 
    as well as some that use ncurses for the terminfo support alone:
 
    minicom
           terminal emulator
-          [15]http://www.pp.clinet.fi/~walker/minicom.html.
+          [15]http://www.netsonic.fi/~walker/minicom.html
 
    vile
           vi-like-emacs
-          [16]http://invisible-island.net/vile.
+          [16]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
 
-   The original developers of ncurses are [17]Zeyd Ben-Halim and [18]Eric
-   S.  Raymond.  Ongoing  work  is  being  done  by [19]Thomas Dickey and
-   [20]Jürgen  Pfeifer.  [21]Thomas Dickey acts as the maintainer for the
+   Zeyd  Ben-Halim started it from a previous package pcurses, written by
+   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.
-   Contact the current maintainers at [22]bug-ncurses@gnu.org.
+   Contact the current maintainers at [18]bug-ncurses@gnu.org.
 
    To   join   the   ncurses   mailing   list,   please  write  email  to
    bug-ncurses-request@gnu.org containing the line:
@@ -342,7 +447,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 [23]ftp://invisible-island.net/ncurses.
+   available at [19]ftp://invisible-island.net/ncurses/ .
 
 Future Plans
 
@@ -355,37 +460,34 @@ Future Plans
 
 Other Related Resources
 
-   The  distribution  includes  and uses a version of the terminfo-format
-   terminal    description    file    maintained    by    Eric   Raymond.
-   [24]http://earthspace.net/~esr/terminfo.
+   The  distribution  provides  a  newer  version  of the terminfo-format
+   terminal  description file maintained by [20]Eric Raymond . Unlike the
+   older  version, the termcap and terminfo data are provided in the same
+   file.
 
    You  can  find  lots  of  information  on  terminal-related topics not
-   covered in the terminfo file at [25]Richard Shuford's archive.
+   covered in the terminfo file at [21]Richard Shuford's archive .
 
 References
 
-   1. ftp://ftp.gnu.org/pub/gnu/ncurses
-   2. ftp://invisible-island.net/ncurses
-   3. http://invisible-island.net/cdk/cdk.html
-   4. http://www.vexus.ca/CDK.html
-   5. http://invisible-island.net/ded/ded.html
-   6. http://invisible-island.net/dialog/dialog.html
+   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. file://localhost/usr/build/ncurses/ncurses-5.2-20021012/doc/html/www.gnome.org/mc/
+   8. http://www.ibiblio.org/mc/
    9. http://www.mutt.org/
   10. http://www.ncftp.com/
   11. http://www.bostic.com/vi/
-  12. http://www.tin.org/
-  13. http://members.iinet.net.au/~yusuf/taper/
-  14. http://www.bg.debian.org/Packages/unstable/text/vh.html
-  15. http://www.pp.clinet.fi/~walker/minicom.html
-  16. http://invisible-island.net/vile/vile.html
-  17. mailto:zmbenhal@netcom.com
-  18. http://www.ccil.org/~esr/home.html
-  19. mailto:dickey@herndon4.his.com
-  20. http://www.familiepfeifer.de/Contact.aspx?Lang=en
-  21. mailto:dickey@herndon4.his.com
-  22. mailto:bug-ncurses@gnu.org
-  23. ftp://invisible-island.net/ncurses
-  24. http://earthspace.net/~esr/terminfo
-  25. http://www.cs.utk.edu/~shuford/terminal_index.html
+  12. http://dione.ids.pl/~pborys/software/pinfo/
+  13. http://www.tin.org/
+  14. http://www.debian.org/Packages/unstable/text/vh.html
+  15. http://www.netsonic.fi/~walker/minicom.html
+  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