announce.html.in revision 76726
150276Speter<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"> 250276Speter<!-- 376726Speter $Id: announce.html.in,v 1.41 2000/10/28 21:43:25 tom Exp $ 450276Speter--> 550276Speter<HTML> 650276Speter<HEAD> 750276Speter<TITLE>Announcing ncurses @VERSION@</TITLE> 850276Speter<link rev=made href="mailto:bug-ncurses@gnu.org"> 950276Speter</HEAD> 1050276Speter<BODY> 1150276Speter 1250276Speter<H1>Announcing ncurses @VERSION@</H1> 1350276Speter 1450276SpeterThe ncurses (new curses) library is a free software emulation of 1550276Spetercurses in System V Release 4.0, and more. It uses terminfo format, 1650276Spetersupports pads and color 1750276Speterand multiple highlights and forms characters and function-key mapping, 1850276Speterand has all the other SYSV-curses enhancements over BSD curses.<P> 1950276Speter 2050276SpeterIn mid-June 1995, the maintainer of 4.4BSD curses declared that he 2150276Speterconsidered 4.4BSD curses obsolete, and is encouraging the keepers of 2250276SpeterUnix releases such as BSD/OS, freeBSD and netBSD to switch over to 2350276Speterncurses.<P> 2450276Speter 2576726SpeterThe ncurses code was developed under GNU/Linux. 2676726SpeterIt has been in use for some time with OpenBSD as the system curses library, 2776726Speterand on FreeBSD and NetBSD as an external package. 2876726SpeterIt should port easily to any ANSI/POSIX-conforming UNIX. 2976726SpeterIt has even been ported to OS/2 Warp!<P> 3050276Speter 3150276SpeterThe distribution includes the library and support utilities, including a 3250276Speterterminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1), 3350276Speterand a termcap conversion tool captoinfo(1). Full manual pages are provided for 3450276Speterthe library and tools.<P> 3550276Speter 3650276SpeterThe ncurses distribution is available via anonymous FTP at 3750276Speterthe GNU distribution site 3856639Speter<A HREF="ftp://ftp.gnu.org/pub/gnu/ncurses">ftp://ftp.gnu.org/pub/gnu/ncurses</A>. 3966963Speter<br>It is also available at 4062449Speter<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>. 4150276Speter 4250276Speter<H1>Release Notes</H1> 4350276Speter 4476726SpeterThis release is designed to be upward compatible from ncurses 5.0 and 5.1; 4576726Spetervery few applications will require recompilation, depending on the platform. 4676726SpeterThese are the highlights from the change-log since ncurses 5.1 release. 4750276Speter<p> 4850276SpeterInterface changes: 4950276Speter<ul> 5076726Speter <li>change type of <code>ospeed</code> variable back to 5176726Speter <code>short</code> to match its use in legacy applications. It was 5276726Speter altered after ncurses 4.2 to <code>speed_t</code> to repair a type 5376726Speter mismatch which was introduced after 1.9.4 in 1995. The principal 5476726Speter users of termcap continued to use <code>short</code>, which is 5576726Speter not the same size. 5676726Speter <p> 5776726Speter <em>NOTE</em>: A few applications will have to be recompiled 5876726Speter (about 1% of the programs in a typical Linux distribution, 5976726Speter 10% of the programs that use ncurses). These are easy to 6076726Speter identify with <code>nm</code> or <code>strings</code>. 6150276Speter 6276726Speter <li>remove a private function <code>_nc_can_clear_with()</code>, which 6376726Speter was built with the configure --enable-expanded option but not used. 6450276Speter 6576726Speter <li>add several private functions (prefixed with "_nc_") for tracing 6676726Speter <code>chtype</code> values in the debug library, and for better 6776726Speter access and buffer limit checking. 6850276Speter</ul> 6976726SpeterNew features and improvements: 7050276Speter<ul> 7176726Speter <li>rewrote <code>tgoto()</code> to make it better support existing 7276726Speter termcap applications which use hardcoded strings rather than obtain 7376726Speter all of their information from the termcap file. If the string does 7476726Speter not appear to be a terminfo string (i.e., does not refer to a "%p" 7576726Speter parameter, or terminfo-style padding), and termcap support is configured, <code>tgoto()</code> 7676726Speter will interpret it as termcap. Otherwise, as before, it will use 7776726Speter <code>tparm()</code>. 7850276Speter 7976726Speter <li>to ensure that the <code>tgoto()</code> changes work properly, 8076726Speter added checks to <code>tic</code> which report capabilities that do 8176726Speter not reference the expected number of parameters. 8276726Speter 8376726Speter <li>new configure script options: 8462449Speter <ul> 8576726Speter <li>option <code>--disable-root-environ</code> adds runtime checks 8676726Speter which tell ncurses to disregard $TERMINFO and similar environment 8776726Speter variables if the current user is root, or running setuid/setgid. 8850276Speter 8976726Speter <li>option <code>--disable-assumed-color</code> allows you to use the 9076726Speter pre-5.1 convention of default colors used for color-pair 0 to be 9176726Speter configured (see assume_default_colors()). 9250276Speter 9376726Speter <li>implement configure script options that transform installed 9476726Speter program names, e.g., <code>--program-prefix</code>, including the 9576726Speter manpage names and cross references. 9676726Speter 9776726Speter <li>option <code>--with-database</code> allows you to specify a 9876726Speter different terminfo source-file to install. On OS/2 EMX, the 9976726Speter default is misc/emx.src, otherwise misc/terminfo.src 10076726Speter 10176726Speter <li>option <code>--with-default-terminfo-dir</code> allows you to 10276726Speter specify the default terminfo database directory. 10376726Speter 10476726Speter <li>option <code>--with-libtool</code> allows you to build with 10576726Speter <code>libtool</code>. <p> <em>NOTE</em>: <code>libtool</code> 10676726Speter uses a different notation for numbering shared library versions 10776726Speter from the existing ncurses configuration. 10876726Speter 10976726Speter <li>option <code>--with-manpage-tbl</code> causes the manpages to be 11076726Speter preprocessed by tbl(1) prior to installation, 11176726Speter 11276726Speter <li>option <code>--without-curses-h</code> causes the installation 11376726Speter process to install curses.h as ncurses.h and make appropriate 11476726Speter changes to headers and manpages. 11562449Speter </ul> 11650276Speter 11776726Speter <li>modified configure script options: 11862449Speter <ul> 11976726Speter <li>change symbol used by the <code>--install-prefix</code> configure 12076726Speter option from <code>INSTALL_PREFIX</code> to <code>DESTDIR</code> 12176726Speter (the latter has become common usage although the name is 12276726Speter misleading). 12376726Speter 12476726Speter <li>modify <code>ld -rpath</code> options (e.g., Linux, and Solaris) 12576726Speter to use an absolute pathname for the build tree's lib directory, 12676726Speter avoiding confusion with directories relative to the current one 12776726Speter with the installed programs. 12876726Speter 12976726Speter <li>modified <code>misc/run_tic.in</code> to use 13076726Speter <code>tic -o</code>, to eliminate dependency on 13176726Speter <code>$TERMINFO</code> variable for installs. 13262449Speter </ul> 13350276Speter 13476726Speter <li>terminfo database: 13576726Speter <ul> 13676726Speter <li>updated xterm terminfo entries to match XFree86 xterm patch #146. 13750276Speter 13876726Speter <li>added amiga-vnc, 13976726Speter Matrix Orbital, and 14076726Speter QNX qansi to misc/terminfo.src. 14150276Speter 14276726Speter <li>added os2 entry to misc/emx.src. 14350276Speter 14476726Speter <li>add S0 and E0 extensions to <code>screen</code>'s terminfo entry 14576726Speter since otherwise the FreeBSD port makes it pass termcap equivalents 14676726Speter to <code>tgoto</code>, which would be misinterpreted by older 14776726Speter versions of ncurses. 14876726Speter </ul> 14950276Speter 15076726Speter <li>improvements to program usability: 15176726Speter <ul> 15276726Speter <li>modify programs to use <code>curses_version()</code> string to 15376726Speter report the version of ncurses with which they are compiled rather 15476726Speter than the NCURSES_VERSION string. The function returns the patch 15576726Speter level in addition to the major and minor version numbers. 15650276Speter 15776726Speter <li>modify <code>tput</code> program so it can be renamed or invoked via a link as 15876726Speter 'reset' or 'init', producing the same effect as <code>tput reset</code> or <code>tput init</code>. 15950276Speter 16076726Speter <li>add error checking to infocmp's -v and -m options to ensure that 16176726Speter the option value is indeed a number. 16276726Speter </ul> 16350276Speter 16476726Speter <li>improved performance: 16576726Speter <ul> 16676726Speter <li>replace a lookup table in lib_vidattr.c used to decode 16776726Speter <code>no_color_video</code> with a logic expression which is faster. 16876726Speter </ul> 16976726Speter 17050276Speter</ul> 17150276SpeterMajor bug fixes: 17250276Speter<ul> 17376726Speter <li>correct <code>manlinks.sed</code> script introduced in ncurses 5.1 17476726Speter to avoid using ERE "\+", which is not understood by standard versions 17576726Speter of <code>sed</code>. This happens to work with GNU <code>sed</code>, 17676726Speter but is not portable, and was the initial motivation for this release. 17750276Speter 17876726Speter <li>remove "hpux10.*" case from CF_SHARED_OPTS configure script macro. 17976726Speter This differed from the "hpux*" case by using reversed symbolic 18076726Speter links, which made the 5.1 version not match the configuration of 18176726Speter 5.0 shared libraries. 18250276Speter 18376726Speter <li>guard against corrupt terminfo data: 18476726Speter <ul> 18576726Speter <li>modify <code>tparm()</code> to disallow arithmetic on strings, 18676726Speter analyze the varargs list to read strings as strings and numbers as 18776726Speter numbers. 18850276Speter 18976726Speter <li>modify <code>tparm()</code>'s internal function 19076726Speter <code>spop()</code> to treat a null pointer as an empty string. 19150276Speter 19276726Speter <li>modify <code>parse_format()</code> in lib_tparm.c to ignore 19376726Speter precision if it is longer than 10000. 19450276Speter 19576726Speter <li>rewrote limit checks in lib_mvcur.c using new functions 19676726Speter <code>_nc_safe_strcat()</code>, etc. Made other related changes to 19776726Speter check lengths used for <code>strcat()</code> and 19876726Speter <code>strcpy()</code>. 19976726Speter </ul> 20050276Speter 20176726Speter <li>corrections to screen optimization: 20276726Speter <ul> 20376726Speter <li>added special case in lib_vidattr.c to reset underline and 20476726Speter standout for devices that have no sgr0 defined. 20562449Speter 20676726Speter <li>change handling of <code>non_dest_scroll_region</code> in 20776726Speter tty_update.c to clear text after it is shifted in rather than before 20876726Speter shifting out. Also correct row computation. 20962449Speter 21076726Speter <li>modify <code>rs2</code> capability in xterm-r6 and similar entries 21176726Speter where cursor save/restore bracketed the sequence for resetting video 21276726Speter attributes. The cursor restore would undo that. 21376726Speter </ul> 21462449Speter 21576726Speter <li>UTF-8 support: 21676726Speter <ul> 21776726Speter <li>when checking LC_ALL, LC_CTYPE, and LANG environment variables 21876726Speter for UTF-8 locale, ignore those which are set to an empty value, as 21976726Speter per SUSV2. 22076726Speter 22176726Speter <li>encode 0xFFFD in UTF-8 with 3 bytes, not 2. 22276726Speter 22376726Speter <li>modify <code>_nc_utf8_outch()</code> to avoid sign-extension when 22476726Speter checking for out-of-range value. 22576726Speter </ul> 22676726Speter 22776726Speter <li>other library fixes: 22876726Speter <ul> 22976726Speter <li>added checks for an empty <code>$HOME</code> environment 23076726Speter variable, to avoid retrieving terminfo descriptions from 23176726Speter <code>./.terminfo</code> . 23276726Speter 23376726Speter <li>change functions <code>_nc_parse_entry()</code> and 23476726Speter <code>postprocess_termcap()</code> to avoid using 23576726Speter <code>strtok()</code>, because it is non-reentrant. 23676726Speter 23776726Speter <li>initialize <code>fds[]</code> array to 0's in 23876726Speter <code>_nc_timed_wait()</code>; apparently <code>poll()</code> only 23976726Speter sets the <code>revents</code> members of that array when there is 24076726Speter activity corresponding to the related file. 24176726Speter 24276726Speter <li>add a check for null pointer in <code>Make_Enum_Type()</code>. 24376726Speter 24476726Speter <li>fix a heap problem with the c++ binding. 24576726Speter 24676726Speter <li>correct missing includes for <string.h> in several places, 24776726Speter including the C++ binding. This is not noted by gcc unless we use 24876726Speter the <code>-fno-builtin</code> option. 24976726Speter </ul> 25076726Speter 25176726Speter <li>several fixes for tic: 25276726Speter <ul> 25376726Speter <li>add a check for empty buffers returned by <code>fgets()</code> in 25476726Speter comp_scan.c <code>next_char()</code> function, in case 25576726Speter <code>tic</code> is run on a non-text file (fixes a core dump). 25676726Speter 25776726Speter <li>modify <code>tic</code> to verify that its inputs are really files, 25876726Speter in case someone tries to read a directory (or 25976726Speter <code>/dev/zero</code>). 26076726Speter 26176726Speter <li>correct an uninitialized parameter to <code>open_tempfile()</code> 26276726Speter in tic.c which made "tic -I" give an ambiguous error message about 26376726Speter <code>tmpnam</code>. 26476726Speter 26576726Speter <li>correct logic in <code>adjust_cancels()</code>, which did not check 26676726Speter both alternatives when reclassifying an extended name between 26776726Speter boolean, number and string, causing an infinite loop in 26876726Speter <code>tic</code>. 26976726Speter </ul> 27076726Speter 27176726Speter <li>using new checks in <code>tic</code> for parameter counts in 27276726Speter capability strings, found/fixed several errors both in the 27376726Speter terminfo database and in the include/Caps file. 27476726Speter <ul> 27576726Speter <li>modified several terminfo capability strings, including the 27676726Speter definitions for setaf, setab, in include/Caps to indicate that the 27776726Speter entries are parameterized. This information is used to tell which 27876726Speter strings are translated when converting to termcap. This fixes a 27976726Speter problem where the generated termcap would contain a spurious "%p1" 28076726Speter for the terminfo "%p1%d". 28176726Speter 28276726Speter <li>correct parameter counts in include/Caps for dclk as well as some 28376726Speter printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp. 28476726Speter </ul> 28576726Speter 28676726Speter <li>various fixes for install scripts used to support configure 28776726Speter <code>--srcdir</code> and <code>--with-install-prefix</code>. 28876726Speter 28976726Speter <li>correct several mismatches between manpage filename and ".TH" 29076726Speter directives, renaming dft_fgbg.3x to default_colors.3x and 29176726Speter menu_attribs.3x to menu_attributes.3x. 29250276Speter</ul> 29350276Speter 29476726SpeterPortability: 29576726Speter<ul> 29676726Speter <li>configure script: 29776726Speter <ul> 29876726Speter <li>newer config.guess, config.sub, including changes to support OS/2 29976726Speter EMX. The configure script for OS/2 EMX still relies on a patch 30076726Speter since there is no (working) support for that platform in the main 30176726Speter autoconf distribution. 30276726Speter 30376726Speter <li>make configure script checks on variables <code>$GCC</code> and 30476726Speter <code>$GXX</code> consistently compare against 'yes' rather than 30576726Speter test if they are nonnull, since either may be set to the 30676726Speter corresponding name of the C or C++ compiler. 30776726Speter 30876726Speter <li>change configure script to use AC_CANONICAL_SYSTEM rather than 30976726Speter AC_CANONICAL_HOST, which means that <code>configure --target</code> 31076726Speter will set a default program-prefix. 31176726Speter 31276726Speter <li>modify the check for big-core to force a couple of memory 31376726Speter accesses, which may work as needed for older/less-capable machines 31476726Speter (if not, there's still the explicit configure option). 31576726Speter 31676726Speter <li>modify configure test for <code>tcgetattr()</code> to allow for 31776726Speter old implementations, e.g., on BeOS, which only defined it as a 31876726Speter macro. 31976726Speter 32076726Speter <li>add configure check for filesystems (such as OS/2 EMX) which do 32176726Speter not distinguish between upper/lowercase filenames, use this to fix 32276726Speter tags rules in makefiles. 32376726Speter 32476726Speter <li>add MKncurses_def.sh to generate fallback definitions for 32576726Speter ncurses_cfg.h, to quiet gcc -Wundef warnings, modified ifdef's in 32676726Speter code to consistently use "#if" rather than "#ifdef". 32776726Speter 32876726Speter <li>change most remaining unquoted parameters of <code>test</code> in 32976726Speter configure script to use quotes, for instance fixing a problem in the 33076726Speter <code>--disable-database</code> option. 33176726Speter 33276726Speter <li>modify scripts so that "make install.data" works on OS/2 EMX. 33376726Speter 33476726Speter <li>modify scripts and makefiles so the Ada95 directory builds on 33576726Speter OS/2 EMX. 33676726Speter </ul> 33776726Speter 33876726Speter <li>library: 33976726Speter <ul> 34076726Speter <li>replaced case-statement in <code>_nc_tracebits()</code> for CSIZE 34176726Speter with a table to simplify working around implementations that define 34276726Speter random combinations of the related macros to zero. 34376726Speter 34476726Speter <li>improved OS/2 mouse support by retrying as a 2-button mouse if code 34576726Speter fails to set up a 3-button mouse. 34676726Speter 34776726Speter <li>added private entrypoint <code>_nc_basename()</code>, used to 34876726Speter consolidate related code in progs, as well as accommodating OS/2 EMX 34976726Speter pathnames. 35076726Speter 35176726Speter <li>alter definition of NCURSES_CONST to make it non-empty. 35276726Speter 35376726Speter <li>redefine 'TEXT' in menu.h for AMIGA, since it is reported to have 35476726Speter an (unspecified) symbol conflict. 35576726Speter </ul> 35676726Speter 35776726Speter <li>programs: 35876726Speter <ul> 35976726Speter <li>modified progs/tset.c and tack/sysdep.c to build with sgttyb 36076726Speter interface if neither termio or termios is available. Tested this 36176726Speter with FreeBSD 2.1.5 (which does have termios - but the sgttyb does 36276726Speter work). 36376726Speter </ul> 36476726Speter 36576726Speter</ul> 36676726Speter 36750276Speter<H1>Features of Ncurses</H1> 36850276Speter 36956639SpeterThe ncurses package is fully compatible with SVr4 (System V Release 4) curses: 37050276Speter 37150276Speter<UL> 37250276Speter<LI>All 257 of the SVr4 calls have been implemented (and are documented). 37350276Speter<LI>Full support for SVr4 curses features including keyboard mapping, color, 37450276Speterforms-drawing with ACS characters, and automatic recognition of keypad 37550276Speterand function keys. 37650276Speter<LI>An emulation of the SVr4 panels library, supporting 37750276Spetera stack of windows with backing store, is included. 37850276Speter<LI>An emulation of the SVr4 menus library, supporting 37950276Spetera uniform but flexible interface for menu programming, is included. 38050276Speter<LI>An emulation of the SVr4 form library, supporting 38150276Speterdata collection through on-screen forms, is included. 38250276Speter<LI>Binary terminfo entries generated by the ncurses tic(1) implementation 38350276Speterare bit-for-bit-compatible with the entry format SVr4 curses uses. 38450276Speter<LI>The utilities have options to allow you to filter terminfo 38550276Speterentries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG> 38650276Speterversions such as the HP/UX and AIX ports.</UL> 38750276Speter 38856639SpeterThe ncurses package also has many useful extensions over SVr4: 38950276Speter 39050276Speter<UL> 39150276Speter<LI>The API is 8-bit clean and base-level conformant with the X/OPEN curses 39250276Speterspecification, XSI curses (that is, it implements all BASE level features, 39350276Speterbut not all EXTENDED features). Most EXTENDED-level features not directly 39450276Speterconcerned with wide-character support are implemented, including many 39550276Speterfunction calls not supported under SVr4 curses (but portability of all 39650276Spetercalls is documented so you can use the SVr4 subset only). 39756639Speter<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner 39850276Speterof the screen if your terminal has an insert-character capability. 39950276Speter<LI>Ada95 and C++ bindings. 40050276Speter<LI>Support for mouse event reporting with X Window xterm and OS/2 console windows. 40150276Speter<LI>Extended mouse support via Alessandro Rubini's gpm package. 40250276Speter<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving 40350276Spetertheir data. 40450276Speter<LI>The function <CODE>use_default_colors()</CODE> allows you to 40550276Speteruse the terminal's default colors for the default color pair, 40650276Speterachieving the effect of transparent colors. 40750276Speter<LI>The functions <CODE>keyok()</CODE> 40850276Speterand <CODE>define_key()</CODE> allow 40950276Speteryou to better control the use of function keys, 41050276Spetere.g., disabling the ncurses KEY_MOUSE, 41150276Speteror by defining more than one control sequence to map to a given key code. 41250276Speter<LI>Support for 16-color terminals, such as aixterm and XFree86 xterm. 41350276Speter<LI>Better cursor-movement optimization. The package now features a 41450276Spetercursor-local-movement computation more efficient than either BSD's 41550276Speteror System V's. 41650276Speter<LI>Super hardware scrolling support. The screen-update code incorporates 41750276Spetera novel, simple, and cheap algorithm that enables it to make optimal 41850276Speteruse of hardware scrolling, line-insertion, and line-deletion 41950276Speterfor screen-line movements. This algorithm is more powerful than 42050276Speterthe 4.4BSD curses quickch() routine. 42150276Speter<LI>Real support for terminals with the magic-cookie glitch. The 42250276Speterscreen-update code will refrain from drawing a highlight if the magic- 42350276Spetercookie unattributed spaces required just before the beginning and 42450276Speterafter the end would step on a non-space character. It will 42550276Speterautomatically shift highlight boundaries when doing so would make it 42650276Speterpossible to draw the highlight without changing the visual appearance 42750276Speterof the screen. 42850276Speter<LI>It is possible to generate the library with a list of pre-loaded 42950276Speterfallback entries linked to it so that it can serve those terminal types even 43050276Speterwhen no terminfo tree or termcap file is accessible (this may be useful 43150276Speterfor support of screen-oriented programs that must run in single-user mode). 43250276Speter<LI>The tic(1)/captoinfo utility provided with ncurses has the 43350276Speterability to translate many termcaps from the XENIX, IBM and 43450276SpeterAT&T extension sets. 43550276Speter<LI>A BSD-like tset(1) utility is provided. 43650276Speter<LI>The ncurses library and utilities will automatically read terminfo 43750276Speterentries from $HOME/.terminfo if it exists, and compile to that directory 43850276Speterif it exists and the user has no write access to the system directory. 43950276SpeterThis feature makes it easier for users to have personal terminfo entries 44050276Speterwithout giving up access to the system terminfo directory. 44150276Speter<LI>You may specify a path of directories to search for compiled 44250276Speterdescriptions with the environment variable TERMINFO_DIRS (this 44350276Spetergeneralizes the feature provided by TERMINFO under stock System V.) 44450276Speter<LI>In terminfo source files, use capabilities may refer not just to 44550276Speterother entries in the same source file (as in System V) but also to 44650276Spetercompiled entries in either the system terminfo directory or the user's 44750276Speter$HOME/.terminfo directory. 44850276Speter<LI>A script (<STRONG>capconvert</STRONG>) is provided to help BSD users 44950276Spetertransition from termcap to terminfo. It gathers the information in a 45050276SpeterTERMCAP environment variable and/or a ~/.termcap local entries file 45150276Speterand converts it to an equivalent local terminfo tree under $HOME/.terminfo. 45250276Speter<LI>Automatic fallback to the /etc/termcap file can be compiled in 45350276Speterwhen it is not possible to build a terminfo tree. This feature is neither 45450276Speterfast nor cheap, you don't want to use it unless you have to, 45550276Speterbut it's there. 45650276Speter<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to 45750276Spetersee exactly what terminal types are available on the system. 45850276Speter<LI>The library meets the XSI requirement that every macro entry 45950276Speterpoint have a corresponding function which may be linked (and will be 46050276Speterprototype-checked) if the macro definition is disabled with 46150276Speter<CODE>#undef</CODE>. 46250276Speter<LI>An HTML "Introduction to Programming with NCURSES" document provides 46350276Spetera narrative introduction to the curses programming interface. 46450276Speter</UL> 46550276Speter 46650276Speter<H1>State of the Package</H1> 46750276Speter 46850276SpeterNumerous bugs present in earlier versions have been fixed; the 46950276Speterlibrary is far more reliable than it used to be. Bounds checking in many 47050276Speter`dangerous' entry points has been improved. The code is now type-safe 47150276Speteraccording to gcc -Wall. The library has been checked for malloc leaks and 47250276Speterarena corruption by the Purify memory-allocation tester.<P> 47350276Speter 47450276SpeterThe ncurses code has been tested with a wide variety of applications 47556639Speterincluding (versions starting with those noted): 47650276Speter<DL> 47756639Speter<DT> cdk 47856639Speter<DD> Curses Development Kit 47962449Speter<br> 48066963Speter<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a> 48166963Speter<br> 48262449Speter<A HREF="http://dickey.his.com/cdk/cdk.html">http://dickey.his.com/cdk</A>. 48350276Speter<DT> ded 48450276Speter<DD> directory-editor 48562449Speter<br> 48662449Speter<A HREF="http://dickey.his.com/ded/ded.html">http://dickey.his.com/ded</A>. 48750276Speter<DT> dialog 48850276Speter<DD> the underlying application used in Slackware's setup, and the basis 48950276Speterfor similar applications on GNU/Linux. 49062449Speter<br> 49162449Speter<A HREF="http://dickey.his.com/dialog/dialog.html">http://dickey.his.com/dialog</A>. 49256639Speter<DT> lynx 49350276Speter<DD> the character-screen WWW browser 49462449Speter<br> 49562449Speter<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release</A>. 49650276Speter<DT> Midnight Commander 4.1 49750276Speter<DD> file manager 49866963Speter<br> 49966963Speter<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>. 50056639Speter<DT> mutt 50150276Speter<DD> mail utility 50262449Speter<br> 50362449Speter<A HREF="http://www.mutt.org">http://www.mutt.org</A>. 50456639Speter<DT> ncftp 50550276Speter<DD> file-transfer utility 50666963Speter<br> 50766963Speter<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>. 50850276Speter<DT> nvi 50950276Speter<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. 51066963Speter<br> 51166963Speter<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>. 51256639Speter<DT> tin 51356639Speter<DD> newsreader, supporting color, MIME 51462449Speter<br> 51562449Speter<A HREF="http://www.tin.org">http://www.tin.org</A>. 51650276Speter<DT> taper 51750276Speter<DD> tape archive utility 51866963Speter<br> 51966963Speter<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>. 52050276Speter<DT> vh-1.6 52150276Speter<DD> Volks-Hypertext browser for the Jargon File 52266963Speter<br> 52366963Speter<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>. 52450276Speter</DL> 52550276Speteras well as some that use ncurses for the terminfo support alone: 52650276Speter<DL> 52756639Speter<DT> minicom 52850276Speter<DD> terminal emulator 52966963Speter<br> 53066963Speter<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>. 53150276Speter<DT> vile 53250276Speter<DD> vi-like-emacs 53362449Speter<br> 53462449Speter<A HREF="http://dickey.his.com/vile/vile.html">http://dickey.his.com/vile</A>. 53550276Speter</DL> 53650276Speter<P> 53750276Speter 53850276SpeterThe ncurses distribution includes a selection of test programs (including 53950276Spetera few games). 54050276Speter 54150276Speter<H2>Who's Who and What's What</H2> 54250276Speter 54350276SpeterThe original developers of ncurses are <A 54450276SpeterHREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and 54550276Speter<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>. 54650276SpeterOngoing work is being done by 54762449Speter<A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A> 54850276Speterand 54950276Speter<A HREF="mailto:juergen.pfeifer@gmx.net">Jürgen Pfeifer</A>. 55062449Speter<A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A> 55150276Speteracts as the maintainer for the Free Software Foundation, which holds the 55250276Spetercopyright on ncurses. 55350276SpeterContact the current maintainers at 55450276Speter<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>. 55550276Speter<P> 55650276Speter 55750276SpeterTo join the ncurses mailing list, please write email to 55850276Speter<CODE>bug-ncurses-request@gnu.org</CODE> containing the line: 55950276Speter<PRE> 56050276Speter subscribe <name>@<host.domain> 56150276Speter</PRE> 56250276Speter 56350276SpeterThis list is open to anyone interested in helping with the development and 56450276Spetertesting of this package.<P> 56550276Speter 56650276SpeterBeta versions of ncurses and patches to the current release are made available at 56762449Speter<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>. 56850276Speter 56950276Speter<H2>Future Plans</H2> 57050276Speter<UL> 57150276Speter<LI>Extended-level XPG4 conformance, with internationalization support. 57250276Speter<LI>Ports to more systems, including DOS and Windows. 57350276Speter</UL> 57450276SpeterWe need people to help with these projects. If you are interested in working 57550276Speteron them, please join the ncurses list. 57650276Speter 57750276Speter<H2>Other Related Resources</H2> 57850276Speter 57950276SpeterThe distribution includes and uses a version of the terminfo-format 58050276Speterterminal description file maintained by Eric Raymond. 58150276Speter<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P> 58250276Speter 58350276SpeterYou can find lots of information on terminal-related topics 58450276Speternot covered in the terminfo file at 58550276Speter<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's 58650276Speterarchive</A>. 58750276Speter</BODY> 58850276Speter</HTML> 58950276Speter<!-- 59050276Speter# The following sets edit modes for GNU EMACS 59150276Speter# Local Variables: 59250276Speter# mode:html 59350276Speter# case-fold-search:nil 59450276Speter# fill-column:70 59550276Speter# End: 59650276Speter--> 597