📄 announce.html
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"><!-- $Id: announce.html,v 1.49 2005/10/09 14:18:35 tom Exp $--><HTML><HEAD><TITLE>Announcing ncurses 5.5</TITLE><link rev=made href="mailto:bug-ncurses@gnu.org"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD><BODY><H1>Announcing ncurses 5.5</H1>The ncurses (new curses) library is a free software emulation ofcurses in System V Release 4.0, and more. It uses terminfo format,supports pads and colorand multiple highlights and forms characters and function-key mapping,and has all the other SYSV-curses enhancements over BSD curses.<P>In mid-June 1995, the maintainer of 4.4BSD curses declared that heconsidered 4.4BSD curses obsolete, and encouraged the keepers ofUnix releases such as BSD/OS, FreeBSD and NetBSD to switch over toncurses.<P>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!<P>The distribution includes the library and support utilities, including aterminfo 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 forthe library and tools.<P>The ncurses distribution is available via anonymous FTP atthe GNU distribution site<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A> .<br>It is also available at<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> .<H1>Release Notes</H1>This release is designed to be upward compatible from ncurses 5.0 through 5.4;very few applications will require recompilation, depending on the platform.These are the highlights from the change-log since ncurses 5.4 release.<p>Interface changes:<ul> <li>terminfo installs "xterm-new" as "xterm" entry rather than "xterm-old" (aka xterm-r6). <li>terminfo data is installed using the tic -x option (few systems still use ncurses 4.2). <li>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. <li>modify parameter type in c++ binding for insch() and mvwinsch() to be consistent with underlying ncurses library (was char, is chtype). <li>change NCursesWindow::err_handler() to a virtual function. <li>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. <li>add symbol to curses.h which can be used to suppress include of stdbool.h, e.g., <pre> #define NCURSES_ENABLE_STDBOOL_H 0 #include <curses.h> </pre> <li>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. <li>winnstr() now returns multibyte character strings for the wide-character configuration. <li>assume_default_colors() no longer requires that use_default_colors() be called first. <li>data_ahead() now works with wide-characters. <li>slk_set() and slk_wset() now accept and store multibyte or multicolumn characters. <li>start_color() now returns OK if colors have already been started. start_color() also returns ERR if it cannot allocate memory. <li>pair_content() now returns -1 for consistency with init_pair() if it corresponds to the default-color. <li>unctrl() now returns null if its parameter does not correspond to an unsigned char.</ul>New features and improvements:<ul> <li>library <ul> <li>environment variable NCURSES_NO_UTF8_ACS supports miscellaneous terminal emulators which ignore alternate character set escape sequences when in UTF-8 mode. <li>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. <li>change GPM initialization, using dl library to load it dynamically at runtime. <li>form, menu and panel libraries support debug-tracing. </ul> <li>add NCURSES-Programming-HOWTO.html by Pradeep Padala (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/). <li>programs: <li>infocmp: <ul> <li>The -i option now matches 8-bit controls against its table entries, e.g., so it can analyze the xterm-8bit entry. <li>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. </ul> <li>tic: <ul> <li>modify termcap-parsing to retain 2-character aliases at the beginning of an entry if the "-x" option is used in tic. <li>filter out long extended names when translating to termcap format. Only two characters are permissible for termcap capability names. <li>correct translation of "%%" in terminfo format to termcap, e.g., using "tic -C". <li>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. <li>add a check for improperly ended strings, i.e., where a following line begins in column 1. <li>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. <li>add check (with debug configuration) that provides about the runtime changes that would be made to sgr0 for termcap applications. </ul> <li>tset: <ul> <li>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. </ul></ul>Major bug fixes:<ul> <li>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. <li>cells in the WINDOW which are continuations of a multicolumn character are encoded differently, making repainting more reliable. <li>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. <li>make setcchar() now works when its wchar_t* parameter is pointing to a string which contains more data than can be converted. <li>win_wchnstr() now works for more than one cell. <li>resizeterm() now processes all levels of window hierarchy. <li>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. <li>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.</ul>Portability:<ul> <li>configure script: <ul> <li>new options: <dl> <dt>--enable-largefile <dd>set compiler and linker flags to use largefile support. <dt>--enable-ext-colors <dd>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. <dt>--enable-ext-mouse <dd>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. <dt>--with-chtype <dd>overriding of the non-LP64 model's use of chtype <dt>--with-mmask-t <dd>overriding of the non-LP64 model's use of mmask_t <dt>--without-xterm-new <dd>Installs "xterm-old" as the "xterm" entry of the terminfo database. </dl> <li>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 <li>fixes/improvements for cross-compiling: <ul> <li>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. <li>correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -