]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 5.0
[ncurses.git] / ANNOUNCE
index 3383dedd993ffd346059f69868e163dbfb7a4ed4..4707838fba99e43ceae6c99ee42e62d8a320b00e 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,18 +1,20 @@
 
-                            Announcing ncurses 4.2
+                            Announcing ncurses 5.0
                                        
-   The ncurses (new curses) library is a freeware emulation of System V
-   Release 4.0 curses. It uses terminfo format, supports pads and color
-   and multiple highlights and forms characters and function-key mapping,
-   and has all the other SYSV-curses enhancements over BSD curses.
+   The ncurses (new curses) library is a free software emulation of
+   curses in System V Release 4.0, and more. It uses terminfo format,
+   supports pads and color and multiple highlights and forms characters
+   and function-key mapping, and has all the other SYSV-curses
+   enhancements over BSD curses.
    
    In mid-June 1995, the maintainer of 4.4BSD curses declared that he
    considered 4.4BSD curses obsolete, and is encouraging the keepers of
    Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
    ncurses.
    
-   The ncurses code was developed under Linux. It should port easily to
-   any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
+   The ncurses code was developed under GNU/Linux. It should port easily
+   to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2
+   Warp!
    
    The distribution includes the library and support utilities, including
    a terminfo compiler tic(1), a decompiler infocmp(1), clear(1),
    manual pages are provided for the library and tools.
    
    The ncurses distribution is available via anonymous FTP at the GNU
-   distribution site [1]ftp://prep.ai.mit.edu/pub/gnu. It is also
+   distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses. It is also
    available at [2]ftp://ftp.clark.net/pub/dickey/ncurses.
    
-                              Features of ncurses
+                                 Release Notes
+                                       
+   We decided to release ncurses as a new whole number release (5.0)
+   because it incorporates several interface changes, including some that
+   would invalidate existing shared libraries. These are the highlights
+   from the change-log since ncurses 4.2 release.
+   
+   Interface changes:
+     * The principal source of changes to the interface comes from the
+       release of X/Open Curses in 1997. Earlier versions of ncurses (4.0
+       and before) were based on a draft version of the specification.
+       The release version adds parameters to some functions to support
+       the evolving internationalization of curses. These summarize the
+       impact:
+          + modified several prototypes to correspond with 1997 version
+            of X/Open Curses (affects ABI since developers have used
+            attr_get).
+          + corrected prototypes for slk_* functions, using chtype rather
+            than attr_t.
+          + the slk_attr_{set,off,on} functions need an additional void*
+            parameter according to XSI.
+          + correct macros for wattr_set, wattr_get, separate wattrset
+            macro from these to preserve behavior that allows attributes
+            to be combined with color pair numbers.
+          + reviewed/updated curses.h, term.h against X/Open Curses Issue
+            4 Version 2. This includes making some parameters
+            NCURSES_CONST rather than const, e.g., in termcap.h.
+          + reviewed/corrected macros in curses.h as per XSI document.
+          + add set_a_attributes and set_pglen_inch to terminfo
+            structure, as per XSI and Solaris 2.5.
+     * The newest version of the X/Open Curses is implemented on Solaris
+       and other vendor's systems. It adds new features to the terminfo
+       descriptions:
+          + implement tparm %l format.
+          + implement tparm printf-style width and precision for %s, %d,
+            %x, %o as per XSI.
+     * We made additional changes to reduce impact by future interface
+       changes:
+          + rename key_names[] array to _nc_key_names since it is not
+            part of the curses interface.
+          + move macro winch to a function, to hide details of struct
+            ldat
+     * modify configure script to embed ABI in shared libraries for HP-UX
+       10.x (detailed request by Tim Mooney).
+     * modify configuration of shared libraries on Digital Unix so that
+       versioning is embedded in the library, rather than implied by
+       links (patch by Tim Mooney).
+       
+   New features:
+     * enable sigwinch handler by default.
+     * turn on hashmap scrolling code by default
+     * improved support for termcap applications
+          + modify tput to accept termcap names as an alternative to
+            terminfo names.
+          + provide support for termcap PC variable by copying it from
+            terminfo data and using it as the padding character in tputs.
+          + provide support for termcap ospeed variable by copying it
+            from the internal cur_term member, and using ospeed as the
+            baudrate reference for the delay_output and tputs functions.
+          + change name-comparisons in lib_termcap to compare no more
+            than 2 characters.
+          + add configure option --enable-tcap-names, which essentially
+            allows users to define new capabilities as in termcap.
+     * add mouse support to ncurses menus.
+     * add mouse and dll support for OS/2 EMX
+     * modify terminfo parsing to accept octal and hexadecimal constants
+     * add configure option --enable-no-padding, to allow environment
+       variable $NCURSES_NO_PADDING to eliminate non-mandatory padding,
+       thereby making terminal emulators (e.g., for vt100) a little more
+       efficient.
+     * modify lib_color.c to eliminate dependency on orig_colors and
+       orig_pair, since SVr4 curses does not require these either, but
+       uses them when they are available.
+     * add -f option to infocmp and tic, which formats the terminfo
+       if/then/else/endif so that they are readable (with newlines and
+       tabs).
+     * modify tic to compile into %'char' form in preference to
+       %{number}, since that is a little more efficient.
+       
+   Major bug fixes:
+     * modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a
+       problem where ncurses applications which were run via a shell
+       script would hang when given a ^Z. Also, check if the terminal's
+       process group is consistent, i.e., a shell has not taken ownership
+       of it, before deciding to save the current terminal settings in
+       the SIGTSTP handler.
+     * suppress sc/rc capabilities from terminal description if they
+       appear in smcup/rmcup. This affects only scrolling optimization,
+       to fix a problem reported by several people with xterm's alternate
+       screen, though the problem is more general.
+     * modify relative_move and tputs to avoid an interaction with the
+       BSD-style padding. The relative_move function could produce a
+       string to replace on the screen which began with a numeric
+       character, which was then interpreted by tputs as padding.
+     * modify setupterm so that cancelled strings are treated the same as
+       absent strings, cancelled and absent booleans false (does not
+       affect tic, infocmp).
+     * modify lib_vidattr.c to allow for terminal types (e.g.,
+       xterm-color) which may reset all attributes in the 'op'
+       capability, so that colors are set before turning on bold and
+       other attributes, but still after turning attributes off.
+     * use 'access()' to check if ncurses library should be permitted to
+       open or modify files with fopen/open/link/unlink/remove calls, in
+       case the calling application is running in setuid mode.
+     * correction to doupdate, for case where terminal does not support
+       insert/delete character. The logic did not check that there was a
+       difference in alignment of changes to old/new screens before
+       repainting the whole non-blank portion of the line. Modified to
+       fall through into logic that reduces by the portion which does not
+       differ.
+       
+                              Features of Ncurses
                                        
    The ncurses package is fully compatible with SVr4 (System V Release 4)
    curses:
