]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 5.0
[ncurses.git] / ANNOUNCE
index 95ae5be25603f8da267c560fe068c19ceeb7df22..4707838fba99e43ceae6c99ee42e62d8a320b00e 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
 
-                            Announcing ncurses 4.1
+                            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),
    tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full
    manual pages are provided for the library and tools.
    
-   The ncurses distribution is available via anonymous FTP at:
-   [1]ftp://ftp.clark.net/pub/dickey/ncurses. and
-   [2]ftp://ftp.netcom.com/pub/zm/zmbenhal/ncurses. It is also carried on
-   the GNU distribution site at [3]ftp://prep.ai.mit.edu/pub/gnu.
+   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://ftp.clark.net/pub/dickey/ncurses.
    
-                              Features of ncurses
+                                 Release Notes
                                        
-   The ncurses package is fully compatible with SVr4 curses:
+   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,
        color, forms-drawing with ACS characters, and automatic
        recognition of keypad and function keys.
-     * An emulation of the System V Release 4 panels library, supporting
-       a stack of windows with backing store, is included.
-     * An emulation of the System V Release 4 menus library, supporting a
-       uniform but flexible interface for menu programming, is included.
-     * An emulation of the System V Release 4 form library, supporting
-       data collection through on-screen forms, is included.
+     * An emulation of the SVr4 panels library, supporting a stack of
+       windows with backing store, is included.
+     * An emulation of the SVr4 menus library, supporting a uniform but
+       flexible interface for menu programming, is included.
+     * An emulation of the SVr4 form library, supporting data collection
+       through on-screen forms, is included.
      * Binary terminfo entries generated by the ncurses tic(1)
        implementation are bit-for-bit-compatible with the entry format
        SVr4 curses uses.
        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.
-     * Support for mouse event reporting under xterm.
+     * Ada95 and C++ bindings.
+     * 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.
+     * 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.
+     * Support for 16-color terminals, such as aixterm and XFree86 xterm.
      * Better cursor-movement optimization. The package now features a
        cursor-local-movement computation more efficient than either BSD's
        or System V's.
    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 [4]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
           
-   ncftp 2.0
+   Midnight Commander 4.1
+          file manager
+          
+   mutt
+          mail utility
+          
+   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 (unofficial) newsreader, supporting color, MIME
-          [5]ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff.
-          
    vile
-          vi-like-emacs [6]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 maintainer of ncurses is [7]Zeyd Ben-Halim.
-   Unfortunately, he can only work on the package part time. As a result,
-   since 1.8.1, much of the enhancement work and documentation has been
-   done by [8]Eric S. Raymond. The current primary maintainers are
-   [9]Thomas Dickey and [10]Juergen Pfeifer.
+   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 [13]bug-ncurses@gnu.org.
    
-   There is an ncurses mailing list. It is a majordomo list; to join,
-   write to ncurses-request@mailgate.bsdi.com with a message containing
-   the line:
-
+   To join the ncurses mailing list, please write email to
+   bug-ncurses-request@gnu.org containing the line:
              subscribe <name>@<host.domain>
 
    This list is open to anyone interested in helping with the development
    and testing of this package.
    
    Beta versions of ncurses and patches to the current release are made
-   available at [11]ftp://ftp.clark.net/pub/dickey/ncurses.
+   available at [14]ftp://ftp.clark.net/pub/dickey/ncurses.
    
 Future Plans
 
-     * Extended mouse support via Alessandro Rubini's gpm package.
      * Extended-level XPG4 conformance, with internationalization
        support.
      * Ports to more systems, including DOS and Windows.
@@ -199,33 +326,30 @@ Future Plans
    We need people to help with these projects. If you are interested in
    working on them, please join the ncurses list.
    
-The terminfo/termcap Database
-
-   The distribution includes and uses a copy of the terminfo-format
-   terminal description file maintained by Eric Raymond. You can download
-   either the [12]termcap or [13]terminfo versions of the terminal-type
-   database from Eric's ncurses page,
-   [14]http://www.ccil.org/~esr/ncurses.html.
-   
 Other Related Resources
 
+   The distribution includes and uses a version of the terminfo-format
+   terminal description file maintained by Eric Raymond.
+   [15]http://earthspace.net/~esr/terminfo.
+   
    You can find lots of information on terminal-related topics not
-   covered in the terminfo file at [15]Richard Shuford's archive.
+   covered in the terminfo file at [16]Richard Shuford's archive.
 
 References
 
-   1. ftp://ftp.clark.net/pub/dickey/ncurses
-   2. ftp://ftp.netcom.com/pub/zm/zmbenhal/ncurses
-   3. ftp://prep.ai.mit.edu/pub/gnu
-   4. ftp://ftp.clark.net/pub/dickey/ded
-   5. ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff
-   6. ftp://ftp.clark.net/pub/dickey/vile
-   7. mailto:zmbenhal@netcom.com
-   8. http://www.ccil.org/~esr/home.html
-   9. mailto:dickey@clark.net
-  10. mailto:Juergen.Pfeifer@T-Online.de
-  11. ftp://ftp.clark.net/pub/dickey/ncurses
-  12. http://www.ccil.org/~esr/terminfo/termtypes.tc.gz
-  13. http://www.ccil.org/~esr/terminfo/termtypes.ti.gz
-  14. http://www.ccil.org/~esr/ncurses.html
-  15. http://www.cs.utk.edu/~shuford/terminal_index.html
+   1. ftp://ftp.gnu.org/pub/gnu/ncurses
+   2. ftp://ftp.clark.net/pub/dickey/ncurses
+   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