diff options
Diffstat (limited to 'contrib/ncurses/announce.html.in')
-rw-r--r-- | contrib/ncurses/announce.html.in | 400 |
1 files changed, 297 insertions, 103 deletions
diff --git a/contrib/ncurses/announce.html.in b/contrib/ncurses/announce.html.in index 936b205..e62db47 100644 --- a/contrib/ncurses/announce.html.in +++ b/contrib/ncurses/announce.html.in @@ -1,6 +1,6 @@ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"> <!-- - $Id: announce.html.in,v 1.39 2000/07/04 21:59:36 tom Exp $ + $Id: announce.html.in,v 1.41 2000/10/28 21:43:25 tom Exp $ --> <HTML> <HEAD> @@ -22,8 +22,11 @@ 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.<P> -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!<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 a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1), @@ -38,136 +41,327 @@ the GNU distribution site <H1>Release Notes</H1> -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.1; +very few applications will require recompilation, depending on the platform. +These are the highlights from the change-log since ncurses 5.1 release. <p> Interface changes: <ul> - <li>made the extended terminal capabilities - (<code>configure --enable-tcap-names</code>) - a standard feature (though the configure script can disable it, - it is built by default). - - <li>removed the <code>trace()</code> 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. - - <li>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. - - <li>modified curses.h.in, undef'ing some symbols to avoid conflict with - C++ STL. + <li>change type of <code>ospeed</code> variable back to + <code>short</code> to match its use in legacy applications. It was + altered after ncurses 4.2 to <code>speed_t</code> to repair a type + mismatch which was introduced after 1.9.4 in 1995. The principal + users of termcap continued to use <code>short</code>, which is + not the same size. + <p> + <em>NOTE</em>: A few applications will have to be recompiled + (about 1% of the programs in a typical Linux distribution, + 10% of the programs that use ncurses). These are easy to + identify with <code>nm</code> or <code>strings</code>. + + <li>remove a private function <code>_nc_can_clear_with()</code>, which + was built with the configure --enable-expanded option but not used. + + <li>add several private functions (prefixed with "_nc_") for tracing + <code>chtype</code> values in the debug library, and for better + access and buffer limit checking. </ul> -New features: +New features and improvements: <ul> - <li>added a new extension, <code>assume_default_colors()</code> 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. - <p> - <em>NOTE</em>: Pair 0 defaults to white on black unless - you have invoked <code>use_default_colors()</code> or set it via - <code>assume_default_colors()</code>. An application that calls - <code>start_colors()</code> without setting the background color - will consistently have a black background no matter what color your - terminal's background actually is. - - <li>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 <code>use_extended_names()</code> by - adding "obsolete" termcap strings to terminfo.src + <li>rewrote <code>tgoto()</code> to make it better support existing + termcap applications which use hardcoded strings rather than obtain + all of their information from the termcap file. If the string does + not appear to be a terminfo string (i.e., does not refer to a "%p" + parameter, or terminfo-style padding), and termcap support is configured, <code>tgoto()</code> + will interpret it as termcap. Otherwise, as before, it will use + <code>tparm()</code>. + + <li>to ensure that the <code>tgoto()</code> changes work properly, + added checks to <code>tic</code> which report capabilities that do + not reference the expected number of parameters. + + <li>new configure script options: <ul> - <li>modified <code>tic</code> so that if extended names (i.e., - configure --enable-tcap-names) are active, then <code>tic -x</code> - will also write "obsolete" capabilities that are present in the - terminfo source. - - <li>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. - - <li>add -a option to tic and infocmp, which retains commented-out - capabilities during source translation/comparison, e.g., captoinfo - and infotocap. + <li>option <code>--disable-root-environ</code> adds runtime checks + which tell ncurses to disregard $TERMINFO and similar environment + variables if the current user is root, or running setuid/setgid. + + <li>option <code>--disable-assumed-color</code> allows you to use the + pre-5.1 convention of default colors used for color-pair 0 to be + configured (see assume_default_colors()). + + <li>implement configure script options that transform installed + program names, e.g., <code>--program-prefix</code>, including the + manpage names and cross references. + + <li>option <code>--with-database</code> allows you to specify a + different terminfo source-file to install. On OS/2 EMX, the + default is misc/emx.src, otherwise misc/terminfo.src + + <li>option <code>--with-default-terminfo-dir</code> allows you to + specify the default terminfo database directory. + + <li>option <code>--with-libtool</code> allows you to build with + <code>libtool</code>. <p> <em>NOTE</em>: <code>libtool</code> + uses a different notation for numbering shared library versions + from the existing ncurses configuration. + + <li>option <code>--with-manpage-tbl</code> causes the manpages to be + preprocessed by tbl(1) prior to installation, + + <li>option <code>--without-curses-h</code> causes the installation + process to install curses.h as ncurses.h and make appropriate + changes to headers and manpages. </ul> - <li>implemented limited support for UTF-8, useful with XFree86 xterm: + <li>modified configure script options: <ul> - <li>if the <code>configure --enable-widec</code> option is - given, append 'w' to names of the generated libraries (e.g., - libncursesw.so) to avoid conflict with existing ncurses libraries. - <li>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. - <li>modified view.c to make a rudimentary viewer of UTF-8 text. + <li>change symbol used by the <code>--install-prefix</code> configure + option from <code>INSTALL_PREFIX</code> to <code>DESTDIR</code> + (the latter has become common usage although the name is + misleading). + + <li>modify <code>ld -rpath</code> options (e.g., Linux, and Solaris) + to use an absolute pathname for the build tree's lib directory, + avoiding confusion with directories relative to the current one + with the installed programs. + + <li>modified <code>misc/run_tic.in</code> to use + <code>tic -o</code>, to eliminate dependency on + <code>$TERMINFO</code> variable for installs. </ul> - <li>modify <code>raw()</code> and <code>noraw()</code> to clear/restore - IEXTEN flag which affects <code>stty lnext</code> on systems such as FreeBSD + <li>terminfo database: + <ul> + <li>updated xterm terminfo entries to match XFree86 xterm patch #146. - <li>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 <code>$DISPLAY</code> in favor of the terminfo capability - <code>kmous=\E[M</code> or - if <code>$TERM</code> environment variable contains "xterm". + <li>added amiga-vnc, + Matrix Orbital, and + QNX qansi to misc/terminfo.src. - <li>added configure option <code>--with-manpage-symlinks</code>, which - provides for fully indexing manpage entries by making symbolic links - for the aliases. + <li>added os2 entry to misc/emx.src. - <li>changed <code>unctrl()</code> to render C1 characters (128-159) as - <code>~@</code>, <code>~A</code>, etc. + <li>add S0 and E0 extensions to <code>screen</code>'s terminfo entry + since otherwise the FreeBSD port makes it pass termcap equivalents + to <code>tgoto</code>, which would be misinterpreted by older + versions of ncurses. + </ul> + + <li>improvements to program usability: + <ul> + <li>modify programs to use <code>curses_version()</code> string to + report the version of ncurses with which they are compiled rather + than the NCURSES_VERSION string. The function returns the patch + level in addition to the major and minor version numbers. - <li>add experimental configure option --enable-colorfgbg to check for - $COLORTERM variable as set by rxvt/aterm/Eterm. + <li>modify <code>tput</code> program so it can be renamed or invoked via a link as + 'reset' or 'init', producing the same effect as <code>tput reset</code> or <code>tput init</code>. - <li>made the <code>infocmp -F</code> option less verbose. + <li>add error checking to infocmp's -v and -m options to ensure that + the option value is indeed a number. + </ul> - <li>dropped support for gnat 3.10 (gnat 3.12 is current). + <li>improved performance: + <ul> + <li>replace a lookup table in lib_vidattr.c used to decode + <code>no_color_video</code> with a logic expression which is faster. + </ul> </ul> Major bug fixes: <ul> - <li>modified infocmp -e, -E options to ensure that generated fallback.c - type for Booleans agrees with term.h + <li>correct <code>manlinks.sed</code> script introduced in ncurses 5.1 + to avoid using ERE "\+", which is not understood by standard versions + of <code>sed</code>. This happens to work with GNU <code>sed</code>, + but is not portable, and was the initial motivation for this release. + + <li>remove "hpux10.*" case from CF_SHARED_OPTS configure script macro. + This differed from the "hpux*" case by using reversed symbolic + links, which made the 5.1 version not match the configuration of + 5.0 shared libraries. + + <li>guard against corrupt terminfo data: + <ul> + <li>modify <code>tparm()</code> to disallow arithmetic on strings, + analyze the varargs list to read strings as strings and numbers as + numbers. + + <li>modify <code>tparm()</code>'s internal function + <code>spop()</code> to treat a null pointer as an empty string. + + <li>modify <code>parse_format()</code> in lib_tparm.c to ignore + precision if it is longer than 10000. + + <li>rewrote limit checks in lib_mvcur.c using new functions + <code>_nc_safe_strcat()</code>, etc. Made other related changes to + check lengths used for <code>strcat()</code> and + <code>strcpy()</code>. + </ul> + + <li>corrections to screen optimization: + <ul> + <li>added special case in lib_vidattr.c to reset underline and + standout for devices that have no sgr0 defined. + + <li>change handling of <code>non_dest_scroll_region</code> in + tty_update.c to clear text after it is shifted in rather than before + shifting out. Also correct row computation. + + <li>modify <code>rs2</code> capability in xterm-r6 and similar entries + where cursor save/restore bracketed the sequence for resetting video + attributes. The cursor restore would undo that. + </ul> + + <li>UTF-8 support: + <ul> + <li>when checking LC_ALL, LC_CTYPE, and LANG environment variables + for UTF-8 locale, ignore those which are set to an empty value, as + per SUSV2. - <li>documented a special case of incompatiblity between ncurses 4.2 and - 5.0, added a section for this in INSTALL. + <li>encode 0xFFFD in UTF-8 with 3 bytes, not 2. - <li>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. + <li>modify <code>_nc_utf8_outch()</code> to avoid sign-extension when + checking for out-of-range value. + </ul> - <li>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. + <li>other library fixes: + <ul> + <li>added checks for an empty <code>$HOME</code> environment + variable, to avoid retrieving terminfo descriptions from + <code>./.terminfo</code> . - <li>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. + <li>change functions <code>_nc_parse_entry()</code> and + <code>postprocess_termcap()</code> to avoid using + <code>strtok()</code>, because it is non-reentrant. - <li>modified echo() behavior of getch() to match Solaris curses for - carriage return and backspace (reported by Neil Zanella). + <li>initialize <code>fds[]</code> array to 0's in + <code>_nc_timed_wait()</code>; apparently <code>poll()</code> only + sets the <code>revents</code> members of that array when there is + activity corresponding to the related file. - <li>corrected offsets used for subwindows in <code>wresize()</code> + <li>add a check for null pointer in <code>Make_Enum_Type()</code>. - <li>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 + <li>fix a heap problem with the c++ binding. - <li>corrected logic in lib_twait.c as used by lib_mouse.c for GPM mouse - support when poll() is used rather than select(). + <li>correct missing includes for <string.h> in several places, + including the C++ binding. This is not noted by gcc unless we use + the <code>-fno-builtin</code> option. + </ul> + + <li>several fixes for tic: + <ul> + <li>add a check for empty buffers returned by <code>fgets()</code> in + comp_scan.c <code>next_char()</code> function, in case + <code>tic</code> is run on a non-text file (fixes a core dump). + + <li>modify <code>tic</code> to verify that its inputs are really files, + in case someone tries to read a directory (or + <code>/dev/zero</code>). + + <li>correct an uninitialized parameter to <code>open_tempfile()</code> + in tic.c which made "tic -I" give an ambiguous error message about + <code>tmpnam</code>. + + <li>correct logic in <code>adjust_cancels()</code>, which did not check + both alternatives when reclassifying an extended name between + boolean, number and string, causing an infinite loop in + <code>tic</code>. + </ul> + + <li>using new checks in <code>tic</code> for parameter counts in + capability strings, found/fixed several errors both in the + terminfo database and in the include/Caps file. + <ul> + <li>modified several terminfo capability strings, including the + definitions for setaf, setab, in include/Caps to indicate that the + entries are parameterized. This information is used to tell which + strings are translated when converting to termcap. This fixes a + problem where the generated termcap would contain a spurious "%p1" + for the terminfo "%p1%d". + + <li>correct parameter counts in include/Caps for dclk as well as some + printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp. + </ul> + + <li>various fixes for install scripts used to support configure + <code>--srcdir</code> and <code>--with-install-prefix</code>. + + <li>correct several mismatches between manpage filename and ".TH" + directives, renaming dft_fgbg.3x to default_colors.3x and + menu_attribs.3x to menu_attributes.3x. +</ul> + +Portability: +<ul> + <li>configure script: + <ul> + <li>newer config.guess, config.sub, including changes to support OS/2 + EMX. The configure script for OS/2 EMX still relies on a patch + since there is no (working) support for that platform in the main + autoconf distribution. + + <li>make configure script checks on variables <code>$GCC</code> and + <code>$GXX</code> consistently compare against 'yes' rather than + test if they are nonnull, since either may be set to the + corresponding name of the C or C++ compiler. + + <li>change configure script to use AC_CANONICAL_SYSTEM rather than + AC_CANONICAL_HOST, which means that <code>configure --target</code> + will set a default program-prefix. + + <li>modify the check for big-core to force a couple of memory + accesses, which may work as needed for older/less-capable machines + (if not, there's still the explicit configure option). + + <li>modify configure test for <code>tcgetattr()</code> to allow for + old implementations, e.g., on BeOS, which only defined it as a + macro. + + <li>add configure check for filesystems (such as OS/2 EMX) which do + not distinguish between upper/lowercase filenames, use this to fix + tags rules in makefiles. + + <li>add MKncurses_def.sh to generate fallback definitions for + ncurses_cfg.h, to quiet gcc -Wundef warnings, modified ifdef's in + code to consistently use "#if" rather than "#ifdef". + + <li>change most remaining unquoted parameters of <code>test</code> in + configure script to use quotes, for instance fixing a problem in the + <code>--disable-database</code> option. + + <li>modify scripts so that "make install.data" works on OS/2 EMX. + + <li>modify scripts and makefiles so the Ada95 directory builds on + OS/2 EMX. + </ul> + + <li>library: + <ul> + <li>replaced case-statement in <code>_nc_tracebits()</code> for CSIZE + with a table to simplify working around implementations that define + random combinations of the related macros to zero. + + <li>improved OS/2 mouse support by retrying as a 2-button mouse if code + fails to set up a 3-button mouse. + + <li>added private entrypoint <code>_nc_basename()</code>, used to + consolidate related code in progs, as well as accommodating OS/2 EMX + pathnames. + + <li>alter definition of NCURSES_CONST to make it non-empty. + + <li>redefine 'TEXT' in menu.h for AMIGA, since it is reported to have + an (unspecified) symbol conflict. + </ul> + + <li>programs: + <ul> + <li>modified progs/tset.c and tack/sysdep.c to build with sgttyb + interface if neither termio or termios is available. Tested this + with FreeBSD 2.1.5 (which does have termios - but the sgttyb does + work). + </ul> - <li>made several fixes for buffer overflows, unchecked recursion, - improvements in performance, etc. See the NEWS file for details. </ul> <H1>Features of Ncurses</H1> |