-   
      * All 257 of the SVr4 calls have been implemented (and are
        documented).
      * Full support for SVr4 curses features including keyboard mapping,
        HP/UX and AIX ports.
        
    The ncurses package also has many useful extensions over SVr4:
-   
      * The API is 8-bit clean and base-level conformant with the X/OPEN
-       curses specification, XSI Curses (that is, it implements all BASE
+       curses specification, XSI curses (that is, it implements all BASE
        level features, but not all EXTENDED features). Most
        EXTENDED-level features not directly concerned with wide-character
        support are implemented, including many function calls not
        supported under SVr4 curses (but portability of all calls is
        documented so you can use the SVr4 subset only).
-     * Unlike SVr4 curses, ncurses can write to the rightmost-bottommost
+     * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
        corner of the screen if your terminal has an insert-character
        capability.
-     * (PC-clone boxes only) Support for access to the IBM PC ROM
-       characters 0-32 through the highlight A_ALTCHARSET.
      * Ada95 and C++ bindings.
-     * Support for mouse event reporting under xterm.
+     * Support for mouse event reporting with X Window xterm and OS/2
+       console windows.
      * Extended mouse support via Alessandro Rubini's gpm package.
      * The function wresize() allows you to resize windows, preserving
        their data.
    and arena corruption by the Purify memory-allocation tester.
    
    The ncurses code has been tested with a wide variety of applications
-   including:
+   including (versions starting with those noted):
    
+   cdk
+          Curses Development Kit [3]Curses Development Kit
+          [4]ftp://ftp.clark.net/pub/dickey/cdk.
+          
    ded
-          directory-editor [3]ftp://ftp.clark.net/pub/dickey/ded.
+          directory-editor [5]ftp://ftp.clark.net/pub/dickey/ded.
           
    dialog
           the underlying application used in Slackware's setup, and the
-          basis for similar applications on Linux.
+          basis for similar applications on GNU/Linux.
           
-   lynx-2.7
+   lynx
           the character-screen WWW browser
           
    Midnight Commander 4.1
           file manager
           
-   mutt 0.88
+   mutt
           mail utility
           
-   ncftp 2.0
+   ncftp
           file-transfer utility
           
    nvi
           New vi versions 1.50 are able to use ncurses versions 1.9.7 and
           later.
           
+   tin
+          newsreader, supporting color, MIME
+          [6]ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff.
+          
    taper
           tape archive utility
           
           
    as well as some that use ncurses for the terminfo support alone:
    
-   minicom-1.75
+   minicom
           terminal emulator
           
-   tin-unoff
-          tin 1.4 newsreader, supporting color, MIME
-          [4]ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff.
-          
    vile
-          vi-like-emacs [5]ftp://ftp.clark.net/pub/dickey/vile.
+          vi-like-emacs [7]ftp://ftp.clark.net/pub/dickey/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 [6]Zeyd Ben-Halim and [7]Eric
-   S. Raymond. Ongoing work is being done by [8]Thomas Dickey and
-   [9]Jürgen Pfeifer. [10]Florian La Roche acts as the maintainer for the
+   The original developers of ncurses are [8]Zeyd Ben-Halim and [9]Eric
+   S. Raymond. Ongoing work is being done by [10]Thomas Dickey and
+   [11]Jürgen Pfeifer. [12]Thomas Dickey acts as the maintainer for the
    Free Software Foundation, which holds the copyright on ncurses.
-   Contact the current maintainers at [11]bug-ncurses@gnu.org.
+   Contact the current maintainers at [13]bug-ncurses@gnu.org.
    
    To join the ncurses mailing list, please write email to
    bug-ncurses-request@gnu.org containing the line:
@@ -201,7 +315,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 [12]ftp://ftp.clark.net/pub/dickey/ncurses.
+   available at [14]ftp://ftp.clark.net/pub/dickey/ncurses.
    
 Future Plans
 
@@ -216,24 +330,26 @@ Other Related Resources
 
    The distribution includes and uses a version of the terminfo-format
    terminal description file maintained by Eric Raymond.
-   [13]http://earthspace.net/~esr/terminfo.
+   [15]http://earthspace.net/~esr/terminfo.
    
    You can find lots of information on terminal-related topics not
-   covered in the terminfo file at [14]Richard Shuford's archive.
+   covered in the terminfo file at [16]Richard Shuford's archive.
 
 References
 
-   1. ftp://prep.ai.mit.edu/pub/gnu
+   1. ftp://ftp.gnu.org/pub/gnu/ncurses
    2. ftp://ftp.clark.net/pub/dickey/ncurses
-   3. ftp://ftp.clark.net/pub/dickey/ded
-   4. ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff
-   5. ftp://ftp.clark.net/pub/dickey/vile
-   6. mailto:zmbenhal@netcom.com
-   7. http://www.ccil.org/~esr/home.html
-   8. mailto:dickey@clark.net
-   9. mailto:Juergen.Pfeifer@T-Online.de
-  10. mailto:florian@gnu.org
-  11. mailto:bug-ncurses@gnu.org
-  12. ftp://ftp.clark.net/pub/dickey/ncurses
-  13. http://earthspace.net/~esr/terminfo
-  14. http://www.cs.utk.edu/~shuford/terminal_index.html
+   3. http://www.vexus.ca/CDK.html
+   4. ftp://ftp.clark.net/pub/dickey/cdk
+   5. ftp://ftp.clark.net/pub/dickey/ded
+   6. ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff
+   7. ftp://ftp.clark.net/pub/dickey/vile
+   8. mailto:zmbenhal@netcom.com
+   9. http://www.ccil.org/~esr/home.html
+  10. mailto:dickey@clark.net
+  11. mailto:juergen.pfeifer@gmx.net
+  12. mailto:dickey@clark.net
+  13. mailto:bug-ncurses@gnu.org
+  14. ftp://ftp.clark.net/pub/dickey/ncurses
+  15. http://earthspace.net/~esr/terminfo
+  16. http://www.cs.utk.edu/~shuford/terminal_index.html