X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ANNOUNCE;h=e09e73177a45557238edf8d979c8ac5a3b665a66;hp=5a2a139850d892ffa8efa3b34501cbf10710a5f0;hb=8c0ecb76c78517e32c606dadf87b5f31f24b78fe;hpb=55ccd2b959766810cf7db8d1c4462f338ce0afc8;ds=sidebyside diff --git a/ANNOUNCE b/ANNOUNCE index 5a2a1398..e09e7317 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ - Announcing ncurses 5.5 + Announcing ncurses 5.7 The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses terminfo format, @@ -27,192 +27,217 @@ Release Notes This release is designed to be upward compatible from ncurses 5.0 - through 5.4; very few applications will require recompilation, + through 5.6; very few applications will require recompilation, depending on the platform. These are the highlights from the - change-log since ncurses 5.4 release. + change-log since ncurses 5.6 release. Interface changes: - * terminfo installs "xterm-new" as "xterm" entry rather than - "xterm-old" (aka xterm-r6). - * terminfo data is installed using the tic -x option (few systems - still use ncurses 4.2). - * modify C++ binding to work with newer C++ compilers by providing - initializers and using modern casts. Old-style header names are - still used in this release to allow compiling with not-so-old - compilers. - * modify parameter type in c++ binding for insch() and mvwinsch() to - be consistent with underlying ncurses library (was char, is - chtype). - * change NCursesWindow::err_handler() to a virtual function. - * form and menu libraries now work with wide-character data. - Applications which bypassed the form library and manipulated the - FIELD.buf data directly will not work properly with libformw, - since that no longer points to an array of char. The - set_field_buffer() and field_buffer() functions translate to/from - the actual field data. - * add symbol to curses.h which can be used to suppress include of - stdbool.h, e.g., - #define NCURSES_ENABLE_STDBOOL_H 0 - #include - - * change SP->_current_attr to a pointer, adjust ifdef's to ensure - that libtinfo.so and libtinfow.so have the same ABI. The reason - for this is that the corresponding data which belongs to the - upper-level ncurses library has a different size in each model. - * winnstr() now returns multibyte character strings for the - wide-character configuration. - * assume_default_colors() no longer requires that - use_default_colors() be called first. - * data_ahead() now works with wide-characters. - * slk_set() and slk_wset() now accept and store multibyte or - multicolumn characters. - * start_color() now returns OK if colors have already been started. - start_color() also returns ERR if it cannot allocate memory. - * pair_content() now returns -1 for consistency with init_pair() if - it corresponds to the default-color. - * unctrl() now returns null if its parameter does not correspond to - an unsigned char. + * generate linkable stubs for some macros: + getattrs New features and improvements: * library - + environment variable NCURSES_NO_UTF8_ACS supports - miscellaneous terminal emulators which ignore alternate - character set escape sequences when in UTF-8 mode. - + modify initialization of key lookup table so that if an - extended capability (tic -x) string is defined, and its name - begins with 'k', ncurses will automatically treat it as a - key. - + change GPM initialization, using dl library to load it - dynamically at runtime. - + form, menu and panel libraries support debug-tracing. - * add NCURSES-Programming-HOWTO.html by Pradeep Padala (see - http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/). + + new flavor of the ncurses library provides rudimentary + support for POSIX threads. Several functions are reentrant, + but most require either a window-level or screen-level mutex. + (This is API-compatible, but not ABI-compatible with the + normal library). + + add NCURSES_OPAQUE symbol to curses.h, will use to make + structs opaque in selected configurations. + + add NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS symbols to + curses.h to make it simpler to tell if the extended functions + and/or colors are declared. + + add wresize() to C++ binding + + eliminate fixed-buffer vsprintf() calls in C++ binding. + + add several functions to C++ binding which wrap C functions + that pass a WINDOW* parameter. + + adapt mouse-handling code from menu library in form-library + + improve tracing for form library, showing created forms, + fields, etc. + + make $NCURSES_NO_PADDING feature work for termcap interface . + + add check to trace-file open, if the given name is a + directory, add ".log" to the name and try again. + + several new manpages: curs_legacy.3x, curs_memleaks.3x, + curs_opaque.3x and curs_threads.3x * programs: - * infocmp: - + The -i option now matches 8-bit controls against its table - entries, e.g., so it can analyze the xterm-8bit entry. - + add "-x" option to infocmp like tic's "-x", for use in "-F" - comparisons. This modifies infocmp to only report extended - capabilities if the -x option is given, making this more - consistent with tic. Some scripts may break, since infocmp - previous gave this information without an option. - * tic: - + modify termcap-parsing to retain 2-character aliases at the - beginning of an entry if the "-x" option is used in tic. - + filter out long extended names when translating to termcap - format. Only two characters are permissible for termcap - capability names. - + correct translation of "%%" in terminfo format to termcap, - e.g., using "tic -C". - + modify the "-c -v" options to ignore delays when comparing - strings. Also modify it to ignore a canceled sgr string, - e.g., for terminals which cannot properly combine attributes - in one control sequence. - + add a check for improperly ended strings, i.e., where a - following line begins in column 1. - + add a check in tic for terminfo entries having an sgr0 but no - sgr string. This confuses Tru64 and HPUX curses when combined - with color, e.g., making them leave line-drawing characters - in odd places. - + add check (with debug configuration) that provides about the - runtime changes that would be made to sgr0 for termcap - applications. - * tset: - + add -c and -w options to allow user to suppress ncurses' - resizing of the terminal emulator window in the special case - where it is not able to detect the true size. + + modified three test-programs to demonstrate the threading + support in this version: ditto, rain, worm. + + several new test-programs: demo_panels, dots_mvcur, + inch_wide, inchs, key_name, key_names, savescreen, + savescreen.sh test_arrays, test_get_wstr, test_getstr, + test_instr, test_inwstr and test_opaque. + + add adacurses-config to the Ada95 install. + + modify tic -f option to format spaces as \s to prevent them + from being lost when that is read back in unformatted + strings. + + The tack program is now distributed separately from ncurses. + * terminal database + + added entries: + o Eterm-256color, Eterm-88color and rxvt-88color + o aterm + o konsole-256color + o mrxvt + o screen.mlterm + o screen.rxvt + o teraterm4.59 is now the primary primary teraterm entry, + renamed original to teraterm2.3 + o 9term terminal + o Newbury Data entries + + updated/improved entries: + o gnome to version 2.22.3 + o h19, z100 + o konsole to version 1.6.6 + o mlterm, mlterm+pcfkeys + o xterm, and building-blocks for function-keys to [3]xterm + patch #230. Major bug fixes: - * improve logic in tgetent() which adjusts the termcap "me" string - to work with ISO-2022 string used in xterm-new. This is a feature - that was incompletely implemented in ncurses 5.3. ncurses attempts - to provide termcap clients with the portion of the sgr0 (termcap - "me") string that does not reset line-drawing. - * cells in the WINDOW which are continuations of a multicolumn - character are encoded differently, making repainting more - reliable. - * amend change to setupterm() in ncurses 5.4 (20030405) which would - reuse the value of cur_term if the same output was selected. This - now reuses it only when setupterm() is called from tgetent(), - which has no notion of separate SCREENs. Note that tgetent() must - be called after initscr() or newterm() to use this feature. - * make setcchar() now works when its wchar_t* parameter is pointing - to a string which contains more data than can be converted. - * win_wchnstr() now works for more than one cell. - * resizeterm() now processes all levels of window hierarchy. - * disable GPM mouse support when $TERM happens to be prefixed with - "xterm". Gpm_Open() would otherwise assert that it can deal with - mouse events in this case. - * add SP->_screen_acs_map[], used to ensure that mapping of missing - line-drawing characters is handled properly. For example, - ACS_DARROW is absent from xterm-new, and it was coincidentally - displayed the same as ACS_BTEE. + * add logic to tic for cancelling strings in user-defined + capabilities (this is needed for current konsole terminfo entry). + * modify mk-1st.awk so the generated makefile rules for linking or + installing shared libraries do not first remove the library, in + case it is in use, e.g., libncurses.so by /bin/sh. + * correct check for notimeout() in wgetch(). + * fix a sign-extension bug in infocmp's repair_acsc() function. + * change winnstr() to stop at the end of the line. + * make Ada95 demo_panels() example work. + * fix for adding a non-spacing character at the beginning of a line. + * fill in extended-color pair to make colors work for + wide-characters using extended-colors. + * improve refresh of window on top of multi-column characters, + taking into account split characters on left/right window + boundaries. + * modify win_wchnstr() to ensure that only a base cell is returned + for each multi-column character. + * improve waddch() and winsch() handling of EILSEQ from mbrtowc() by + using unctrl() to display illegal bytes rather than trying to + append further bytes to make up a valid sequence. + * restore curs_set() state after endwin()/refresh() + * modify keyname() to use "^X" form only if meta() has been called, + or if keyname() is called without initializing curses, e.g., via + initscr() or newterm(). + * modify unctrl() to check codes in 128-255 range versus isprint(). + If they are not printable, and locale was set, use a "M-" or "~" + sequence. + * improve resizeterm() by moving ripped-off lines, and repainting + the soft-keys. + * modify form library to accept control characters such as newline + in set_field_buffer(), which is compatible with Solaris. + * use NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc., + to make those work properly with the --enable-ext-mouse + configuration + * correct some functions in Ada95 binding which were using return + value from C where none was returned. + * reviewed/fixed issues reported by Coverity and Klocwork tools. Portability: * configure script: + new options: - --enable-largefile - set compiler and linker flags to use largefile - support. + --disable-big-strings + control whether static string tables are generated + as single large strings (to improve startup + performance), or as array of individual strings. + + --disable-relink + control whether shared libraries are relinked + (during install) when rpath is enabled. + + --disable-tic-depends + make explicit whether tic library depends on + ncurses/ncursesw library. + + --enable-mixed-case + override the configure script's check if the + filesystem supports mixed-case filenames. This + allows one to control how the terminal database + maps to the filesystem. For filesystems that do not + support mixed-case, the library uses generate + 2-character (hexadecimal) codes for the lower-level + of the filesystem terminfo database + + --enable-reentrant + builds a different flavor of the ncurses library + (ncursest) which improves reentrant use of the + library by reducing global and static variables + (see the "--with-pthread" option for the threaded + support). + + --enable-weak-symbols + use weak-symbols for linking to the POSIX thread + library, and use the same soname for the ncurses + shared library as the normal library (caveat: the + ABI is for the threaded library, which makes global + data accessed via functions). + + --with-pthread + build with the POSIX thread library (tested with + AIX, Linux, FreeBSD, OpenBSD, HPUX, IRIX64, + Solaris, Tru64). + + --with-ticlib + build/install the tic-support functions in a + separate library + + + improved options: --enable-ext-colors - Allow encoding of 256 foreground and background - colors, e.g., with the xterm-256color or - xterm-88color terminfo entries. This requires ABI 6 - because it changes the size of cchar_t. - - --enable-ext-mouse - This defines NCURSES_MOUSE_VERSION 2, and modifies - the encoding of mouse events to support wheel mice, - which may transmit buttons 4 and 5. This works with - xterm and similar terminal emulators. This requires - ABI 6 because it changes the encoding of mouse - events. + requires the wide-character configuration. --with-chtype - overriding of the non-LP64 model's use of chtype - - --with-mmask-t - overriding of the non-LP64 model's use of mmask_t - - --without-xterm-new - Installs "xterm-old" as the "xterm" entry of the - terminfo database. - - + The --with-termlib option now accepts a value which sets the - name of the terminfo library. This would allow a packager to - build libtinfow.so renamed to coincide with libtinfo.so - + fixes/improvements for cross-compiling: - o suppress $suffix in misc/run_tic.sh when - cross-compiling. This allows cross-compiles to use the - host's tic program to handle the "make install.data" - step. - o correct BUILD_CPPFLAGS substitution in - ncurses/Makefile.in, to allow cross-compiling from a - separate directory tree. + ignore option value "unsigned" is always added to + the type in curses.h; do the same for + --with-mmask-t. + + --with-dmalloc + build-fix for redefinition of strndup. + + --with-hashed-db + accepts a parameter which is the install-prefix of + a given Berkeley Database. + + --with-hashed-db + the $LIBS environment variable overrides the search + for the db library. + + --without-hashed-db + assumed when "--disable-database" is used. + + * other configure/build issues: + + build-fixes for LynxOS + + modify shared-library rules to allow FreeBSD 3.x to use + rpath. + + build-fix for FreeBSD "contemporary" TTY interface. + + build-fixes for AIX with libtool. + + build-fixes for Darwin and libtool. + + modify BeOS-specific ifdef's to build on Haiku. + + corrected gcc options for building shared libraries on + Solaris and IRIX64. + + change shared-library configuration for OpenBSD, make rpath + work. + + build-fixes for using libutf8, e.g., on OpenBSD 3.7 + + add "-e" option in ncurses/Makefile.in when generating + source-files to force earlier exit if the build environment + fails unexpectedly. + + add support for shared libraries for QNX. + + change delimiter in MKlib_gen.sh from '%' to '@', to avoid + substitution by IBM xlc to '#' as part of its extensions to + digraphs. * library: - + add ifdef's for _LP64 in curses.h to avoid using wasteful - 64-bits for chtype and mmask_t, but add configure option - --disable-lp64 in case anyone used that configuration. - + modify C++ binding to use some C internal functions to make - it compile properly on Solaris (and other platforms). - + remove check in newwin() that prevents allocating windows - that extend beyond the screen (Solaris does this). - + check for nl_langinfo(CODESET), use it if available. This - replaces ad hoc tests of environment variables to check if - the terminal is setup for UTF-8 encoding. Applications which - do not call setlocale() should be corrected, to make them - work properly with UTF-8 encoding. - In particular, applications which assume (and do not call - setlocale()) that Latin-1 codes are printable will no longer - work in a UTF-8 locale since the ad hoc check of environment - variables to see if the locale was UTF-8 is not used when - nl_langinfo(CODESET) is available. - + use setlocale() to query the program's current locale rather - than using getenv(). This supports applications which rely - upon legacy treatment of 8-bit characters when the locale is - not initialized. + + rewrite wrapper for wcrtomb(), making it work on Solaris. + This is used in the form library to determine the length of + the buffer needed by field_buffer. + + add/use configure script macro CF_SIG_ATOMIC_T, use the + corresponding type for data manipulated by signal handlers. + + set locale in misc/ncurses-config.in since it uses a range + + disable GPM mouse support when $TERM does not happen to + contain "linux", since Gpm_Open() no longer limits its + assertion to terminals that it might handle, e.g., within + "screen" in xterm. + + reset mouse file-descriptor when unloading GPM library. + * test programs: + + update test programs to build/work with various UNIX curses + for comparisons. Features of Ncurses @@ -239,17 +264,15 @@ 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 - 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). + level features, and most EXTENDED features). It includes 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 capability. * Ada95 and C++ bindings. - * Support for mouse event reporting with X Window xterm and OS/2 - console windows. + * Support for mouse event reporting with X Window xterm and FreeBSD + 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. @@ -260,7 +283,9 @@ 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. + * Support for 256-color terminals, such as modern xterm, when + configured using the --enable-ext-colors option. + * Support for 16-color terminals, such as aixterm and modern xterm. * Better cursor-movement optimization. The package now features a cursor-local-movement computation more efficient than either BSD's or System V's. @@ -331,55 +356,51 @@ cdk Curses Development Kit - [3]http://invisible-island.net/cdk/ - [4]http://www.vexus.ca/products/CDK/ + [4]http://invisible-island.net/cdk/ + [5]http://www.vexus.ca/products/CDK/ ded directory-editor - [5]http://invisible-island.net/ded/ + [6]http://invisible-island.net/ded/ dialog the underlying application used in Slackware's setup, and the basis for similar applications on GNU/Linux. - [6]http://invisible-island.net/dialog/ + [7]http://invisible-island.net/dialog/ lynx the character-screen WWW browser - [7]http://lynx.isc.org/release/ + [8]http://lynx.isc.org/release/ Midnight Commander file manager - [8]http://www.ibiblio.org/mc/ + [9]http://www.ibiblio.org/mc/ mutt mail utility - [9]http://www.mutt.org/ + [10]http://www.mutt.org/ ncftp file-transfer utility - [10]http://www.ncftp.com/ + [11]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/ + [12]http://www.bostic.com/vi/ pinfo Lynx-like info browser. - [12]http://dione.ids.pl/~pborys/software/pinfo/ + [13]https://alioth.debian.org/projects/pinfo/ tin - newsreader, supporting color, MIME [13]http://www.tin.org/ - - vh-1.6 - Volks-Hypertext browser for the Jargon File - [14]http://www.debian.org/Packages/unstable/text/vh.html + newsreader, supporting color, MIME [14]http://www.tin.org/ as well as some that use ncurses for the terminfo support alone: minicom terminal emulator - [15]http://www.netsonic.fi/~walker/minicom.html + [15]http://alioth.debian.org/projects/minicom/ vile vi-like-emacs @@ -419,9 +440,10 @@ Future Plans Other Related Resources The distribution provides a newer version of the terminfo-format - terminal description file maintained by [20]Eric Raymond . Unlike the - older version, the termcap and terminfo data are provided in the same - file. + terminal description file once maintained by [20]Eric Raymond . Unlike + the older version, the termcap and terminfo data are provided in the + same file, and provides several user-definable extensions beyond the + X/Open specification. You can find lots of information on terminal-related topics not covered in the terminfo file at [21]Richard Shuford's archive . @@ -430,19 +452,19 @@ References 1. ftp://ftp.gnu.org/gnu/ncurses/ 2. ftp://invisible-island.net/ncurses/ - 3. http://invisible-island.net/cdk/ - 4. http://www.vexus.ca/products/CDK/ - 5. http://invisible-island.net/ded/ - 6. http://invisible-island.net/dialog/ - 7. http://lynx.isc.org/release/ - 8. http://www.ibiblio.org/mc/ - 9. http://www.mutt.org/ - 10. http://www.ncftp.com/ - 11. http://www.bostic.com/vi/ - 12. http://dione.ids.pl/~pborys/software/pinfo/ - 13. http://www.tin.org/ - 14. http://www.debian.org/Packages/unstable/text/vh.html - 15. http://www.netsonic.fi/~walker/minicom.html + 3. http://invisible-island.net/xterm/xterm.log.html#xterm_230 + 4. http://invisible-island.net/cdk/ + 5. http://www.vexus.ca/products/CDK/ + 6. http://invisible-island.net/ded/ + 7. http://invisible-island.net/dialog/ + 8. http://lynx.isc.org/release/ + 9. http://www.ibiblio.org/mc/ + 10. http://www.mutt.org/ + 11. http://www.ncftp.com/ + 12. http://www.bostic.com/vi/ + 13. https://alioth.debian.org/projects/pinfo/ + 14. http://www.tin.org/ + 15. http://alioth.debian.org/projects/minicom/ 16. http://invisible-island.net/vile/ 17. mailto:dickey@invisible-island.net 18. mailto:bug-ncurses@gnu.org