X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ANNOUNCE;h=e39a0bee28d8656945825566da2f96f66f8a3c81;hp=95ae5be25603f8da267c560fe068c19ceeb7df22;hb=46722468f47c2b77b3987729b4bcf2321cccfd01;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c diff --git a/ANNOUNCE b/ANNOUNCE index 95ae5be2..e39a0bee 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,231 +1,391 @@ - Announcing ncurses 4.1 - - 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. - - 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 + Announcing ncurses 5.3 + + 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 has been in use for + some time with OpenBSD as the system curses library, and on FreeBSD + and NetBSD as an external package. 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 + 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. - - Features of ncurses - - The ncurses package is fully compatible with SVr4 curses: - - * All 257 of the SVr4 calls have been implemented (and are + + 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. + + 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 + the platform. These are the highlights from the change-log since + ncurses 5.2 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 + + pecho_wchar() + + slk_wset() + * add environment variable $NCURSES_ASSUMED_COLORS to modify the + assume_default_colors() extension. + + 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. + + 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). + + 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. + * 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". + + 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 + * 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. - * Binary terminfo entries generated by the ncurses tic(1) - implementation are bit-for-bit-compatible with the entry format + * 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. * The utilities have options to allow you to filter terminfo entries - for use with less capable curses/terminfo versions such as the + for use with less capable curses/terminfo versions such as the 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 - level features, but not all EXTENDED features). Most + * The API is 8-bit clean and base-level conformant with the X/OPEN + 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 + 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 - corner of the screen if your terminal has an insert-character + * 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. - * The function wresize() allows you to resize windows, preserving + * 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. - * Better cursor-movement optimization. The package now features a + * 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. - * Super hardware scrolling support. The screen-update code - incorporates a novel, simple, and cheap algorithm that enables it - to make optimal use of hardware scrolling, line-insertion, and - line-deletion for screen-line movements. This algorithm is more + * Super hardware scrolling support. The screen-update code + incorporates a novel, simple, and cheap algorithm that enables it + to make optimal use of hardware scrolling, line-insertion, and + line-deletion for screen-line movements. This algorithm is more powerful than the 4.4BSD curses quickch() routine. - * Real support for terminals with the magic-cookie glitch. The - screen-update code will refrain from drawing a highlight if the - magic- cookie unattributed spaces required just before the - beginning and after the end would step on a non-space character. - It will automatically shift highlight boundaries when doing so - would make it possible to draw the highlight without changing the + * Real support for terminals with the magic-cookie glitch. The + screen-update code will refrain from drawing a highlight if the + magic- cookie unattributed spaces required just before the + beginning and after the end would step on a non-space character. + It will automatically shift highlight boundaries when doing so + would make it possible to draw the highlight without changing the visual appearance of the screen. - * It is possible to generate the library with a list of pre-loaded - fallback entries linked to it so that it can serve those terminal - types even when no terminfo tree or termcap file is accessible - (this may be useful for support of screen-oriented programs that + * It is possible to generate the library with a list of pre-loaded + fallback entries linked to it so that it can serve those terminal + types even when no terminfo tree or termcap file is accessible + (this may be useful for support of screen-oriented programs that must run in single-user mode). * The tic(1)/captoinfo utility provided with ncurses has the ability - to translate many termcaps from the XENIX, IBM and AT&T extension + to translate many termcaps from the XENIX, IBM and AT&T extension sets. * A BSD-like tset(1) utility is provided. * The ncurses library and utilities will automatically read terminfo - entries from $HOME/.terminfo if it exists, and compile to that - directory if it exists and the user has no write access to the - system directory. This feature makes it easier for users to have - personal terminfo entries without giving up access to the system + entries from $HOME/.terminfo if it exists, and compile to that + directory if it exists and the user has no write access to the + system directory. This feature makes it easier for users to have + personal terminfo entries without giving up access to the system terminfo directory. - * You may specify a path of directories to search for compiled - descriptions with the environment variable TERMINFO_DIRS (this - generalizes the feature provided by TERMINFO under stock System + * You may specify a path of directories to search for compiled + descriptions with the environment variable TERMINFO_DIRS (this + generalizes the feature provided by TERMINFO under stock System V.) - * In terminfo source files, use capabilities may refer not just to + * In terminfo source files, use capabilities may refer not just to other entries in the same source file (as in System V) but also to - compiled entries in either the system terminfo directory or the + compiled entries in either the system terminfo directory or the user's $HOME/.terminfo directory. - * A script (capconvert) is provided to help BSD users transition - from termcap to terminfo. It gathers the information in a TERMCAP - environment variable and/or a ~/.termcap local entries file and - converts it to an equivalent local terminfo tree under + * A script (capconvert) is provided to help BSD users transition + from termcap to terminfo. It gathers the information in a TERMCAP + environment variable and/or a ~/.termcap local entries file and + converts it to an equivalent local terminfo tree under $HOME/.terminfo. - * Automatic fallback to the /etc/termcap file can be compiled in - when it is not possible to build a terminfo tree. This feature is - neither fast nor cheap, you don't want to use it unless you have + * Automatic fallback to the /etc/termcap file can be compiled in + when it is not possible to build a terminfo tree. This feature is + neither fast nor cheap, you don't want to use it unless you have to, but it's there. - * The table-of-entries utility toe makes it easy for users to see + * The table-of-entries utility toe makes it easy for users to see exactly what terminal types are available on the system. * The library meets the XSI requirement that every macro entry point - have a corresponding function which may be linked (and will be - prototype-checked) if the macro definition is disabled with + have a corresponding function which may be linked (and will be + prototype-checked) if the macro definition is disabled with #undef. - * An HTML "Introduction to Programming with NCURSES" document - provides a narrative introduction to the curses programming + * An HTML "Introduction to Programming with NCURSES" document + provides a narrative introduction to the curses programming interface. - + State of the Package - + Numerous bugs present in earlier versions have been fixed; the library - is far more reliable than it used to be. Bounds checking in many - `dangerous' entry points has been improved. The code is now type-safe - according to gcc -Wall. The library has been checked for malloc leaks + is far more reliable than it used to be. Bounds checking in many + `dangerous' entry points has been improved. The code is now type-safe + according to gcc -Wall. The library has been checked for malloc leaks and arena corruption by the Purify memory-allocation tester. - - The ncurses code has been tested with a wide variety of applications - including: - + + The ncurses code has been tested with a wide variety of applications + including (versions starting with those noted): + + cdk + Curses Development Kit + [3]http://invisible-island.net/cdk. + [4]http://www.vexus.ca/CDK.html + ded - directory-editor [4]ftp://ftp.clark.net/pub/dickey/ded. - + directory-editor + [5]http://invisible-island.net/ded. + dialog - the underlying application used in Slackware's setup, and the - basis for similar applications on Linux. - - lynx-2.7 + the underlying application used in Slackware's setup, and the + basis for similar applications on GNU/Linux. + [6]http://invisible-island.net/dialog. + + lynx the character-screen WWW browser - - ncftp 2.0 + [7]http://lynx.isc.org/release. + + Midnight Commander + file manager + [8]www.gnome.org/mc/. + + mutt + mail utility + [9]http://www.mutt.org. + + ncftp file-transfer utility - + [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/. + + tin + newsreader, supporting color, MIME + [12]http://www.tin.org. + taper tape archive utility - + [13]http://members.iinet.net.au/~yusuf/taper/. + vh-1.6 Volks-Hypertext browser for the Jargon File - + [14]http://www.bg.debian.org/Packages/unstable/text/vh.html. + 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. - + [15]http://www.pp.clinet.fi/~walker/minicom.html. + vile - vi-like-emacs [6]ftp://ftp.clark.net/pub/dickey/vile. - - The ncurses distribution includes a selection of test programs + vi-like-emacs + [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 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. - - 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: + 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 + Free Software Foundation, which holds the copyright on ncurses. + Contact the current maintainers at [22]bug-ncurses@gnu.org. + 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. - + + Beta versions of ncurses and patches to the current release are made + available at [23]ftp://invisible-island.net/ncurses. + Future Plans - * Extended mouse support via Alessandro Rubini's gpm package. - * Extended-level XPG4 conformance, with internationalization + * Extended-level XPG4 conformance, with internationalization support. * Ports to more systems, including DOS and Windows. - - We need people to help with these projects. If you are interested in + + 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 - You can find lots of information on terminal-related topics not - covered in the terminfo file at [15]Richard Shuford's archive. + The distribution includes and uses a version of the terminfo-format + terminal description file maintained by Eric Raymond. + [24]http://earthspace.net/~esr/terminfo. + + You can find lots of information on terminal-related topics not + covered in the terminfo file at [25]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://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 + 7. http://lynx.isc.org/release/ + 8. file://localhost/usr/build/ncurses/ncurses-5.2-20021012/doc/html/www.gnome.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