announce.html.in revision 184989
150276Speter<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"> 250276Speter<!-- 3184989Srafan $Id: announce.html.in,v 1.70 2008/11/02 01:03:05 tom Exp $ 4166124Srafan **************************************************************************** 5184989Srafan * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. * 6166124Srafan * * 7166124Srafan * Permission is hereby granted, free of charge, to any person obtaining a * 8166124Srafan * copy of this software and associated documentation files (the * 9166124Srafan * "Software"), to deal in the Software without restriction, including * 10166124Srafan * without limitation the rights to use, copy, modify, merge, publish, * 11166124Srafan * distribute, distribute with modifications, sublicense, and/or sell * 12166124Srafan * copies of the Software, and to permit persons to whom the Software is * 13166124Srafan * furnished to do so, subject to the following conditions: * 14166124Srafan * * 15166124Srafan * The above copyright notice and this permission notice shall be included * 16166124Srafan * in all copies or substantial portions of the Software. * 17166124Srafan * * 18166124Srafan * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 19166124Srafan * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 20166124Srafan * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 21166124Srafan * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 22166124Srafan * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 23166124Srafan * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 24166124Srafan * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 25166124Srafan * * 26166124Srafan * Except as contained in this notice, the name(s) of the above copyright * 27166124Srafan * holders shall not be used in advertising or otherwise to promote the * 28166124Srafan * sale, use or other dealings in this Software without prior written * 29166124Srafan * authorization. * 30166124Srafan **************************************************************************** 3150276Speter--> 3250276Speter<HTML> 3350276Speter<HEAD> 3450276Speter<TITLE>Announcing ncurses @VERSION@</TITLE> 3550276Speter<link rev=made href="mailto:bug-ncurses@gnu.org"> 36166124Srafan<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 3750276Speter</HEAD> 3850276Speter<BODY> 3950276Speter 4050276Speter<H1>Announcing ncurses @VERSION@</H1> 4150276Speter 4250276SpeterThe ncurses (new curses) library is a free software emulation of 4350276Spetercurses in System V Release 4.0, and more. It uses terminfo format, 4450276Spetersupports pads and color 4550276Speterand multiple highlights and forms characters and function-key mapping, 4650276Speterand has all the other SYSV-curses enhancements over BSD curses.<P> 4750276Speter 4850276SpeterIn mid-June 1995, the maintainer of 4.4BSD curses declared that he 49166124Srafanconsidered 4.4BSD curses obsolete, and encouraged the keepers of 50166124SrafanUnix releases such as BSD/OS, FreeBSD and NetBSD to switch over to 5150276Speterncurses.<P> 5250276Speter 5376726SpeterThe ncurses code was developed under GNU/Linux. 5476726SpeterIt has been in use for some time with OpenBSD as the system curses library, 5576726Speterand on FreeBSD and NetBSD as an external package. 5676726SpeterIt should port easily to any ANSI/POSIX-conforming UNIX. 5776726SpeterIt has even been ported to OS/2 Warp!<P> 5850276Speter 5950276SpeterThe distribution includes the library and support utilities, including a 6050276Speterterminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1), 6150276Speterand a termcap conversion tool captoinfo(1). Full manual pages are provided for 6250276Speterthe library and tools.<P> 6350276Speter 6450276SpeterThe ncurses distribution is available via anonymous FTP at 6550276Speterthe GNU distribution site 66166124Srafan<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A> . 6766963Speter<br>It is also available at 68166124Srafan<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> . 6950276Speter 7050276Speter<H1>Release Notes</H1> 7150276Speter 72184989SrafanThis release is designed to be upward compatible from ncurses 5.0 through 5.6; 7376726Spetervery few applications will require recompilation, depending on the platform. 74184989SrafanThese are the highlights from the change-log since ncurses 5.6 release. 7550276Speter<p> 7650276SpeterInterface changes: 7750276Speter<ul> 78166124Srafan <li>generate linkable stubs for some macros: 79166124Srafan <br> 80184989Srafan getattrs 8150276Speter 8250276Speter</ul> 8376726SpeterNew features and improvements: 8450276Speter<ul> 85166124Srafan <li>library 86166124Srafan <ul> 87184989Srafan <li>new flavor of the ncurses library provides rudimentary 88184989Srafan support for POSIX threads. Several functions are 89184989Srafan reentrant, but most require either a window-level or 90184989Srafan screen-level mutex.<br> 91184989Srafan (This is <em>API</em>-compatible, 92184989Srafan but not <em>ABI</em>-compatible with the normal library). 9350276Speter 94184989Srafan <li>add <code>NCURSES_OPAQUE</code> symbol to curses.h, will 95184989Srafan use to make structs opaque in selected configurations. 9676726Speter 97184989Srafan <li>add <code>NCURSES_EXT_FUNCS</code> and 98184989Srafan <code>NCURSES_EXT_COLORS</code> symbols to curses.h to make 99184989Srafan it simpler to tell if the extended functions and/or colors 100184989Srafan are declared. 10150276Speter 102184989Srafan <li>add wresize() to C++ binding 10350276Speter 104184989Srafan <li>eliminate fixed-buffer vsprintf() calls in C++ binding. 10576726Speter 106184989Srafan <li>add several functions to C++ binding which wrap C functions 107184989Srafan that pass a WINDOW* parameter. 10876726Speter 109184989Srafan <li>adapt mouse-handling code from menu library in form-library 11076726Speter 111184989Srafan <li>improve tracing for form library, showing created forms, 112184989Srafan fields, etc. 11376726Speter 114184989Srafan <li>make $NCURSES_NO_PADDING feature work for termcap interface . 11576726Speter 116184989Srafan <li>add check to trace-file open, if the given name is a 117184989Srafan directory, add ".log" to the name and try again. 11850276Speter 119184989Srafan <li>several new manpages: curs_legacy.3x, curs_memleaks.3x, 120184989Srafan curs_opaque.3x and curs_threads.3x 12162449Speter </ul> 12250276Speter 123166124Srafan <li>programs: 12476726Speter <ul> 125184989Srafan <li>modified three test-programs to demonstrate the threading 126184989Srafan support in this version: ditto, rain, worm. 12750276Speter 128184989Srafan <li>several new test-programs: demo_panels, dots_mvcur, 129184989Srafan inch_wide, inchs, key_name, key_names, savescreen, 130184989Srafan savescreen.sh test_arrays, test_get_wstr, test_getstr, 131184989Srafan test_instr, test_inwstr and test_opaque. 13250276Speter 133184989Srafan <li>add <code>adacurses-config</code> to the Ada95 install. 13450276Speter 135184989Srafan <li>modify tic <code>-f</code> option to format spaces as 136184989Srafan <code>\s</code> to prevent them from being lost when that 137184989Srafan is read back in unformatted strings. 13850276Speter 139184989Srafan <li>The <code>tack</code> program is now distributed separately 140184989Srafan from ncurses. 14176726Speter </ul> 14250276Speter 143166124Srafan <li>terminal database 14476726Speter <ul> 145184989Srafan <li>added entries: 146184989Srafan <ul> 147184989Srafan <li><code>Eterm-256color</code>, 148184989Srafan <code>Eterm-88color</code> and 149184989Srafan <code>rxvt-88color</code> 150184989Srafan <li><code>aterm</code> 151184989Srafan <li><code>konsole-256color</code> 152184989Srafan <li><code>mrxvt</code> 153184989Srafan <li><code>screen.mlterm</code> 154184989Srafan <li><code>screen.rxvt</code> 155184989Srafan <li><code>teraterm4.59</code> is now the primary primary 156184989Srafan teraterm entry, renamed original to 157184989Srafan <code>teraterm2.3</code> 158184989Srafan <li><code>9term</code> terminal 159184989Srafan <li>Newbury Data entries 160184989Srafan </ul> 161184989Srafan <li>updated/improved entries: 162184989Srafan <ul> 163184989Srafan <li><code>gnome</code> to version 2.22.3 164184989Srafan <li><code>h19</code>, <code>z100</code> 165184989Srafan <li><code>konsole</code> to version 1.6.6 166184989Srafan <li><code>mlterm</code>, <code>mlterm+pcfkeys</code> 167184989Srafan <li><code>xterm</code>, and building-blocks for function-keys 168184989Srafan to <a href="http://invisible-island.net/xterm/xterm.log.html#xterm_230">xterm patch #230</a>. 169184989Srafan </ul> 17076726Speter </ul> 17150276Speter</ul> 17250276SpeterMajor bug fixes: 17350276Speter<ul> 174184989Srafan <li>add logic to tic for cancelling strings in user-defined 175184989Srafan capabilities 176184989Srafan (this is <em>needed</em> for 177184989Srafan current <code>konsole</code> terminfo entry). 17850276Speter 179184989Srafan <li>modify <code>mk-1st.awk</code> so the generated makefile rules for 180184989Srafan linking or installing shared libraries do not first remove the 181184989Srafan library, in case it is in use, e.g., <code>libncurses.so</code> by 182184989Srafan <code>/bin/sh</code>. 18350276Speter 184184989Srafan <li>correct check for notimeout() in wgetch(). 18550276Speter 186184989Srafan <li>fix a sign-extension bug in infocmp's repair_acsc() function. 18750276Speter 188184989Srafan <li>change winnstr() to stop at the end of the line. 18950276Speter 190184989Srafan <li>make Ada95 demo_panels() example work. 19150276Speter 192184989Srafan <li>fix for adding a non-spacing character at the beginning of a line. 19362449Speter 194184989Srafan <li>fill in extended-color pair to make colors work 195184989Srafan for wide-characters using extended-colors. 19662449Speter 197184989Srafan <li>improve refresh of window on top of multi-column characters, 198184989Srafan taking into account split characters on left/right window 199184989Srafan boundaries. 20062449Speter 201184989Srafan <li>modify <code>win_wchnstr()</code> to ensure that only a base cell 202184989Srafan is returned for each multi-column character. 20376726Speter 204184989Srafan <li>improve <code>waddch()</code> and <code>winsch()</code> handling of 205184989Srafan EILSEQ from <code>mbrtowc()</code> by using <code>unctrl()</code> 206184989Srafan to display illegal bytes rather than trying to append further bytes 207184989Srafan to make up a valid sequence. 20876726Speter 209184989Srafan <li>restore <code>curs_set()</code> state after 210184989Srafan <code>endwin()</code>/<code>refresh()</code> 21176726Speter 212184989Srafan <li>modify <code>keyname()</code> to use "^X" form only if 213184989Srafan <code>meta()</code> has been called, or if <code>keyname()</code> 214184989Srafan is called without initializing curses, e.g., via 215184989Srafan <code>initscr()</code> or <code>newterm()</code>. 21676726Speter 217184989Srafan <li>modify <code>unctrl()</code> to check codes in 128-255 range versus 218184989Srafan <code>isprint()</code>. 219184989Srafan If they are not printable, and locale was set, use a "M-" or "~" 220184989Srafan sequence. 22176726Speter 222184989Srafan <li>improve <code>resizeterm()</code> by moving ripped-off lines, and 223184989Srafan repainting the soft-keys. 224184989Srafan 225184989Srafan <li>modify form library to accept control characters such as newline 226184989Srafan in set_field_buffer(), which is compatible with Solaris. 227184989Srafan 228184989Srafan <li>use <code>NCURSES_MOUSE_MASK()</code> in definition of 229184989Srafan <code>BUTTON_RELEASE()</code>, etc., to make those work properly 230184989Srafan with the <code>--enable-ext-mouse</code> configuration 231184989Srafan 232184989Srafan <li>correct some functions in Ada95 binding which were using return 233184989Srafan value from C where none was returned. 234184989Srafan 235184989Srafan <li>reviewed/fixed issues reported by Coverity and Klocwork tools. 236166124Srafan</ul> 23776726Speter 238166124SrafanPortability: 239166124Srafan<ul> 240166124Srafan <li>configure script: 241166124Srafan <ul> 242166124Srafan <li>new options: 243166124Srafan <dl> 24476726Speter 245184989Srafan <dt>--disable-big-strings 246184989Srafan <dd>control whether static string tables are generated as single 247184989Srafan large strings (to improve startup performance), or as array 248184989Srafan of individual strings. 24976726Speter 250184989Srafan <dt>--disable-relink 251184989Srafan <dd>control whether shared libraries are relinked (during install) 252184989Srafan when rpath is enabled. 25376726Speter 254184989Srafan <dt>--disable-tic-depends 255184989Srafan <dd>make explicit whether tic library depends on ncurses/ncursesw 256184989Srafan library. 25776726Speter 258184989Srafan <dt>--enable-mixed-case 259184989Srafan <dd>override the configure script's check if the filesystem 260184989Srafan supports mixed-case filenames. 261184989Srafan This allows one to control how the terminal database 262184989Srafan maps to the filesystem. 263184989Srafan For filesystems that do not support mixed-case, the library 264184989Srafan uses generate 2-character (hexadecimal) codes for the 265184989Srafan lower-level of the filesystem terminfo database 26676726Speter 267184989Srafan <dt>--enable-reentrant 268184989Srafan <dd>builds a different flavor of the ncurses library (ncursest) 269184989Srafan which improves reentrant use of the 270184989Srafan library by reducing global and static variables 271184989Srafan (see the "--with-pthread" option for the threaded support). 27276726Speter 273184989Srafan <dt>--enable-weak-symbols 274184989Srafan <dd>use weak-symbols for linking to the POSIX thread library, 275184989Srafan and use the same soname for the ncurses shared library 276184989Srafan as the normal library (caveat: the ABI is for the threaded 277184989Srafan library, which makes global data accessed via functions). 278184989Srafan 279184989Srafan <dt>--with-pthread 280184989Srafan <dd>build with the POSIX thread library (tested with AIX, 281184989Srafan Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64). 282184989Srafan 283184989Srafan <dt>--with-ticlib 284184989Srafan <dd>build/install the tic-support functions in a separate library 285184989Srafan 286166124Srafan </dl> 28776726Speter 288166124Srafan <li>improved options: 289166124Srafan <dl> 29076726Speter 291184989Srafan <dt>--enable-ext-colors 292184989Srafan <dd>requires the wide-character configuration. 29376726Speter 294184989Srafan <dt>--with-chtype 295184989Srafan <dd>ignore option value "unsigned" is always added to 296184989Srafan the type in curses.h; do the same for --with-mmask-t. 29776726Speter 298184989Srafan <dt>--with-dmalloc 299184989Srafan <dd>build-fix for redefinition of <code>strndup</code>. 30050276Speter 301184989Srafan <dt>--with-hashed-db 302184989Srafan <dd>accepts a parameter which is the install-prefix of a given 303184989Srafan Berkeley Database. 30476726Speter 305184989Srafan <dt>--with-hashed-db 306184989Srafan <dd>the $LIBS environment variable overrides the search for the db 307184989Srafan library. 30876726Speter 309184989Srafan <dt>--without-hashed-db 310184989Srafan <dd>assumed when "--disable-database" is used. 31176726Speter 312184989Srafan </dl> 31376726Speter 314184989Srafan </ul> 31576726Speter 316184989Srafan <li>other configure/build issues: 317184989Srafan <ul> 318184989Srafan <li>build-fixes for LynxOS 319184989Srafan <li>modify shared-library rules to allow FreeBSD 3.x to use rpath. 320184989Srafan <li>build-fix for FreeBSD "contemporary" TTY interface. 321184989Srafan <li>build-fixes for AIX with libtool. 322184989Srafan <li>build-fixes for Darwin and libtool. 323184989Srafan <li>modify BeOS-specific ifdef's to build on Haiku. 324184989Srafan <li>corrected gcc options for building shared libraries on Solaris 325184989Srafan and IRIX64. 326184989Srafan <li>change shared-library configuration for OpenBSD, make rpath work. 327184989Srafan <li>build-fixes for using libutf8, e.g., on OpenBSD 3.7 328184989Srafan <li>add "-e" option in ncurses/Makefile.in when generating source-files 329184989Srafan to force earlier exit if the build environment fails unexpectedly. 330184989Srafan <li>add support for shared libraries for QNX. 331184989Srafan <li>change delimiter in <code>MKlib_gen.sh</code> from '%' to '@', to 332184989Srafan avoid substitution by IBM xlc to '#' as part of its extensions to 333184989Srafan digraphs. 33476726Speter </ul> 33576726Speter 33676726Speter <li>library: 33776726Speter <ul> 338184989Srafan <li>rewrite wrapper for <code>wcrtomb()</code>, making it work on 339184989Srafan Solaris. This is used in the form library to determine the length 340184989Srafan of the buffer needed by <code>field_buffer</code>. 341184989Srafan <li>add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding 342184989Srafan type for data manipulated by signal handlers. 343184989Srafan <li>set locale in misc/ncurses-config.in since it uses a range 344184989Srafan <li>disable GPM mouse support when $TERM does not happen to contain 345184989Srafan "linux", since Gpm_Open() no longer limits its assertion to terminals 346184989Srafan that it might handle, e.g., within "screen" in xterm. 347184989Srafan <li>reset mouse file-descriptor when unloading GPM library. 348166124Srafan </ul> 34976726Speter 350184989Srafan <li>test programs: 351184989Srafan <ul> 352184989Srafan <li>update test programs to build/work with various UNIX curses for 353184989Srafan comparisons. 35476726Speter </ul> 35576726Speter</ul> 35676726Speter 35750276Speter<H1>Features of Ncurses</H1> 35850276Speter 35956639SpeterThe ncurses package is fully compatible with SVr4 (System V Release 4) curses: 36050276Speter 36150276Speter<UL> 36250276Speter<LI>All 257 of the SVr4 calls have been implemented (and are documented). 36350276Speter<LI>Full support for SVr4 curses features including keyboard mapping, color, 36450276Speterforms-drawing with ACS characters, and automatic recognition of keypad 36550276Speterand function keys. 36650276Speter<LI>An emulation of the SVr4 panels library, supporting 36750276Spetera stack of windows with backing store, is included. 36850276Speter<LI>An emulation of the SVr4 menus library, supporting 36950276Spetera uniform but flexible interface for menu programming, is included. 37050276Speter<LI>An emulation of the SVr4 form library, supporting 37150276Speterdata collection through on-screen forms, is included. 37250276Speter<LI>Binary terminfo entries generated by the ncurses tic(1) implementation 37350276Speterare bit-for-bit-compatible with the entry format SVr4 curses uses. 37450276Speter<LI>The utilities have options to allow you to filter terminfo 37550276Speterentries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG> 37650276Speterversions such as the HP/UX and AIX ports.</UL> 37750276Speter 37856639SpeterThe ncurses package also has many useful extensions over SVr4: 37950276Speter 38050276Speter<UL> 38150276Speter<LI>The API is 8-bit clean and base-level conformant with the X/OPEN curses 38250276Speterspecification, XSI curses (that is, it implements all BASE level features, 383166124Srafanand most EXTENDED features). 384166124SrafanIt includes many function calls not supported under SVr4 curses 385166124Srafan(but portability of all 38650276Spetercalls is documented so you can use the SVr4 subset only). 38756639Speter<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner 38850276Speterof the screen if your terminal has an insert-character capability. 38950276Speter<LI>Ada95 and C++ bindings. 390166124Srafan<LI>Support for mouse event reporting with X Window xterm 391166124Srafanand FreeBSD and OS/2 console windows. 39250276Speter<LI>Extended mouse support via Alessandro Rubini's gpm package. 39350276Speter<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving 39450276Spetertheir data. 39550276Speter<LI>The function <CODE>use_default_colors()</CODE> allows you to 39650276Speteruse the terminal's default colors for the default color pair, 39750276Speterachieving the effect of transparent colors. 39850276Speter<LI>The functions <CODE>keyok()</CODE> 39950276Speterand <CODE>define_key()</CODE> allow 40050276Speteryou to better control the use of function keys, 40150276Spetere.g., disabling the ncurses KEY_MOUSE, 40250276Speteror by defining more than one control sequence to map to a given key code. 403184989Srafan<LI>Support for 256-color terminals, such as modern xterm, when configured 404184989Srafanusing the <code>--enable-ext-colors</code> option. 405166124Srafan<LI>Support for 16-color terminals, such as aixterm and modern xterm. 40650276Speter<LI>Better cursor-movement optimization. The package now features a 40750276Spetercursor-local-movement computation more efficient than either BSD's 40850276Speteror System V's. 40950276Speter<LI>Super hardware scrolling support. The screen-update code incorporates 41050276Spetera novel, simple, and cheap algorithm that enables it to make optimal 41150276Speteruse of hardware scrolling, line-insertion, and line-deletion 41250276Speterfor screen-line movements. This algorithm is more powerful than 41350276Speterthe 4.4BSD curses quickch() routine. 41450276Speter<LI>Real support for terminals with the magic-cookie glitch. The 41550276Speterscreen-update code will refrain from drawing a highlight if the magic- 41650276Spetercookie unattributed spaces required just before the beginning and 41750276Speterafter the end would step on a non-space character. It will 41850276Speterautomatically shift highlight boundaries when doing so would make it 41950276Speterpossible to draw the highlight without changing the visual appearance 42050276Speterof the screen. 42150276Speter<LI>It is possible to generate the library with a list of pre-loaded 42250276Speterfallback entries linked to it so that it can serve those terminal types even 42350276Speterwhen no terminfo tree or termcap file is accessible (this may be useful 42450276Speterfor support of screen-oriented programs that must run in single-user mode). 42550276Speter<LI>The tic(1)/captoinfo utility provided with ncurses has the 42650276Speterability to translate many termcaps from the XENIX, IBM and 42750276SpeterAT&T extension sets. 42850276Speter<LI>A BSD-like tset(1) utility is provided. 42950276Speter<LI>The ncurses library and utilities will automatically read terminfo 43050276Speterentries from $HOME/.terminfo if it exists, and compile to that directory 43150276Speterif it exists and the user has no write access to the system directory. 43250276SpeterThis feature makes it easier for users to have personal terminfo entries 43350276Speterwithout giving up access to the system terminfo directory. 43450276Speter<LI>You may specify a path of directories to search for compiled 43550276Speterdescriptions with the environment variable TERMINFO_DIRS (this 43650276Spetergeneralizes the feature provided by TERMINFO under stock System V.) 43750276Speter<LI>In terminfo source files, use capabilities may refer not just to 43850276Speterother entries in the same source file (as in System V) but also to 43950276Spetercompiled entries in either the system terminfo directory or the user's 44050276Speter$HOME/.terminfo directory. 44150276Speter<LI>A script (<STRONG>capconvert</STRONG>) is provided to help BSD users 44250276Spetertransition from termcap to terminfo. It gathers the information in a 44350276SpeterTERMCAP environment variable and/or a ~/.termcap local entries file 44450276Speterand converts it to an equivalent local terminfo tree under $HOME/.terminfo. 44550276Speter<LI>Automatic fallback to the /etc/termcap file can be compiled in 44650276Speterwhen it is not possible to build a terminfo tree. This feature is neither 44750276Speterfast nor cheap, you don't want to use it unless you have to, 44850276Speterbut it's there. 44950276Speter<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to 45050276Spetersee exactly what terminal types are available on the system. 45150276Speter<LI>The library meets the XSI requirement that every macro entry 45250276Speterpoint have a corresponding function which may be linked (and will be 45350276Speterprototype-checked) if the macro definition is disabled with 45450276Speter<CODE>#undef</CODE>. 45550276Speter<LI>An HTML "Introduction to Programming with NCURSES" document provides 45650276Spetera narrative introduction to the curses programming interface. 45750276Speter</UL> 45850276Speter 45950276Speter<H1>State of the Package</H1> 46050276Speter 46150276SpeterNumerous bugs present in earlier versions have been fixed; the 46250276Speterlibrary is far more reliable than it used to be. Bounds checking in many 46350276Speter`dangerous' entry points has been improved. The code is now type-safe 46450276Speteraccording to gcc -Wall. The library has been checked for malloc leaks and 46550276Speterarena corruption by the Purify memory-allocation tester.<P> 46650276Speter 46750276SpeterThe ncurses code has been tested with a wide variety of applications 46856639Speterincluding (versions starting with those noted): 46950276Speter<DL> 47056639Speter<DT> cdk 47156639Speter<DD> Curses Development Kit 47262449Speter<br> 473166124Srafan<A HREF="http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</A> 47466963Speter<br> 475166124Srafan<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a> 47650276Speter<DT> ded 47750276Speter<DD> directory-editor 47862449Speter<br> 479166124Srafan<A HREF="http://invisible-island.net/ded/">http://invisible-island.net/ded/</A> 48050276Speter<DT> dialog 48150276Speter<DD> the underlying application used in Slackware's setup, and the basis 48250276Speterfor similar applications on GNU/Linux. 48362449Speter<br> 484166124Srafan<A HREF="http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</A> 48556639Speter<DT> lynx 48650276Speter<DD> the character-screen WWW browser 48762449Speter<br> 488166124Srafan<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release/</A> 489166124Srafan<DT> Midnight Commander 49050276Speter<DD> file manager 49166963Speter<br> 492166124Srafan<A HREF="http://www.ibiblio.org/mc/">http://www.ibiblio.org/mc/</A> 49356639Speter<DT> mutt 49450276Speter<DD> mail utility 49562449Speter<br> 496166124Srafan<A HREF="http://www.mutt.org/">http://www.mutt.org/</A> 49756639Speter<DT> ncftp 49850276Speter<DD> file-transfer utility 49966963Speter<br> 500166124Srafan<A HREF="http://www.ncftp.com/">http://www.ncftp.com/</A> 50150276Speter<DT> nvi 50250276Speter<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. 50366963Speter<br> 504166124Srafan<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A> 505166124Srafan<br> 506166124Srafan<DT> pinfo 507166124Srafan<DD> Lynx-like info browser. 508184989Srafan<A HREF="https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</A> 50956639Speter<DT> tin 51056639Speter<DD> newsreader, supporting color, MIME 511166124Srafan<A HREF="http://www.tin.org/">http://www.tin.org/</A> 51250276Speter</DL> 51350276Speteras well as some that use ncurses for the terminfo support alone: 51450276Speter<DL> 51556639Speter<DT> minicom 51650276Speter<DD> terminal emulator 51766963Speter<br> 518166124Srafan<A HREF="http://alioth.debian.org/projects/minicom/"> 519166124Srafanhttp://alioth.debian.org/projects/minicom/</A> 52050276Speter<DT> vile 52150276Speter<DD> vi-like-emacs 52262449Speter<br> 523166124Srafan<A HREF="http://invisible-island.net/vile/">http://invisible-island.net/vile/</A> 52450276Speter</DL> 52550276Speter<P> 52650276Speter 52750276SpeterThe ncurses distribution includes a selection of test programs (including 52850276Spetera few games). 52950276Speter 53050276Speter<H2>Who's Who and What's What</H2> 53150276Speter 532166124SrafanZeyd Ben-Halim 533166124Srafanstarted it from a previous package pcurses, written by Pavel Curtis. 534166124SrafanEric S. Raymond 535166124Srafancontinued development. 536166124SrafanJürgen Pfeifer wrote most of the form and menu libraries. 53750276SpeterOngoing work is being done by 538166124Srafan<A HREF="mailto:dickey@invisible-island.net">Thomas Dickey</A>. 539166124SrafanThomas Dickey 540166124Srafanacts as the maintainer for the Free Software Foundation, 541166124Srafanwhich holds the copyright on ncurses. 54250276SpeterContact the current maintainers at 54350276Speter<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>. 54450276Speter<P> 54550276Speter 54650276SpeterTo join the ncurses mailing list, please write email to 54750276Speter<CODE>bug-ncurses-request@gnu.org</CODE> containing the line: 54850276Speter<PRE> 54950276Speter subscribe <name>@<host.domain> 55050276Speter</PRE> 55150276Speter 55250276SpeterThis list is open to anyone interested in helping with the development and 55350276Spetertesting of this package.<P> 55450276Speter 55550276SpeterBeta versions of ncurses and patches to the current release are made available at 556166124Srafan<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> . 55750276Speter 55850276Speter<H2>Future Plans</H2> 55950276Speter<UL> 56050276Speter<LI>Extended-level XPG4 conformance, with internationalization support. 56150276Speter<LI>Ports to more systems, including DOS and Windows. 56250276Speter</UL> 56350276SpeterWe need people to help with these projects. If you are interested in working 56450276Speteron them, please join the ncurses list. 56550276Speter 56650276Speter<H2>Other Related Resources</H2> 56750276Speter 568166124SrafanThe distribution provides a newer version of the terminfo-format 569166124Srafanterminal description file once maintained by 570166124Srafan<A HREF="http://www.catb.org/~esr/terminfo/">Eric Raymond</A> . 571166124SrafanUnlike the older version, the termcap and terminfo data are provided 572166124Srafanin the same file, and provides several user-definable extensions 573166124Srafanbeyond the X/Open specification.<P> 57450276Speter 57550276SpeterYou can find lots of information on terminal-related topics 57650276Speternot covered in the terminfo file at 57750276Speter<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's 578166124Srafanarchive</A> . 57950276Speter</BODY> 58050276Speter</HTML> 58150276Speter<!-- 58250276Speter# The following sets edit modes for GNU EMACS 58350276Speter# Local Variables: 58450276Speter# mode:html 58550276Speter# case-fold-search:nil 58650276Speter# fill-column:70 58750276Speter# End: 58850276Speter--> 589