X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ANNOUNCE;h=269bd2bca2a8726faa8fbdb8603d6c3de1da8507;hp=513234e33caa431aec05182c38be2c74dd34ffb6;hb=362db2575aed6b2c7a8d3928b39af51544502876;hpb=a8987e73ec254703634802b4f7ee30d3a485524d diff --git a/ANNOUNCE b/ANNOUNCE index 513234e3..269bd2bc 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,4 @@ - - Announcing ncurses 5.4 + Announcing ncurses 5.8 The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses terminfo format, @@ -8,9 +7,8 @@ enhancements over BSD curses. In mid-June 1995, the maintainer of 4.4BSD curses declared that he - 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. + considered 4.4BSD curses obsolete, and encouraged the keepers of Unix + releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. 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 @@ -28,233 +26,394 @@ Release Notes - This release is designed to be upward compatible from ncurses 5.0 and - 5.3; very few applications will require recompilation, depending on - the platform. These are the highlights from the change-log since - ncurses 5.3 release. + This release is designed to be upward compatible from ncurses 5.0 + through 5.7; very few applications will require recompilation, + depending on the platform. These are the highlights from the + change-log since ncurses 5.7 release. + +Interface changes + + * turn on _XOPEN_CURSES definition in curses.h. + * change _nc_has_mouse to has_mouse, reflect its use in C++ and + Ada95. + * add is_pad and is_subwin functions for opaque access to the WINDOW + structure. + * add tiparm, based on review of X/Open Curses Issue 7. + +New features and improvements + + Library Improvements + + * add a terminal driver for Windows console, which supports a MinGW + port to Windows. + * add extended functions which specify the SCREEN pointer for + several curses functions which use the global SP. + * improve the NCURSES_NO_UTF8_ACS feature by adding a check for an + extended terminfo capability U8. + * improve performance of tigetstr, etc., by using hashing code from + tic. + * add WACS_xxx definitions to wide-character configuration for + thick- and double-lines. + * modify init_pair to allow caller to create extra color pairs + beyond the color_pairs limit, which use default colors. + + Improvements to Programs + + * add tabs program. + * modify tic's -I/-C dump to reformat acsc strings into canonical + form (sorted, unique mapping). + * add checks in tic for inconsistent cursor-movement controls, and + for inconsistent printer-controls. + * add special case to _nc_infotocap (used by tic and infocmp) to + recognize the setaf/setab strings from xterm+256color and + xterm+88color, and provide a reduced version which works with + termcap. + + Terminal Database + + * added entries: + + bterm terminfo entry, based on bogl 0.1.18 + + cons25-debian entry + + eterm-color entry + + linux-16color + + mlterm+256color entry, for mlterm 3.0.0 + + several screen-bce.xxx entries + + screen.Eterm terminfo entry + + vwmterm entry + + xterm-utf8 entry as a demo of the U8 feature + * updated/improved entries: + + use extended capabilities: + o add U8 feature to denote entries for terminal emulators + which do not support VT100 SI/SO when processing UTF-8 + encoding + o add XT capability to entries for terminals that support + both xterm-style mouse- and title-controls, for screen + which special-cases TERM beginning with xterm or rxvt + + improvements based on new checks in tic: + + + o fill in no-parameter forms of cursor-movement where a + parameterized form is available + o fill in missing cursor controls where the form of the + controls is ANSI + o add parameterized cursor-controls to linux-basic + o modify nsterm, xnuppc and tek4115 to make sgr/sgr0 + consistent + o change several terminfo entries to make consistent use + of ANSI clear-all-tabs + + extend ansi.sys pfkey capability from kf1-kf10 to kf1-kf48, + moving function key definitions from emx-base for + consistency. + + correct missing final 'p' in pfkey capability of + ansi.sys-old. + + rename atari and st52 terminfo entries to atari-old, + st52-old, use newer entries from FreeMiNT. + + repurpose gnome terminfo entries as vte, retaining gnome + variants for compatibility, but generally deprecating those + since the VTE library is what actually defines the behavior + of "gnome", etc., since 2003. + + improve interix smso terminfo capability by using reverse + rather than bold. + + correct initc capability of linux-c-nc end-of-range, make + similar change for dg+ccc and dgunix+ccc. + + update minix terminfo entry. + + updated nsterm* entries. + + remove unnecessary kcan assignment to ^C from putty. + + suppress ncv in screen and konsole-base entries, allowing + underline. + + change ncv and op capabilities in sun-color terminfo entry to + match Sun's entry for this. + + fix typo in rmso for tek4106 entry. + + improve acsc string for vt52, show arrow keys. + + add hard-reset for rs2 to wsvt25 to help ensure that reset + ends the alternate character set. + + add ccc and initc capabilities to xterm-16color. + +Major bug fixes + + * ncurses library + + wide character support + o modify length returned by getcchar to count the trailing + null which is documented in X/Open. + o fix an infinite recursion when adding a legacy-coding + 8-bit value using insch. + o improve a workaround in adding wide-characters, when a + control character is found. The library uses unctrl to + obtain a printable version of the control character, but + was not passing color or video attributes. + o modify waddch_literal, updating line-pointer after a + multicolumn character is found to not fit on the current + row, and wrapping is done. Since the line-pointer was + not updated, the wrapped multicolumn character was + written to the beginning of the current row. + o fixes in wins_nwstr and related functions to ensure that + special characters, i.e., control characters are handled + properly with the wide-character configuration. + o correct internal _nc_insert_ch to use _nc_insert_wch + when inserting wide characters, since the wins_wch + function that it used did not update the cursor + position. + + mouse + o add check if Gpm_Open returns a -2, e.g., for "xterm". + This is normally suppressed but can be overridden using + $NCURSES_GPM_TERMS. Ensure that Gpm_Close is called in + this case. + o add check in mouse-driver to disable connection if GPM + returns a zero, indicating that the connection is + closed. + o modify getmouse to act as its documentation implied, + returning on each call the preceding event until none + are left. When no more events remain, it will return + ERR. + + miscellaneous + o improve handling of color-pairs embedded in attributes + for the extended-colors configuration. + o add check for failure to open hashed-database needed for + db4.6. + o modify use of $CC environment variable which is defined + by X/Open as a curses feature, to ignore it if it is not + a single character. + o modify declaration of cur_term when broken-linker is + used, but enable-reentrant is not, to match pre-5.7. + o correct limit-checks in derwin. + o remove old check in mvderwin which prevented moving a + derived window whose origin happened to coincide with + its parent's origin. + o correct limit-checks in newwin, to ensure that windows + have nonzero size. + o modify set_curterm to make broken-linker configuration + work with changes from 20090228. + o modify wgetch to ensure it checks SIGWINCH when it gets + an error in non-blocking mode. + o correct limit-check in wredrawln, accounting for + begy/begx values. + o fix a null-pointer check in _nc_format_slks in + lib_slk.c, from 20070704 changes. + o correct translation of "^" in _nc_infotocap, used to + transform terminfo to termcap strings. + o modify _nc_wgetch to check for a -1 in the fifo, e.g., + after a SIGWINCH, and discard that value, to avoid + confusing application. + * other libraries + + correct transfer of multicolumn characters in multirow + field_buffer, which stopped at the end of the first row due + to filling of unused entries in a cchar_t array with nulls. + + correct buffer-size after internal resizing of wide-character + set_field_buffer, broken in 20081018 changes. + + correct layout of working window used to extract data in + wide-character configured by set_field_buffer + +Portability - Interface changes: - * add the remaining functions for X/Open curses wide-character - support. - + pecho_wchar() - + slk_wset() - These are only available if the library is configured using the - --enable-widec option. - * write getyx() and related 2-return macros in terms of getcury(), - getcurx(), etc. - * simplify ifdef for bool declaration in curses.h - * modify ifdef's in curses.h that disabled use of __attribute__() - for g++, since recent versions implement the cases which ncurses - uses. - * add key_defined() function, to tell which keycode a string is - bound to. - - New features and improvements: - * library - + implement logic in lib_mouse.c to handle position reports - which are generated when XFree86 xterm is initialized with - private modes 1002 or 1003. These are returned to the - application as the REPORT_MOUSE_POSITION mask, which was not - implemented. - + modify soft-key initialization to use A_REVERSE if A_STANDOUT - would not be shown when colors are used, i.e., if ncv#1 is - set in the terminfo as is done in "screen". - + add configure option for FreeBSD sysmouse, --with-sysmouse, - and implement library support for that. - * programs: - + tack: - o allow it to run from fallback terminfo data. - o reset colors after each color test, correct a place - where exit_standout_mode was used instead of - exit_attribute_mode. - o improve bce test by making it set colors other than - black on white. - + tic: - o handle a case where an entry has no description, and - capabilities begin on the same line as the entry name. - o allow a terminfo entry with a leading 2-character name. - o improved warnings when suppressing items to fit in - termcap's 1023-byte limit. - o add check for multiple "tc=" clauses in a termcap. - o correct logic for resolving "use=" clauses allow infocmp - and tic to show cancelled capabilities. - o check for incomplete line-drawing character mapping. - o check for missing/empty/illegal terminfo name. - + tput: - o modify tput to use the same parameter analysis as - tparm() does, to provide for user-defined strings, e.g., - for xterm title, a corresponding capability might be - title=\E]2;%p1%s^G, - + tset: - o use the system's default values for CKILL and other - default control characters. - o correct interchanged defaults for kill and interrupt - characters, which caused it to report unnecessarily. - - Major bug fixes: - * prevent recursion in wgetch() via wgetnstr() if the connection - cannot be switched between cooked/raw modes because it is not a - TTY. - * correct a case in _nc_remove_string(), used by define_key(), to - avoid infinite loop if the given string happens to be a substring - of other strings which are assigned to keys. - * modify logic of acsc to use the original character if no mapping - is defined, rather than a null. - * several improvements for handling multi-cell display of wide - characters. - + modify setcchar() to allow converting control characters to - complex characters. - + correct handling of multibyte characters in waddch_literal() - which force wrapping because they are started too late on the - line. - + modify setcchar() to allow for wchar_t input strings that - have more than one spacing character. - * other fixes for wide-character support: - + rewrote lib_acs.c to allow PutAttrChar() to decide how to - render alternate-characters, i.e., to work with Linux console - and UTF-8 locale. - + implement a workaround so that line-drawing works with - screen's crippled UTF-8 support (tested with 3.9.13). This - only works with the wide-character support (--enable-widec); - the normal library will simply suppress line-drawing when - running in a UTF-8 locale in screen. - + corrections to lib_get_wstr.c: - o null-terminate buffer passed to setcchar(), which - occasionally failed. - o map special characters such as erase- and - kill-characters into key-codes so those will work as - expected even if they are not mentioned in the terminfo. - * modify setupterm() to check if the terminfo and terminal-modes - have already been read. This ensures that it does not reinvoke - def_prog_mode() when an application calls more than one function, - such as tgetent() and initscr(). - * fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, - REQ_DEL_CHAR, REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure - the cursor was at the editing position before making - modifications. - * correct keybound(), which reported definitions in the wrong table, - i.e., the list of definitions which are disabled by keyok(). - * fixes related to safe_sprintf.c: - + correct an allocation size in safe_sprintf.c for the "*" - format code. - + correct safe_sprintf.c to not return a null pointer if the - format happens to be an empty string. - + make return value from _nc_printf_string() consistent. - Before, depending on whether --enable-safe-sprintf was used, - it might not be cached for reallocating. - * other low-level improvements to the optimization code include: - + if the output is a socket or other non-tty device, use 1 - millisecond for the cost in mvcur; previously it was 9 - milliseconds because the baudrate was not known. - + modify lib_getch.c to avoid recursion via wgetnstr() when the - input is not a tty and consequently mode-changes do not work. - + fix several places in tack/pad.c which tested and used the - parameter- and parameterless strings inconsistently. - + change several tputs() calls in scrolling code to use putp(), - to enable padding which may be needed for some terminals. - + improve mvcur() by checking if it is safe to move when video - attributes are set (msgr), and if not, reset/restore - attributes within that function rather than doing it - separately in the GoTo() function in tty_update.c. - + use tputs() rather than putp() in a few cases in tty_update.c - since the corresponding delays are proportional to the number - of lines affected: repeat_char, clr_eos, - change_scroll_region. - * correct line/column reference in adjust_window(), needed to make - special windows such as curscr track properly when resizing. - * fix a potential recursion between napms() and _nc_timed_wait() - * rewrote lib_insch.c, combining it with lib_insstr.c so both handle - tab and other control characters consistently. - * do not try to open gpm mouse driver if standard output is not a - tty; the gpm library does not make this check. - - Portability: * configure script: + new options: - --with-abi-version option. - addresses platforms where packagers have diverged - from ncurses ABI numbering. - - --with-manpage-format=catonly - addresses behavior of BSDI, allow install of - man+cat files on NetBSD, whose behavior has - diverged by requiring both to be present. - - --with-manpage-aliases - extends "--with-manpage-aliases" to provide the - option of generating ".so" files rather than - symbolic links for manpage aliases. - - --with-rel-version - workaround to force libtool on Darwin generate the - "same" library names as with the "--with-shared" - option. The Darwin ld program does not work well - with a zero as the minor-version value. - - --with-trace - simplifies defining TRACE to incorporate trace() in - libraries. - - + fixes/improvements for cross-compiling: - o allow BUILD_CC and related configure script variables to - be overridden from the environment. - o use AC_CHECK_TOOL to get proper values for AR and LD for - cross compiling. - o use $cross_compiling variable in configure script rather - than comparing $host_alias and $target alias, since - "host" is traditionally misused in autoconf to refer to - the target platform. - o modify run_tic.in to avoid using wrong shared libraries - when cross-compiling. - + fixes for Mac OS X: - o fix a redefinition of $RANLIB in the configure script - when libtool is used. - o modify MKlib_gen.sh to avoid passing "#" tokens through - the C preprocessor. This works around Mac OS X's - preprocessor, which insists on adding a blank on each - side of the token. - + workarounds for broken tools: - o add configure check for wchar_t and wint_t types, rather - than rely on preprocessor definitions. Also work around - for gcc fixinclude bug which creates a shadow copy of - curses.h if it sees these symbols apparently typedef'd. - o modify configure script to omit -Winline for gcc 3.3, - since that feature is broken. - o several script fixes to work around the ironically named - POSIXLY_CORRECT feature of GNU sed 4.0. - o modify configure script to avoid using "head -1", which - does not work if POSIXLY_CORRECT (sic) is set. - o update configure script to reflect fix for - AC_PROG_GCC_TRADITIONAL, which is broken in autoconf - 2.5x for Mac OS X 10.2.3. - o repair check for missing C++ compiler, which is broken - in autoconf 2.5x by hardcoding it to g++. - + corrected ifdef's relating to configure check for wchar_t, - etc. - + remove configure script check to allow -Wconversion for older - versions of gcc - + modify configure script to accommodate libtool 1.5, as well - as add an parameter to the "--with-libtool" option which can - specify the pathname of libtool. - + change several sed scripts to avoid using "\+" since it is - not a BRE (basic regular expression). One instance caused - terminfo.5 to be misformatted on FreeBSD. - + use '%' as sed substitute delimiter in run_tic script to - avoid problems with pathname delimiters such as ':' and '@'. - + add -D_XOPEN_SOURCE=500 if needed when configuring with - "--enable-widec", to get mbstate_t declaration on HPUX 11.11. - * library: - + adjust include-options in CF_ETIP_DEFINES to avoid missing - ncurses_dll.h, fixing special definitions that may be needed - for etip.h. - + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use - a ".so" suffix. - + improve ifdef's to guard against redefinition of wchar_t and - wint_t in curses.h. - + remove an #undef for KEY_EVENT from curses.tail used in the - experimental NCURSES_WGETCH_EVENTS feature. The #undef - confuses Debian dpkg's build script. + --disable-libtool-version + use the "-version-number" feature which was added + in libtool 1.5. The default value for the option + uses the newer feature, which makes libraries + generated using libtool compatible with the + standard builds of ncurses. + + --disable-rpath-hack + disable a feature which adds rpath options for + libraries in unusual places. + + --enable-interop + integrate changes for generic/interop support to + form-library. + + --enable-pc-files + generate ".pc" files for each of the libraries, and + install them in pkg-config's library directory. + + --enable-pthreads-eintr + control whether to allow EINTR to interrupt a read + operation in wgetch. This applies only to the + pthread configuration + + --enable-sp-funcs + compile-in support for extended functions which + accept a SCREEN pointer, reducing the need for + juggling the global SP value with set_term and + delscreen. + + --enable-term-driver + compile with terminal-driver. That is used in the + MinGW port, and (being somewhat more complicated) + is an experimental alternative to the conventional + termlib internals. Currently, it requires the + sp-funcs feature to be enabled. + + --with-ncurses-wrap-prefix + allows setting the prefix for functions used to + wrap global variables to something other than + "_nc_". + + --with-pkg-config=[DIR] + check for pkg-config, optionally specifying its + path. + + --without-manpages + tells the configure script to suppress the install + of ncurses' manpages. + + --without-tests + suppress building test programs. + + + improved options: + o correct logic for --with-database, which was coded as an + enable-type switch. + o omit the opaque-functions from lib_gen.o when + --disable-ext-funcs is used. + * packaging: + + *-config scripts: + o modify adacurses-config to look for ".ali" files in the + adalib directory. + o correct install for the Ada95 tree, which omitted + libAdaCurses.a used in adacurses-config. + o change install for adacurses-config to provide + additional flavors such as adacursesw-config, for + ncursesw. + o modify scripts to generate ncurses*-config and pc-files + to add dependency for tinfo library. + o use ncurses*-config scripts if available for + test/configure. + o correct name for termlib in ncurses*-config, e.g., if it + is renamed to provide a single file for ncurses/ncursesw + libraries. + o generate manpages for the *-config scripts, adapted from + help2man. + o modify install-rule for manpages so that *-config + manpages will install when building with --srcdir. + o build-fixes for OpenSolaris aka Solaris 11, for + wide-character configuration as well as for rpath + feature in *-config scripts. + o use $includedir symbol in misc/ncurses-config.in, add + --includedir option. + o improve install-rules for pc-files. + o create the pkg-config library directory if needed. + o fix typo "==" where "=" is needed in ncurses-config.in + and gen-pkgconfig.in files. + o modify gen-pkgconfig.in to eliminate a dependency on + rpath when deciding whether to add $LIBS to --libs + output; that should be shown for the ncurses and tinfo + libraries without taking rpath into account. + o modify handling of $PKG_CONFIG_LIBDIR to use only the + first item in a possibly colon-separated list. + + other packaging issues + o add make-tar.sh scripts to Ada95 and test subdirectories + to help with making those separately distributable. + o add Ada95/configure script, to use in tar-file created + by Ada95/make-tar.sh. + o remove tar-copy.sh and related configure/Makefile + chunks, since the Ada95 binding is now installed using + rules in Ada95/src. + * cross-compiling: + + improve configure checks for location of tic and infocmp + programs used for installing database and for generating + fallback data, e.g., for cross-compiling. + + modify #define's for build-compiler to suppress cchar_t + symbol from compile of make_hash and make_keys, improving + cross-compilation of ncursesw. + + simplify include-dependencies of make_hash and make_keys, to + reduce the need for setting BUILD_CPPFLAGS in cross-compiling + when the build- and target-machines differ. + + correct cross-compiling configure check for CF_MKSTEMP macro, + by adding a check cache variable set by AC_CHECK_FUNC. + * library dependencies: + + revise wadd_wch and wecho_wchar to eliminate dependency on + unctrl. + + adjust configure script so that "t" is not added to library + suffix when weak-symbols are used, allowing the pthread + configuration to more closely match the non-thread naming. + * building the Ada95 tree: + + changes to use gnatmake project files in the Ada95 tree. + + add/use configure check to turn on project rules for + Ada95/src. + + old gnatmake (3.15) does not produce libraries using + project-file; work around by adding script to generate + alternate makefile. + + add configure --with-ada-sharedlib option, for the test_make + rule. + + move Ada95-related logic into aclocal.m4, since additional + checks will be needed to distinguish old/new implementations + of gnat. + + add test_make / test_clean / test_install rules in Ada95/src + + change install-path for adainclude directory to + /usr/share/ada (was /usr/lib/ada). + * other configure/build issues: + + make CCHARW_MAX value configurable, noting that changing this + would change the size of cchar_t, and would be + ABI-incompatible. + + improve comparison of program-names when checking for linked + flavors such as "reset" by ignoring the executable suffix. + + drop mkdirs.sh, use "mkdir -p". + + drop misc/ncu-indent and misc/jpf-indent; they are provided + by an external package [3]cindent. + + change makefiles to use $ARFLAGS rather than $AR_OPTS, + provide a configure check to detect whether a "-" is needed + before "ar" options. + + modify CF_DISABLE_LEAKS configure macro so that the + --enable-leaks option is not the same as --disable-leaks. + + improve configure script macros CF_HEADER_PATH and + CF_LIBRARY_PATH by adding CFLAGS, CPPFLAGS and LDFLAGS, LIBS + values to the search-lists. + + improve configure macros CF_GCC_VERSION and CF_GCC_WARNINGS + to work with gcc 4.x's c89 alias, which gives warning + messages for cases where older versions would produce an + error. + + modify CF_WITH_LIBTOOL configure check to allow unreleased + libtool version numbers (e.g. which include alphabetic chars, + as well as digits, after the final '.'). + + improve use of symbolic links in makefiles by using "-f" + option if it is supported, to eliminate temporary removal of + the target + + add a configure-time check to pick a suitable value for + CC_SHARED_OPTS for Solaris. + + add -shared option to MK_SHARED_LIB when -Bsharable is used, + for *BSD's, without which "main" might be one of the shared + library's dependencies. + + modify configure script to allow building shared libraries + with gcc on AIX 5 or 6. + + suppress configure check for static/dynamic linker flags for + gcc on Solaris 10, since gcc is confused by absence of static + libc, and does not switch back to dynamic mode before + finishing the libraries. + + suppress configure check for static/dynamic linker flags for + gcc on Darwin. + + modify misc/run_tic.in to create parent directory, in case + this is a new install of hashed database. + + modify configure check for tic program, used for fallbacks, + to a warning if not found. This makes it simpler to use + additonal scripts to bootstrap the fallbacks code using tic + from the build tree. + * test programs: + + add test/demo_terminfo, for comparison with demo_termcap. + + improve test/ncurses.c 'F' test, show combining characters in + color. + + fix logic for 'V' in test/ncurses.c tests f/F. + + improve test/ncurses.c 'a test to put mouse droppings in the + proper window. + + modify ncurses 'F' test to demo wborder_set with colored + lines. + + modify ncurses 'f' test to demo wborder with colored lines. + + improve test/ncurses.c 'a' test, using unctrl more + consistently to display meta-characters. + + correct use of key_name in test/ncurses.c 'A' test, which + only displays wide-characters, not key-codes since 20070612. + + add test/clip_printw.c to illustrate how to use printw + without wrapping. + + modify test-programs, e.g,. test/view.c, to address subtle + differences between Tru64/Solaris and HPUX/AIX getcchar + return values. + + add some test programs (and make these use the same special + keys by sharing linedata.h functions): test/test_addstr.c + test/test_addwstr.c test/test_addchstr.c + test/test_add_wchstr.c + + add test/xterm-256color.dat + + modify test programs to allow them to be built with NetBSD + curses. + + fixes for test programs to build/work on HPUX and AIX, etc. Features of Ncurses @@ -281,28 +440,28 @@ 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 + * The function wresize allows you to resize windows, preserving their data. - * The function use_default_colors() allows you to use the terminal's + * The function use_default_colors allows you to use the terminal's default colors for the default color pair, achieving the effect of transparent colors. - * The functions keyok() and define_key() allow you to better control - 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. + * The functions keyok and define_key allow you to better control 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 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. @@ -310,7 +469,7 @@ incorporates a novel, simple, and cheap algorithm that enables it to make optimal use of hardware scrolling, line-insertion, and line-deletion for screen-line movements. This algorithm is more - powerful than the 4.4BSD curses quickch() routine. + powerful than the 4.4BSD curses quickch routine. * Real support for terminals with the magic-cookie glitch. The screen-update code will refrain from drawing a highlight if the magic- cookie unattributed spaces required just before the @@ -373,55 +532,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.midnight-commander.org/ 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]https://sites.google.com/a/bostic.com/keithbostic/nvi 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 @@ -433,7 +588,7 @@ Who's Who and What's What Zeyd Ben-Halim started it from a previous package pcurses, written by - Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer + Pavel Curtis. Eric S. Raymond continued development. Juergen Pfeifer wrote most of the form and menu libraries. Ongoing work is being done by [17]Thomas Dickey. Thomas Dickey acts as the maintainer for the Free Software Foundation, which holds the copyright on ncurses. @@ -461,9 +616,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 . @@ -472,22 +628,22 @@ 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/cindent/cindent.html + 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.midnight-commander.org/ + 10. http://www.mutt.org/ + 11. http://www.ncftp.com/ + 12. https://sites.google.com/a/bostic.com/keithbostic/nvi + 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 19. ftp://invisible-island.net/ncurses/ 20. http://www.catb.org/~esr/terminfo/ - 21. http://www.cs.utk.edu/~shuford/terminal_index.html + 21. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal