X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ANNOUNCE;h=e39a0bee28d8656945825566da2f96f66f8a3c81;hp=5ef8f3c2f963c630fadb54c58d3fdbce3be2437e;hb=46722468f47c2b77b3987729b4bcf2321cccfd01;hpb=b1f61d9f3aa244512045a6b02e759825d7049d34 diff --git a/ANNOUNCE b/ANNOUNCE index 5ef8f3c2..e39a0bee 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,263 +1,290 @@ - Announcing ncurses 5.1 + 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 + 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 + 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 GNU/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 the 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://dickey.his.com/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; - very few applications will require recompilation, depending on the - platform. These are the highlights from the change-log since ncurses - 5.0 release. + 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: - * made the extended terminal capabilities - (configure --enable-tcap-names) a standard feature (though the - configure script can disable it, it is built by default). - * removed the trace() function and related trace support from the - production library. This is the only interface change that may - cause problems with existing applications linked to shared - libraries, since not all platforms use the minor version number. - * explicitly initialized to zero several data items which were - implicitly initialized, e.g., cur_term. If not explicitly - initialized, their storage type is C (common), and causes problems - linking on some platforms. - * modified curses.h.in, undef'ing some symbols to avoid conflict - with C++ STL. - - New features: - * added a new extension, assume_default_colors() to provide better - control over the use of default colors. This is the principal - visible difference between ncurses 5.1 and preceding versions. The - new extension allows an application to specify what colors pair 0 - uses. - NOTE: Pair 0 defaults to white on black unless you have invoked - use_default_colors() or set it via assume_default_colors(). An - application that calls start_colors() without setting the - background color will consistently have a black background no - matter what color your terminal's background actually is. - * made several fixes to the terminfo-to-termcap conversion, and have - been using the generated termcaps without further hand-tuning. - This builds on the extension use_extended_names() by adding - "obsolete" termcap strings to terminfo.src - + modified tic so that if extended names (i.e., - configure --enable-tcap-names) are active, then tic -x will - also write "obsolete" capabilities that are present in the - terminfo source. - + added screen's AX capability (for ECMA SGR 39 and 49) to - applicable terminfo entries, use presence of this as a check - for a small improvement in setting default colors. - + add -a option to tic and infocmp, which retains commented-out - capabilities during source translation/comparison, e.g., - captoinfo and infotocap. - * implemented limited support for UTF-8, useful with XFree86 xterm: - + if the configure --enable-widec option is given, append 'w' - to names of the generated libraries (e.g., libncursesw.so) to - avoid conflict with existing ncurses libraries. - + add a simple UTF-8 output driver to the experimental - wide-character support. If any of the environment variables - LC_ALL, LC_CTYPE or LANG contain the string "UTF-8", this - driver will be used to translate the output to UTF-8. - + modified view.c to make a rudimentary viewer of UTF-8 text. - * modify raw() and noraw() to clear/restore IEXTEN flag which - affects stty lnext on systems such as FreeBSD - * reordered tests during mouse initialization to allow for gpm to - run in xterm, or for xterm to be used under OS/2 EMX. Also dropped - test for $DISPLAY in favor of the terminfo capability kmous=\E[M - or if $TERM environment variable contains "xterm". - * added configure option --with-manpage-symlinks, which provides for - fully indexing manpage entries by making symbolic links for the - aliases. - * changed unctrl() to render C1 characters (128-159) as ~@, ~A, etc. - * add experimental configure option --enable-colorfgbg to check for - $COLORTERM variable as set by rxvt/aterm/Eterm. - * made the infocmp -F option less verbose. - * dropped support for gnat 3.10 (gnat 3.12 is current). + * 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: - * modified infocmp -e, -E options to ensure that generated - fallback.c type for Booleans agrees with term.h - * documented a special case of incompatiblity between ncurses 4.2 - and 5.0, added a section for this in INSTALL. - * corrected tests for file-descriptors in OS/2 EMX mouse support. A - negative value could be used by FD_SET, causing the select() call - to wait indefinitely. - * made 'tput flash' work properly for xterm by flushing output in - delay_output() when using napms(), and modifying xterm's terminfo - to specify no padding character. Otherwise, xterm's reported baud - rate could mislead ncurses into producing too few padding - characters. - * modified lib_addch.c to allow repeated update to the lower-right - corner, rather than displaying only the first character written - until the cursor is moved. Recent versions of SVr4 curses can - update the lower-right corner, and behave this way. - * modified echo() behavior of getch() to match Solaris curses for - carriage return and backspace (reported by Neil Zanella). - * corrected offsets used for subwindows in wresize() - * modified configure script so AC_MSG_ERROR is temporarily defined - to a warning in AC_PROG_CXX to make it recover from a missing C++ - compiler without requiring user to add --without-cxx option - * corrected logic in lib_twait.c as used by lib_mouse.c for GPM - mouse support when poll() is used rather than select(). - * made several fixes for buffer overflows, unchecked recursion, - improvements in performance, etc. See the NEWS file for details. + * 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 + * 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 SVr4 panels library, supporting a stack of + * 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 + * 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 + * 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 + * 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 SVr3 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. * Ada95 and C++ bindings. - * Support for mouse event reporting with X Window xterm and OS/2 + * 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 + * 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 + 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 + * 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 + The ncurses code has been tested with a wide variety of applications including (versions starting with those noted): cdk Curses Development Kit - [3]http://www.vexus.ca/CDK.html - [4]http://dickey.his.com/cdk. + [3]http://invisible-island.net/cdk. + [4]http://www.vexus.ca/CDK.html ded directory-editor - [5]http://dickey.his.com/ded. + [5]http://invisible-island.net/ded. dialog - the underlying application used in Slackware's setup, and the + the underlying application used in Slackware's setup, and the basis for similar applications on GNU/Linux. - [6]http://dickey.his.com/dialog. + [6]http://invisible-island.net/dialog. lynx the character-screen WWW browser [7]http://lynx.isc.org/release. - Midnight Commander 4.1 + Midnight Commander file manager [8]www.gnome.org/mc/. @@ -294,57 +321,57 @@ vile vi-like-emacs - [16]http://dickey.his.com/vile. + [16]http://invisible-island.net/vile. - The ncurses distribution includes a selection of test programs + 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 - Free Software Foundation, which holds the copyright on ncurses. + 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 + 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 [23]ftp://dickey.his.com/ncurses. + Beta versions of ncurses and patches to the current release are made + available at [23]ftp://invisible-island.net/ncurses. Future Plans - * 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. Other Related Resources - The distribution includes and uses a version of the terminfo-format - terminal description file maintained by Eric Raymond. + 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 + 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.gnu.org/pub/gnu/ncurses - 2. ftp://dickey.his.com/ncurses - 3. http://www.vexus.ca/CDK.html - 4. http://dickey.his.com/cdk/cdk.html - 5. http://dickey.his.com/ded/ded.html - 6. http://dickey.his.com/dialog/dialog.html + 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.1-20000704/doc/html/www.gnome.org/mc/ + 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/ @@ -352,13 +379,13 @@ References 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://dickey.his.com/vile/vile.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. mailto:juergen.pfeifer@gmx.net + 20. http://www.familiepfeifer.de/Contact.aspx?Lang=en 21. mailto:dickey@herndon4.his.com 22. mailto:bug-ncurses@gnu.org - 23. ftp://dickey.his.com/ncurses + 23. ftp://invisible-island.net/ncurses 24. http://earthspace.net/~esr/terminfo 25. http://www.cs.utk.edu/~shuford/terminal_index.html