X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ANNOUNCE;h=4707838fba99e43ceae6c99ee42e62d8a320b00e;hp=95ae5be25603f8da267c560fe068c19ceeb7df22;hb=refs%2Ftags%2Fv5.0;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c diff --git a/ANNOUNCE b/ANNOUNCE index 95ae5be2..4707838f 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,44 +1,156 @@ - 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. @@ -47,22 +159,30 @@ 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. @@ -129,25 +249,39 @@ 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 @@ -156,42 +290,35 @@ 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 @ 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