+ update release notes, for 5.8.
+ regenerated html manpages.
+ change open() in _nc_read_file_entry() to fopen() for consistency
with write_file().
+ modify misc/run_tic.in to create parent directory, in case this is
a new install of hashed database.
+ fix typo in Ada95/mk-1st.awk which causes error with original awk.
+ add cons25-debian entry (patch by Brian M Carlson, Debian #607662).
- Announcing ncurses 5.7
+ 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,
Release Notes
This release is designed to be upward compatible from ncurses 5.0
- through 5.6; very few applications will require recompilation,
+ through 5.7; very few applications will require recompilation,
depending on the platform. These are the highlights from the
- change-log since ncurses 5.6 release.
-
- Interface changes:
- * generate linkable stubs for some macros:
- getattrs
-
- New features and improvements:
- * library
- + new flavor of the ncurses library provides rudimentary
- support for POSIX threads. Several functions are reentrant,
- but most require either a window-level or screen-level mutex.
- (This is API-compatible, but not ABI-compatible with the
- normal library).
- + add NCURSES_OPAQUE symbol to curses.h, will use to make
- structs opaque in selected configurations.
- + add NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS symbols to
- curses.h to make it simpler to tell if the extended functions
- and/or colors are declared.
- + add wresize() to C++ binding
- + eliminate fixed-buffer vsprintf() calls in C++ binding.
- + add several functions to C++ binding which wrap C functions
- that pass a WINDOW* parameter.
- + adapt mouse-handling code from menu library in form-library
- + improve tracing for form library, showing created forms,
- fields, etc.
- + make $NCURSES_NO_PADDING feature work for termcap interface .
- + add check to trace-file open, if the given name is a
- directory, add ".log" to the name and try again.
- + several new manpages: curs_legacy.3x, curs_memleaks.3x,
- curs_opaque.3x and curs_threads.3x
- * programs:
- + modified three test-programs to demonstrate the threading
- support in this version: ditto, rain, worm.
- + several new test-programs: demo_panels, dots_mvcur,
- inch_wide, inchs, key_name, key_names, savescreen,
- savescreen.sh test_arrays, test_get_wstr, test_getstr,
- test_instr, test_inwstr and test_opaque.
- + add adacurses-config to the Ada95 install.
- + modify tic -f option to format spaces as \s to prevent them
- from being lost when that is read back in unformatted
- strings.
- + The tack program is now distributed separately from ncurses.
- * terminal database
- + added entries:
- o Eterm-256color, Eterm-88color and rxvt-88color
- o aterm
- o konsole-256color
- o mrxvt
- o screen.mlterm
- o screen.rxvt
- o teraterm4.59 is now the primary primary teraterm entry,
- renamed original to teraterm2.3
- o 9term terminal
- o Newbury Data entries
- + updated/improved entries:
- o gnome to version 2.22.3
- o h19, z100
- o konsole to version 1.6.6
- o mlterm, mlterm+pcfkeys
- o xterm, and building-blocks for function-keys to [3]xterm
- patch #230.
-
- Major bug fixes:
- * add logic to tic for cancelling strings in user-defined
- capabilities (this is needed for current konsole terminfo entry).
- * modify mk-1st.awk so the generated makefile rules for linking or
- installing shared libraries do not first remove the library, in
- case it is in use, e.g., libncurses.so by /bin/sh.
- * correct check for notimeout() in wgetch().
- * fix a sign-extension bug in infocmp's repair_acsc() function.
- * change winnstr() to stop at the end of the line.
- * make Ada95 demo_panels() example work.
- * fix for adding a non-spacing character at the beginning of a line.
- * fill in extended-color pair to make colors work for
- wide-characters using extended-colors.
- * improve refresh of window on top of multi-column characters,
- taking into account split characters on left/right window
- boundaries.
- * modify win_wchnstr() to ensure that only a base cell is returned
- for each multi-column character.
- * improve waddch() and winsch() handling of EILSEQ from mbrtowc() by
- using unctrl() to display illegal bytes rather than trying to
- append further bytes to make up a valid sequence.
- * restore curs_set() state after endwin()/refresh()
- * modify keyname() to use "^X" form only if meta() has been called,
- or if keyname() is called without initializing curses, e.g., via
- initscr() or newterm().
- * modify unctrl() to check codes in 128-255 range versus isprint().
- If they are not printable, and locale was set, use a "M-" or "~"
- sequence.
- * improve resizeterm() by moving ripped-off lines, and repainting
- the soft-keys.
- * modify form library to accept control characters such as newline
- in set_field_buffer(), which is compatible with Solaris.
- * use NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc.,
- to make those work properly with the --enable-ext-mouse
- configuration
- * correct some functions in Ada95 binding which were using return
- value from C where none was returned.
- * reviewed/fixed issues reported by Coverity and Klocwork tools.
-
- Portability:
+ 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
+
* configure script:
+ new options:
- --disable-big-strings
- control whether static string tables are generated
- as single large strings (to improve startup
- performance), or as array of individual strings.
-
- --disable-relink
- control whether shared libraries are relinked
- (during install) when rpath is enabled.
-
- --disable-tic-depends
- make explicit whether tic library depends on
- ncurses/ncursesw library.
-
- --enable-mixed-case
- override the configure script's check if the
- filesystem supports mixed-case filenames. This
- allows one to control how the terminal database
- maps to the filesystem. For filesystems that do not
- support mixed-case, the library uses generate
- 2-character (hexadecimal) codes for the lower-level
- of the filesystem terminfo database
-
- --enable-reentrant
- builds a different flavor of the ncurses library
- (ncursest) which improves reentrant use of the
- library by reducing global and static variables
- (see the "--with-pthread" option for the threaded
- support).
-
- --enable-weak-symbols
- use weak-symbols for linking to the POSIX thread
- library, and use the same soname for the ncurses
- shared library as the normal library (caveat: the
- ABI is for the threaded library, which makes global
- data accessed via functions).
-
- --with-pthread
- build with the POSIX thread library (tested with
- AIX, Linux, FreeBSD, OpenBSD, HPUX, IRIX64,
- Solaris, Tru64).
-
- --with-ticlib
- build/install the tic-support functions in a
- separate library
+ --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:
-
- --enable-ext-colors
- requires the wide-character configuration.
-
- --with-chtype
- ignore option value "unsigned" is always added to
- the type in curses.h; do the same for
- --with-mmask-t.
-
- --with-dmalloc
- build-fix for redefinition of strndup.
-
- --with-hashed-db
- accepts a parameter which is the install-prefix of
- a given Berkeley Database.
-
- --with-hashed-db
- the $LIBS environment variable overrides the search
- for the db library.
-
- --without-hashed-db
- assumed when "--disable-database" is used.
-
+ 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:
- + build-fixes for LynxOS
- + modify shared-library rules to allow FreeBSD 3.x to use
- rpath.
- + build-fix for FreeBSD "contemporary" TTY interface.
- + build-fixes for AIX with libtool.
- + build-fixes for Darwin and libtool.
- + modify BeOS-specific ifdef's to build on Haiku.
- + corrected gcc options for building shared libraries on
- Solaris and IRIX64.
- + change shared-library configuration for OpenBSD, make rpath
- work.
- + build-fixes for using libutf8, e.g., on OpenBSD 3.7
- + add "-e" option in ncurses/Makefile.in when generating
- source-files to force earlier exit if the build environment
- fails unexpectedly.
- + add support for shared libraries for QNX.
- + change delimiter in MKlib_gen.sh from '%' to '@', to avoid
- substitution by IBM xlc to '#' as part of its extensions to
- digraphs.
- * library:
- + rewrite wrapper for wcrtomb(), making it work on Solaris.
- This is used in the form library to determine the length of
- the buffer needed by field_buffer.
- + add/use configure script macro CF_SIG_ATOMIC_T, use the
- corresponding type for data manipulated by signal handlers.
- + set locale in misc/ncurses-config.in since it uses a range
- + disable GPM mouse support when $TERM does not happen to
- contain "linux", since Gpm_Open() no longer limits its
- assertion to terminals that it might handle, e.g., within
- "screen" in xterm.
- + reset mouse file-descriptor when unloading GPM library.
+ + 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:
- + update test programs to build/work with various UNIX curses
- for comparisons.
+ + 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
* 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.
+ * 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.
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
Midnight Commander
file manager
- [9]http://www.ibiblio.org/mc/
+ [9]http://www.midnight-commander.org/
mutt
mail utility
nvi
New vi versions 1.50 are able to use ncurses versions 1.9.7 and
later.
- [12]http://www.bostic.com/vi/
+ [12]https://sites.google.com/a/bostic.com/keithbostic/nvi
pinfo
Lynx-like info browser.
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.
1. ftp://ftp.gnu.org/gnu/ncurses/
2. ftp://invisible-island.net/ncurses/
- 3. http://invisible-island.net/xterm/xterm.log.html#xterm_230
+ 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.ibiblio.org/mc/
+ 9. http://www.midnight-commander.org/
10. http://www.mutt.org/
11. http://www.ncftp.com/
- 12. http://www.bostic.com/vi/
+ 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/
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
-# $Id: mk-1st.awk,v 1.3 2010/06/26 23:37:46 tom Exp $
+# $Id: mk-1st.awk,v 1.4 2011/02/22 09:40:01 tom Exp $
##############################################################################
-# Copyright (c) 2010 Free Software Foundation, Inc. #
+# Copyright (c) 2010,2011 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
}
{
printf "\n";
- printf "%s.o :", $1.o
+ printf "%s.o :", $1;
if ( $2 == "none" ) {
pre_spec = "";
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.151 2011/01/23 00:06:15 tom Exp $
+-- $Id: INSTALL,v 1.152 2011/02/25 22:10:53 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
you may encounter when building a system with different versions of
ncurses:
- 5.8 (??? ?, 2011)
+ 5.8 (Feb 26, 2011)
Interface changes:
+ add an alternate library configuration, i.e., "terminal driver" to
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1645 2011/02/21 01:42:08 tom Exp $
+-- $Id: NEWS,v 1.1651 2011/02/26 16:54:31 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20110226 5.8 release for upload to ftp.gnu.org
+
+20110226
+ + update release notes, for 5.8.
+ + regenerated html manpages.
+ + change open() in _nc_read_file_entry() to fopen() for consistency
+ with write_file().
+ + modify misc/run_tic.in to create parent directory, in case this is
+ a new install of hashed database.
+ + fix typo in Ada95/mk-1st.awk which causes error with original awk.
+
20110220
+ configure script rpath fixes from xterm #269.
+ workaround for cygwin's non-functional features.h, to force ncurses'
configure script to define _XOPEN_SOURCE_EXTENDED when building
wide-character configuration.
+ build-fix in run_tic.sh for OS/2 EMX install
- + add cons25-debian entry (patch by Brian M Carlson, Debina #607662).
+ + add cons25-debian entry (patch by Brian M Carlson, Debian #607662).
20110212
+ regenerated html manpages.
20030208
+ add checking in tic for incomplete line-drawing character mapping.
- + update configure script to reflect fix for AC_PROG_GCC_TRADITIONAL,
+ + updated configure script to reflect fix for AC_PROG_GCC_TRADITIONAL,
which is broken in autoconf 2.5x for Mac OS X 10.2.3 (report by
Gerben Wierda <Sherlock@rna.nl>).
+ make return value from _nc_printf_string() consistent. Before,
+ restore special case from 20010922 changes to omit SA_RESTART when
setting up SIGWINCH handler, which is needed to allow wgetch() to be
interrupted by that signal.
- + update configure macro CF_WITH_PATHLIST, to omit some double quotes
+ + updated configure macro CF_WITH_PATHLIST, to omit some double quotes
not needed with autoconf 2.52
+ revert configure script to autoconf 2.13 patched with
autoconf-2.13-19990117.patch.gz (or later)
-------------------------------------------------------------------------------
--- Copyright (c) 2008,2010 Free Software Foundation, Inc. --
+-- Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
-- copy of this software and associated documentation files (the --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README.MinGW,v 1.4 2010/12/18 21:07:03 tom Exp $
+-- $Id: README.MinGW,v 1.5 2011/02/26 16:57:17 tom Exp $
-- Author: Juergen Pfeifer
-------------------------------------------------------------------------------
- A GUI console driver
- Support for Terminals attached via a serial port (via terminfo)
- Support for networked Terminal connections (via terminfo)
+ - Workarounds for MinGW's filesystem access are necessary to make infocmp
+ work (though tic works).
To support terminfo, we need to have an ioctl() simulation for the
serial and networked Terminals.
-------------------------------------------------------------------------------
--- Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. --
+-- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
-- copy of this software and associated documentation files (the --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: TO-DO,v 1.54 2010/01/09 16:48:05 tom Exp $
+-- $Id: TO-DO,v 1.56 2011/02/26 16:58:53 tom Exp $
-------------------------------------------------------------------------------
SHORT-TERM TO-DO ITEMS:
+ the --with-pthread configuration builds for Cygwin, but does not work
properly (test/worm.c shows all of the worms in the same location).
-+ the Ada95 tree requires a small fix to build on Cygwin, since the GNAT port
- to that platform provides an incomplete Interrupts.Names package. For
- instance (your gcc version may be different):
++ the Ada95 tree may require a small fix to build on Cygwin, since the GNAT
+ port to that platform for 3.4.4 provides an incomplete Interrupts.Names
+ package. For instance (your gcc version may be different):
/usr/lib/gcc/i686-pc-cygwin/3.4.4/adainclude/a-intnam.ads
cut here...
Building those with libtool does not work either. (This is a problem with
the BSD platforms).
++ more work is needed to make the MinGW port support ordinary terminals.
+
Portability (or lack thereof):
+ Users of older System V UNIXes (but not Solaris, and probably not SVr4) may
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
- $Id: announce.html.in,v 1.71 2010/12/04 18:47:13 tom Exp $
+ $Id: announce.html.in,v 1.83 2011/02/25 11:50:46 tom Exp $
****************************************************************************
- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************
-->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses @VERSION@</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses @VERSION@</H1>
-
-The ncurses (new curses) library is a free software emulation of
-curses in System V Release 4.0, and more. It uses terminfo format,
-supports pads and color
-and multiple highlights and forms characters and function-key mapping,
-and has all the other SYSV-curses enhancements over BSD curses.<P>
-
-In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and encouraged the keepers of
-Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
-ncurses.<P>
-
-The ncurses code was developed under GNU/Linux.
-It has been in use for some time with OpenBSD as the system curses library,
-and on FreeBSD and NetBSD as an external package.
-It should port easily to any ANSI/POSIX-conforming UNIX.
-It has even been ported to OS/2 Warp!<P>
-
-The distribution includes the library and support utilities, including a
-terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
-and a termcap conversion tool captoinfo(1). Full manual pages are provided for
-the library and tools.<P>
-
-The ncurses distribution is available via anonymous FTP at
-the GNU distribution site
-<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A> .
-<br>It is also available at
-<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> .
-
-<H1>Release Notes</H1>
-
-This release is designed to be upward compatible from ncurses 5.0 through 5.6;
-very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.6 release.
-<p>
-Interface changes:
-<ul>
- <li>generate linkable stubs for some macros:
- <br>
- getattrs
-
-</ul>
-New features and improvements:
-<ul>
- <li>library
- <ul>
- <li>new flavor of the ncurses library provides rudimentary
- support for POSIX threads. Several functions are
- reentrant, but most require either a window-level or
- screen-level mutex.<br>
- (This is <em>API</em>-compatible,
- but not <em>ABI</em>-compatible with the normal library).
-
- <li>add <code>NCURSES_OPAQUE</code> symbol to curses.h, will
- use to make structs opaque in selected configurations.
-
- <li>add <code>NCURSES_EXT_FUNCS</code> and
- <code>NCURSES_EXT_COLORS</code> symbols to curses.h to make
- it simpler to tell if the extended functions and/or colors
- are declared.
-
- <li>add wresize() to C++ binding
-
- <li>eliminate fixed-buffer vsprintf() calls in C++ binding.
-
- <li>add several functions to C++ binding which wrap C functions
- that pass a WINDOW* parameter.
-
- <li>adapt mouse-handling code from menu library in form-library
-
- <li>improve tracing for form library, showing created forms,
- fields, etc.
-
- <li>make $NCURSES_NO_PADDING feature work for termcap interface .
-
- <li>add check to trace-file open, if the given name is a
- directory, add ".log" to the name and try again.
-
- <li>several new manpages: curs_legacy.3x, curs_memleaks.3x,
- curs_opaque.3x and curs_threads.3x
- </ul>
-
- <li>programs:
- <ul>
- <li>modified three test-programs to demonstrate the threading
- support in this version: ditto, rain, worm.
-
- <li>several new test-programs: demo_panels, dots_mvcur,
- inch_wide, inchs, key_name, key_names, savescreen,
- savescreen.sh test_arrays, test_get_wstr, test_getstr,
- test_instr, test_inwstr and test_opaque.
-
- <li>add <code>adacurses-config</code> to the Ada95 install.
-
- <li>modify tic <code>-f</code> option to format spaces as
- <code>\s</code> to prevent them from being lost when that
- is read back in unformatted strings.
-
- <li>The <code>tack</code> program is now distributed separately
- from ncurses.
- </ul>
-
- <li>terminal database
- <ul>
- <li>added entries:
- <ul>
- <li><code>Eterm-256color</code>,
- <code>Eterm-88color</code> and
- <code>rxvt-88color</code>
- <li><code>aterm</code>
- <li><code>konsole-256color</code>
- <li><code>mrxvt</code>
- <li><code>screen.mlterm</code>
- <li><code>screen.rxvt</code>
- <li><code>teraterm4.59</code> is now the primary primary
- teraterm entry, renamed original to
- <code>teraterm2.3</code>
- <li><code>9term</code> terminal
- <li>Newbury Data entries
- </ul>
- <li>updated/improved entries:
- <ul>
- <li><code>gnome</code> to version 2.22.3
- <li><code>h19</code>, <code>z100</code>
- <li><code>konsole</code> to version 1.6.6
- <li><code>mlterm</code>, <code>mlterm+pcfkeys</code>
- <li><code>xterm</code>, and building-blocks for function-keys
- to <a href="http://invisible-island.net/xterm/xterm.log.html#xterm_230">xterm patch #230</a>.
- </ul>
- </ul>
-</ul>
-Major bug fixes:
-<ul>
- <li>add logic to tic for cancelling strings in user-defined
- capabilities
- (this is <em>needed</em> for
- current <code>konsole</code> terminfo entry).
-
- <li>modify <code>mk-1st.awk</code> so the generated makefile rules for
- linking or installing shared libraries do not first remove the
- library, in case it is in use, e.g., <code>libncurses.so</code> by
- <code>/bin/sh</code>.
-
- <li>correct check for notimeout() in wgetch().
-
- <li>fix a sign-extension bug in infocmp's repair_acsc() function.
-
- <li>change winnstr() to stop at the end of the line.
-
- <li>make Ada95 demo_panels() example work.
-
- <li>fix for adding a non-spacing character at the beginning of a line.
-
- <li>fill in extended-color pair to make colors work
- for wide-characters using extended-colors.
-
- <li>improve refresh of window on top of multi-column characters,
- taking into account split characters on left/right window
- boundaries.
-
- <li>modify <code>win_wchnstr()</code> to ensure that only a base cell
- is returned for each multi-column character.
-
- <li>improve <code>waddch()</code> and <code>winsch()</code> handling of
- EILSEQ from <code>mbrtowc()</code> by using <code>unctrl()</code>
- to display illegal bytes rather than trying to append further bytes
- to make up a valid sequence.
-
- <li>restore <code>curs_set()</code> state after
- <code>endwin()</code>/<code>refresh()</code>
-
- <li>modify <code>keyname()</code> to use "^X" form only if
- <code>meta()</code> has been called, or if <code>keyname()</code>
- is called without initializing curses, e.g., via
- <code>initscr()</code> or <code>newterm()</code>.
-
- <li>modify <code>unctrl()</code> to check codes in 128-255 range versus
- <code>isprint()</code>.
- If they are not printable, and locale was set, use a "M-" or "~"
- sequence.
-
- <li>improve <code>resizeterm()</code> by moving ripped-off lines, and
- repainting the soft-keys.
-
- <li>modify form library to accept control characters such as newline
- in set_field_buffer(), which is compatible with Solaris.
-
- <li>use <code>NCURSES_MOUSE_MASK()</code> in definition of
- <code>BUTTON_RELEASE()</code>, etc., to make those work properly
- with the <code>--enable-ext-mouse</code> configuration
-
- <li>correct some functions in Ada95 binding which were using return
- value from C where none was returned.
-
- <li>reviewed/fixed issues reported by Coverity and Klocwork tools.
-</ul>
-
-Portability:
-<ul>
- <li>configure script:
+
+<html>
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
+
+ <title>Announcing ncurses @VERSION@</title>
+ <link rev="made" href="mailto:bug-ncurses@gnu.org">
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii">
+</head>
+
+<body>
+ <h1>Announcing ncurses @VERSION@</h1>The ncurses (new curses)
+ library is a free software emulation of curses in System V
+ Release 4.0, and more. It uses terminfo format, supports pads and
+ color and multiple highlights and forms characters and
+ function-key mapping, and has all the other SYSV-curses
+ enhancements over BSD curses.
+
+ <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
+ that he considered 4.4BSD curses obsolete, and encouraged the
+ keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to
+ switch over to ncurses.</p>
+
+ <p>The ncurses code was developed under GNU/Linux. It has been in
+ use for some time with OpenBSD as the system curses library, and
+ on FreeBSD and NetBSD as an external package. It should port
+ easily to any ANSI/POSIX-conforming UNIX. It has even been ported
+ to OS/2 Warp!</p>
+
+ <p>The distribution includes the library and support utilities,
+ including a terminfo compiler tic(1), a decompiler infocmp(1),
+ clear(1), tput(1), tset(1), and a termcap conversion tool
+ captoinfo(1). Full manual pages are provided for the library and
+ tools.</p>
+
+ <p>The ncurses distribution is available via anonymous FTP at the
+ GNU distribution site <a href=
+ "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a> .<br>
+
+ It is also available at <a href=
+ "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p>
+
+ <h1>Release Notes</h1>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.
+
+ <h2>Interface changes</h2>
+
+ <ul>
+ <li>turn on <code>_XOPEN_CURSES</code> definition in
+ <code>curses.h</code>.</li>
+
+ <li>change <code>_nc_has_mouse</code> to
+ <code>has_mouse</code>, reflect its use in C++ and Ada95.</li>
+
+ <li>add <code>is_pad</code> and <code>is_subwin</code>
+ functions for opaque access to the WINDOW structure.</li>
+
+ <li>add <code>tiparm</code>, based on review of X/Open Curses
+ Issue 7.</li>
+ </ul>
+
+ <h2>New features and improvements</h2>
+
+ <h3>Library Improvements</h3>
+
+ <ul>
+ <li>add a terminal driver for Windows console, which supports a
+ MinGW port to Windows.</li>
+
+ <li>add extended functions which specify the
+ <code>SCREEN</code> pointer for several curses functions which
+ use the global <code>SP</code>.</li>
+
+ <li>improve the <code>NCURSES_NO_UTF8_ACS</code> feature by
+ adding a check for an extended terminfo capability
+ <code>U8</code>.</li>
+
+ <li>improve performance of <code>tigetstr</code>, etc., by
+ using hashing code from tic.</li>
+
+ <li>add WACS_<em>xxx</em> definitions to wide-character
+ configuration for thick- and double-lines.</li>
+
+ <li>modify init_pair to allow caller to create extra color
+ pairs beyond the color_pairs limit, which use default
+ colors.</li>
+ </ul>
+
+ <h3>Improvements to Programs</h3>
+
+ <ul>
+ <li>add <code>tabs</code> program.</li>
+
+ <li>modify tic's -I/-C dump to reformat acsc strings into
+ canonical form (sorted, unique mapping).</li>
+
+ <li>add checks in tic for inconsistent cursor-movement
+ controls, and for inconsistent printer-controls.</li>
+
+ <li>add special case to <code>_nc_infotocap</code> (used by tic
+ and infocmp) to recognize the
+ <code>setaf</code>/<code>setab</code> strings from
+ <code>xterm+256color</code> and <code>xterm+88color,</code> and
+ provide a reduced version which works with termcap.</li>
+ </ul>
+
+ <h3>Terminal Database</h3>
+
+ <ul>
+ <li>added entries:
+
+ <ul>
+ <li><code>bterm</code> terminfo entry, based on bogl
+ 0.1.18</li>
+
+ <li><code>cons25-debian</code> entry</li>
+
+ <li><code>eterm-color</code> entry</li>
+
+ <li><code>linux-16color</code></li>
+
+ <li><code>mlterm+256color</code> entry, for mlterm
+ 3.0.0</li>
+
+ <li>several screen-bce.<em>xxx</em> entries</li>
+
+ <li><code>screen.Eterm</code> terminfo entry</li>
+
+ <li><code>vwmterm</code> entry</li>
+
+ <li><code>xterm-utf8</code> entry as a demo of the
+ <code>U8</code> feature</li>
+ </ul>
+ </li>
+
+ <li>updated/improved entries:
+
+ <ul>
+ <li>use extended capabilities:
+
+ <ul>
+ <li>add <code>U8</code> feature to denote entries for
+ terminal emulators which do not support VT100 SI/SO
+ when processing UTF-8 encoding</li>
+
+ <li>add <code>XT</code> capability to entries for
+ terminals that support both xterm-style mouse- and
+ title-controls, for <code>screen</code> which
+ special-cases TERM beginning with <code>xterm</code> or
+ <code>rxvt</code></li>
+ </ul>
+ </li>
+
+ <li>improvements based on new checks in tic:</li>
+
+ <li style="list-style: none; display: inline">
<ul>
- <li>new options:
- <dl>
-
- <dt>--disable-big-strings
- <dd>control whether static string tables are generated as single
- large strings (to improve startup performance), or as array
- of individual strings.
-
- <dt>--disable-relink
- <dd>control whether shared libraries are relinked (during install)
- when rpath is enabled.
-
- <dt>--disable-tic-depends
- <dd>make explicit whether tic library depends on ncurses/ncursesw
- library.
-
- <dt>--enable-mixed-case
- <dd>override the configure script's check if the filesystem
- supports mixed-case filenames.
- This allows one to control how the terminal database
- maps to the filesystem.
- For filesystems that do not support mixed-case, the library
- uses generate 2-character (hexadecimal) codes for the
- lower-level of the filesystem terminfo database
-
- <dt>--enable-reentrant
- <dd>builds a different flavor of the ncurses library (ncursest)
- which improves reentrant use of the
- library by reducing global and static variables
- (see the "--with-pthread" option for the threaded support).
-
- <dt>--enable-weak-symbols
- <dd>use weak-symbols for linking to the POSIX thread library,
- and use the same soname for the ncurses shared library
- as the normal library (caveat: the ABI is for the threaded
- library, which makes global data accessed via functions).
-
- <dt>--with-pthread
- <dd>build with the POSIX thread library (tested with AIX,
- Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64).
-
- <dt>--with-ticlib
- <dd>build/install the tic-support functions in a separate library
-
- </dl>
-
- <li>improved options:
- <dl>
-
- <dt>--enable-ext-colors
- <dd>requires the wide-character configuration.
-
- <dt>--with-chtype
- <dd>ignore option value "unsigned" is always added to
- the type in curses.h; do the same for --with-mmask-t.
-
- <dt>--with-dmalloc
- <dd>build-fix for redefinition of <code>strndup</code>.
-
- <dt>--with-hashed-db
- <dd>accepts a parameter which is the install-prefix of a given
- Berkeley Database.
-
- <dt>--with-hashed-db
- <dd>the $LIBS environment variable overrides the search for the db
- library.
-
- <dt>--without-hashed-db
- <dd>assumed when "--disable-database" is used.
-
- </dl>
-
- </ul>
-
- <li>other configure/build issues:
- <ul>
- <li>build-fixes for LynxOS
- <li>modify shared-library rules to allow FreeBSD 3.x to use rpath.
- <li>build-fix for FreeBSD "contemporary" TTY interface.
- <li>build-fixes for AIX with libtool.
- <li>build-fixes for Darwin and libtool.
- <li>modify BeOS-specific ifdef's to build on Haiku.
- <li>corrected gcc options for building shared libraries on Solaris
- and IRIX64.
- <li>change shared-library configuration for OpenBSD, make rpath work.
- <li>build-fixes for using libutf8, e.g., on OpenBSD 3.7
- <li>add "-e" option in ncurses/Makefile.in when generating source-files
- to force earlier exit if the build environment fails unexpectedly.
- <li>add support for shared libraries for QNX.
- <li>change delimiter in <code>MKlib_gen.sh</code> from '%' to '@', to
- avoid substitution by IBM xlc to '#' as part of its extensions to
- digraphs.
- </ul>
-
- <li>library:
- <ul>
- <li>rewrite wrapper for <code>wcrtomb()</code>, making it work on
- Solaris. This is used in the form library to determine the length
- of the buffer needed by <code>field_buffer</code>.
- <li>add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
- type for data manipulated by signal handlers.
- <li>set locale in misc/ncurses-config.in since it uses a range
- <li>disable GPM mouse support when $TERM does not happen to contain
- "linux", since Gpm_Open() no longer limits its assertion to terminals
- that it might handle, e.g., within "screen" in xterm.
- <li>reset mouse file-descriptor when unloading GPM library.
- </ul>
-
- <li>test programs:
- <ul>
- <li>update test programs to build/work with various UNIX curses for
- comparisons.
- </ul>
-</ul>
-
-<H1>Features of Ncurses</H1>
-
-The ncurses package is fully compatible with SVr4 (System V Release 4) curses:
-
-<UL>
-<LI>All 257 of the SVr4 calls have been implemented (and are documented).
-<LI>Full support for SVr4 curses features including keyboard mapping, color,
-forms-drawing with ACS characters, and automatic recognition of keypad
-and function keys.
-<LI>An emulation of the SVr4 panels library, supporting
-a stack of windows with backing store, is included.
-<LI>An emulation of the SVr4 menus library, supporting
-a uniform but flexible interface for menu programming, is included.
-<LI>An emulation of the SVr4 form library, supporting
-data collection through on-screen forms, is included.
-<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
-are bit-for-bit-compatible with the entry format SVr4 curses uses.
-<LI>The utilities have options to allow you to filter terminfo
-entries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
-versions such as the HP/UX and AIX ports.</UL>
-
-The ncurses package also has many useful extensions over SVr4:
-
-<UL>
-<LI>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,
-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).
-<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
-of the screen if your terminal has an insert-character capability.
-<LI>Ada95 and C++ bindings.
-<LI>Support for mouse event reporting with X Window xterm
-and FreeBSD and OS/2 console windows.
-<LI>Extended mouse support via Alessandro Rubini's gpm package.
-<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
-their data.
-<LI>The function <CODE>use_default_colors()</CODE> allows you to
-use the terminal's default colors for the default color pair,
-achieving the effect of transparent colors.
-<LI>The functions <CODE>keyok()</CODE>
-and <CODE>define_key()</CODE> 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.
-<LI>Support for 256-color terminals, such as modern xterm, when configured
-using the <code>--enable-ext-colors</code> option.
-<LI>Support for 16-color terminals, such as aixterm and modern xterm.
-<LI>Better cursor-movement optimization. The package now features a
-cursor-local-movement computation more efficient than either BSD's
-or System V's.
-<LI>Super hardware scrolling support. The screen-update code 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.
-<LI>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 beginning and
-after the end would step on a non-space character. It will
-automatically shift highlight boundaries when doing so would make it
-possible to draw the highlight without changing the visual appearance
-of the screen.
-<LI>It is possible to generate the library with a list of pre-loaded
-fallback entries linked to it so that it can serve those terminal types even
-when no terminfo tree or termcap file is accessible (this may be useful
-for support of screen-oriented programs that must run in single-user mode).
-<LI>The tic(1)/captoinfo utility provided with ncurses has the
-ability to translate many termcaps from the XENIX, IBM and
-AT&T extension sets.
-<LI>A BSD-like tset(1) utility is provided.
-<LI>The ncurses library and utilities will automatically read terminfo
-entries from $HOME/.terminfo if it exists, and compile to that directory
-if it exists and the user has no write access to the system directory.
-This feature makes it easier for users to have personal terminfo entries
-without giving up access to the system terminfo directory.
-<LI>You may specify a path of directories to search for compiled
-descriptions with the environment variable TERMINFO_DIRS (this
-generalizes the feature provided by TERMINFO under stock System V.)
-<LI>In terminfo source files, use capabilities may refer not just to
-other entries in the same source file (as in System V) but also to
-compiled entries in either the system terminfo directory or the user's
-$HOME/.terminfo directory.
-<LI>A script (<STRONG>capconvert</STRONG>) is provided to help BSD users
-transition from termcap to terminfo. It gathers the information in a
-TERMCAP environment variable and/or a ~/.termcap local entries file
-and converts it to an equivalent local terminfo tree under $HOME/.terminfo.
-<LI>Automatic fallback to the /etc/termcap file can be compiled in
-when it is not possible to build a terminfo tree. This feature is neither
-fast nor cheap, you don't want to use it unless you have to,
-but it's there.
-<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
-see exactly what terminal types are available on the system.
-<LI>The library meets the XSI requirement that every macro entry
-point have a corresponding function which may be linked (and will be
-prototype-checked) if the macro definition is disabled with
-<CODE>#undef</CODE>.
-<LI>An HTML "Introduction to Programming with NCURSES" document provides
-a narrative introduction to the curses programming interface.
-</UL>
-
-<H1>State of the Package</H1>
-
-Numerous bugs present in earlier versions have been fixed; the
-library is far more reliable than it used to be. Bounds checking in many
-`dangerous' entry points has been improved. The code is now type-safe
-according to gcc -Wall. The library has been checked for malloc leaks and
-arena corruption by the Purify memory-allocation tester.<P>
-
-The ncurses code has been tested with a wide variety of applications
-including (versions starting with those noted):
-<DL>
-<DT> cdk
-<DD> Curses Development Kit
-<br>
-<A HREF="http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</A>
-<br>
-<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
-<DT> ded
-<DD> directory-editor
-<br>
-<A HREF="http://invisible-island.net/ded/">http://invisible-island.net/ded/</A>
-<DT> dialog
-<DD> the underlying application used in Slackware's setup, and the basis
-for similar applications on GNU/Linux.
-<br>
-<A HREF="http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</A>
-<DT> lynx
-<DD> the character-screen WWW browser
-<br>
-<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release/</A>
-<DT> Midnight Commander
-<DD> file manager
-<br>
-<A HREF="http://www.ibiblio.org/mc/">http://www.ibiblio.org/mc/</A>
-<DT> mutt
-<DD> mail utility
-<br>
-<A HREF="http://www.mutt.org/">http://www.mutt.org/</A>
-<DT> ncftp
-<DD> file-transfer utility
-<br>
-<A HREF="http://www.ncftp.com/">http://www.ncftp.com/</A>
-<DT> nvi
-<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
-<br>
-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>
-<br>
-<DT> pinfo
-<DD> Lynx-like info browser.
-<A HREF="https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</A>
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<A HREF="http://www.tin.org/">http://www.tin.org/</A>
-</DL>
-as well as some that use ncurses for the terminfo support alone:
-<DL>
-<DT> minicom
-<DD> terminal emulator
-<br>
-<A HREF="http://alioth.debian.org/projects/minicom/">
-http://alioth.debian.org/projects/minicom/</A>
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://invisible-island.net/vile/">http://invisible-island.net/vile/</A>
-</DL>
-<P>
-
-The ncurses distribution includes a selection of test programs (including
-a few games).
-
-<H2>Who's Who and What's What</H2>
-
-Zeyd Ben-Halim
-started it from a previous package pcurses, written by Pavel Curtis.
-Eric S. Raymond
-continued development.
-Jürgen Pfeifer wrote most of the form and menu libraries.
-Ongoing work is being done by
-<A HREF="mailto:dickey@invisible-island.net">Thomas Dickey</A>.
-Thomas Dickey
-acts as the maintainer for the Free Software Foundation,
-which holds the copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-To join the ncurses mailing list, please write email to
-<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
-<PRE>
+ <li>fill in no-parameter forms of cursor-movement where
+ a parameterized form is available</li>
+
+ <li>fill in missing cursor controls where the form of
+ the controls is ANSI</li>
+
+ <li>add parameterized cursor-controls to
+ linux-basic</li>
+
+ <li>modify <code>nsterm,</code> <code>xnuppc</code> and
+ <code>tek4115</code> to make
+ <code>sgr</code>/<code>sgr0</code> consistent</li>
+
+ <li>change several terminfo entries to make consistent
+ use of ANSI clear-all-tabs</li>
+ </ul>
+ </li>
+
+ <li>extend <code>ansi.sys</code> <code>pfkey</code>
+ capability from kf1-kf10 to kf1-kf48, moving function key
+ definitions from <code>emx-base</code> for
+ consistency.</li>
+
+ <li>correct missing final 'p' in <code>pfkey</code>
+ capability of <code>ansi.sys-old</code>.</li>
+
+ <li>rename <code>atari</code> and <code>st52</code>
+ terminfo entries to atari-old, st52-old, use newer entries
+ from FreeMiNT.</li>
+
+ <li>repurpose <code>gnome</code> terminfo entries as
+ <code>vte</code>, retaining <code>gnome</code> variants for
+ compatibility, but generally deprecating those since the
+ VTE library is what actually defines the behavior of
+ "gnome", etc., since 2003.</li>
+
+ <li>improve <code>interix</code> <code>smso</code> terminfo
+ capability by using reverse rather than bold.</li>
+
+ <li>correct <code>initc</code> capability of
+ <code>linux-c-nc</code> end-of-range, make similar change
+ for <code>dg+ccc</code> and <code>dgunix+ccc</code>.</li>
+
+ <li>update <code>minix</code> terminfo entry.</li>
+
+ <li>updated <code>nsterm*</code> entries.</li>
+
+ <li>remove unnecessary <code>kcan</code> assignment to
+ <code>^C</code> from <code>putty</code>.</li>
+
+ <li>suppress <code>ncv</code> in <code>screen</code> and
+ <code>konsole-base</code> entries, allowing underline.</li>
+
+ <li>change ncv and op capabilities in
+ <code>sun-color</code> terminfo entry to match Sun's entry
+ for this.</li>
+
+ <li>fix typo in <code>rmso</code> for <code>tek4106</code>
+ entry.</li>
+
+ <li>improve <code>acsc</code> string for <code>vt52</code>,
+ show arrow keys.</li>
+
+ <li>add hard-reset for <code>rs2</code> to
+ <code>wsvt25</code> to help ensure that reset ends the
+ alternate character set.</li>
+
+ <li>add <code>ccc</code> and <code>initc</code>
+ capabilities to <code>xterm-16color</code>.</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h2>Major bug fixes</h2>
+
+ <ul>
+ <li>ncurses library
+
+ <ul>
+ <li>wide character support
+
+ <ul>
+ <li>modify length returned by <code>getcchar</code> to
+ count the trailing null which is documented in
+ X/Open.</li>
+
+ <li>fix an infinite recursion when adding a
+ legacy-coding 8-bit value using
+ <code>insch</code>.</li>
+
+ <li>improve a workaround in adding wide-characters,
+ when a control character is found. The library uses
+ <code>unctrl</code> to obtain a printable version of
+ the control character, but was not passing color or
+ video attributes.</li>
+
+ <li>modify <code>waddch_literal</code>, 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.</li>
+
+ <li>fixes in <code>wins_nwstr</code> and related
+ functions to ensure that special characters, i.e.,
+ control characters are handled properly with the
+ wide-character configuration.</li>
+
+ <li>correct internal <code>_nc_insert_ch</code> to use
+ <code>_nc_insert_wch</code> when inserting wide
+ characters, since the <code>wins_wch</code> function
+ that it used did not update the cursor position.</li>
+ </ul>
+ </li>
+
+ <li>mouse
+
+ <ul>
+ <li>add check if <code>Gpm_Open</code> returns a -2,
+ e.g., for "xterm". This is normally suppressed but can
+ be overridden using <code>$NCURSES_GPM_TERMS</code>.
+ Ensure that <code>Gpm_Close</code> is called in this
+ case.</li>
+
+ <li>add check in mouse-driver to disable connection if
+ GPM returns a zero, indicating that the connection is
+ closed.</li>
+
+ <li>modify <code>getmouse</code> 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 <code>ERR</code>.</li>
+ </ul>
+ </li>
+
+ <li>miscellaneous
+
+ <ul>
+ <li>improve handling of color-pairs embedded in
+ attributes for the extended-colors configuration.</li>
+
+ <li>add check for failure to open hashed-database
+ needed for db4.6.</li>
+
+ <li>modify use of <code>$CC</code> environment variable
+ which is defined by X/Open as a curses feature, to
+ ignore it if it is not a single character.</li>
+
+ <li>modify declaration of <code>cur_term</code> when
+ broken-linker is used, but enable-reentrant is not, to
+ match pre-5.7.</li>
+
+ <li>correct limit-checks in <code>derwin</code>.</li>
+
+ <li>remove old check in <code>mvderwin</code> which
+ prevented moving a derived window whose origin happened
+ to coincide with its parent's origin.</li>
+
+ <li>correct limit-checks in <code>newwin</code>, to
+ ensure that windows have nonzero size.</li>
+
+ <li>modify <code>set_curterm</code> to make
+ broken-linker configuration work with changes from
+ 20090228.</li>
+
+ <li>modify <code>wgetch</code> to ensure it checks
+ <code>SIGWINCH</code> when it gets an error in
+ non-blocking mode.</li>
+
+ <li>correct limit-check in <code>wredrawln</code>,
+ accounting for <code>begy</code>/<code>begx</code>
+ values.</li>
+
+ <li>fix a null-pointer check in
+ <code>_nc_format_slks</code> in lib_slk.c, from
+ 20070704 changes.</li>
+
+ <li>correct translation of "^" in
+ <code>_nc_infotocap</code>, used to transform terminfo
+ to termcap strings.</li>
+
+ <li>modify <code>_nc_wgetch</code> to check for a -1 in
+ the fifo, e.g., after a <code>SIGWINCH</code>, and
+ discard that value, to avoid confusing
+ application.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>other libraries
+
+ <ul>
+ <li>correct transfer of multicolumn characters in multirow
+ <code>field_buffer</code>, which stopped at the end of the
+ first row due to filling of unused entries in a cchar_t
+ array with nulls.</li>
+
+ <li>correct buffer-size after internal resizing of
+ wide-character <code>set_field_buffer</code>, broken in
+ 20081018 changes.</li>
+
+ <li>correct layout of working window used to extract data
+ in wide-character configured by
+ <code>set_field_buffer</code></li>
+ </ul>
+ </li>
+ </ul>
+
+ <h2>Portability</h2>
+
+ <ul>
+ <li>configure script:
+
+ <ul>
+ <li>new options:
+
+ <dl>
+ <dt>--disable-libtool-version</dt>
+
+ <dd>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.</dd>
+
+ <dt>--disable-rpath-hack</dt>
+
+ <dd>disable a feature which adds rpath options for
+ libraries in unusual places.</dd>
+
+ <dt>--enable-interop</dt>
+
+ <dd>integrate changes for generic/interop support to
+ form-library.</dd>
+
+ <dt>--enable-pc-files</dt>
+
+ <dd>generate ".pc" files for each of the libraries, and
+ install them in <code>pkg-config</code>'s library
+ directory.</dd>
+
+ <dt>--enable-pthreads-eintr</dt>
+
+ <dd>control whether to allow <code>EINTR</code> to
+ interrupt a read operation in <code>wgetch</code>. This
+ applies only to the pthread configuration</dd>
+
+ <dt>--enable-sp-funcs</dt>
+
+ <dd>compile-in support for extended functions which
+ accept a <code>SCREEN</code> pointer, reducing the need
+ for juggling the global <code>SP</code> value with
+ <code>set_term</code> and <code>delscreen</code>.</dd>
+
+ <dt>--enable-term-driver</dt>
+
+ <dd>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.</dd>
+
+ <dt>--with-ncurses-wrap-prefix</dt>
+
+ <dd>allows setting the prefix for functions used to
+ wrap global variables to something other than
+ "<code>_nc_</code>".</dd>
+
+ <dt>--with-pkg-config=[DIR]</dt>
+
+ <dd>check for <code>pkg-config</code>, optionally
+ specifying its path.</dd>
+
+ <dt>--without-manpages</dt>
+
+ <dd>tells the configure script to suppress the install
+ of ncurses' manpages.</dd>
+
+ <dt>--without-tests</dt>
+
+ <dd>suppress building test programs.</dd>
+ </dl>
+ </li>
+
+ <li>improved options:
+
+ <ul>
+ <li>correct logic for <code>--with-database</code>,
+ which was coded as an enable-type switch.</li>
+
+ <li>omit the opaque-functions from
+ <code>lib_gen.o</code> when
+ <code>--disable-ext-funcs</code> is used.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>packaging:
+
+ <ul>
+ <li>*-config scripts:
+
+ <ul>
+ <li>modify <code>adacurses-config</code> to look for
+ ".ali" files in the adalib directory.</li>
+
+ <li>correct install for the Ada95 tree, which omitted
+ <code>libAdaCurses.a</code> used in
+ <code>adacurses-config</code>.</li>
+
+ <li>change install for <code>adacurses-config</code> to
+ provide additional flavors such as
+ <code>adacursesw-config</code>, for ncursesw.</li>
+
+ <li>modify scripts to generate
+ <code>ncurses*-config</code> and pc-files to add
+ dependency for tinfo library.</li>
+
+ <li>use <code>ncurses*-config</code> scripts if
+ available for test/configure.</li>
+
+ <li>correct name for termlib in
+ <code>ncurses*-config</code>, e.g., if it is renamed to
+ provide a single file for ncurses/ncursesw
+ libraries.</li>
+
+ <li>generate manpages for the *-config scripts, adapted
+ from <code>help2man</code>.</li>
+
+ <li>modify install-rule for manpages so that *-config
+ manpages will install when building with
+ <code>--srcdir</code>.</li>
+
+ <li>build-fixes for OpenSolaris aka Solaris 11, for
+ wide-character configuration as well as for rpath
+ feature in *-config scripts.</li>
+
+ <li>use <code>$includedir</code> symbol in
+ <code>misc/ncurses-config.in</code>, add
+ <code>--includedir</code> option.</li>
+
+ <li>improve install-rules for pc-files.</li>
+
+ <li>create the <code>pkg-config</code> library
+ directory if needed.</li>
+
+ <li>fix typo "<code>==</code>" where "<code>=</code>"
+ is needed in <code>ncurses-config.in</code> and
+ <code>gen-pkgconfig.in</code> files.</li>
+
+ <li>modify <code>gen-pkgconfig.in</code> to eliminate a
+ dependency on rpath when deciding whether to add
+ <code>$LIBS</code> to <code>--libs</code> output; that
+ should be shown for the ncurses and tinfo libraries
+ without taking rpath into account.</li>
+
+ <li>modify handling of <code>$PKG_CONFIG_LIBDIR</code>
+ to use only the first item in a possibly
+ colon-separated list.</li>
+ </ul>
+ </li>
+
+ <li>other packaging issues
+
+ <ul>
+ <li>add <code>make-tar.sh</code> scripts to Ada95 and
+ test subdirectories to help with making those
+ separately distributable.</li>
+
+ <li>add <code>Ada95/configure</code> script, to use in
+ tar-file created by
+ <code>Ada95/make-tar.sh</code>.</li>
+
+ <li>remove <code>tar-copy.sh</code> and related
+ <code>configure/Makefile</code> chunks, since the Ada95
+ binding is now installed using rules in
+ <code>Ada95/src</code>.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>cross-compiling:
+
+ <ul>
+ <li>improve configure checks for location of tic and
+ infocmp programs used for installing database and for
+ generating fallback data, e.g., for cross-compiling.</li>
+
+ <li>modify #define's for build-compiler to suppress cchar_t
+ symbol from compile of <code>make_hash</code> and
+ <code>make_keys</code>, improving cross-compilation of
+ ncursesw.</li>
+
+ <li>simplify include-dependencies of <code>make_hash</code>
+ and <code>make_keys</code>, to reduce the need for setting
+ BUILD_CPPFLAGS in cross-compiling when the build- and
+ target-machines differ.</li>
+
+ <li>correct cross-compiling configure check for
+ <code>CF_MKSTEMP</code> macro, by adding a check cache
+ variable set by <code>AC_CHECK_FUNC</code>.</li>
+ </ul>
+ </li>
+
+ <li>library dependencies:
+
+ <ul>
+ <li>revise <code>wadd_wch</code> and
+ <code>wecho_wchar</code> to eliminate dependency on
+ <code>unctrl</code>.</li>
+
+ <li>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.</li>
+ </ul>
+ </li>
+
+ <li>building the Ada95 tree:
+
+ <ul>
+ <li>changes to use gnatmake project files in the Ada95
+ tree.</li>
+
+ <li>add/use configure check to turn on project rules for
+ <code>Ada95/src</code>.</li>
+
+ <li>old gnatmake (3.15) does not produce libraries using
+ project-file; work around by adding script to generate
+ alternate makefile.</li>
+
+ <li>add configure --with-ada-sharedlib option, for the
+ test_make rule.</li>
+
+ <li>move Ada95-related logic into aclocal.m4, since
+ additional checks will be needed to distinguish old/new
+ implementations of gnat.</li>
+
+ <li>add test_make / test_clean / test_install rules in
+ Ada95/src</li>
+
+ <li>change install-path for adainclude directory to
+ /usr/share/ada (was /usr/lib/ada).</li>
+ </ul>
+ </li>
+
+ <li>other configure/build issues:
+
+ <ul>
+ <li>make <code>CCHARW_MAX</code> value configurable, noting
+ that changing this would change the size of
+ <code>cchar_t</code>, and would be ABI-incompatible.</li>
+
+ <li>improve comparison of program-names when checking for
+ linked flavors such as "reset" by ignoring the executable
+ suffix.</li>
+
+ <li>drop <code>mkdirs.sh</code>, use
+ "<code>mkdir -p</code>".</li>
+
+ <li>drop <code>misc/ncu-indent</code> and
+ <code>misc/jpf-indent</code>; they are provided by an
+ external package <a href=
+ "http://invisible-island.net/cindent/cindent.html">cindent</a>.</li>
+
+ <li>change makefiles to use <code>$ARFLAGS</code> rather
+ than <code>$AR_OPTS</code>, provide a configure check to
+ detect whether a "-" is needed before "ar" options.</li>
+
+ <li>modify <code>CF_DISABLE_LEAKS</code> configure macro so
+ that the --enable-leaks option is not the same as
+ --disable-leaks.</li>
+
+ <li>improve configure script macros
+ <code>CF_HEADER_PATH</code> and
+ <code>CF_LIBRARY_PATH</code> by adding <code>CFLAGS</code>,
+ <code>CPPFLAGS</code> and <code>LDFLAGS</code>,
+ <code>LIBS</code> values to the search-lists.</li>
+
+ <li>improve configure macros <code>CF_GCC_VERSION</code>
+ and <code>CF_GCC_WARNINGS</code> to work with gcc 4.x's c89
+ alias, which gives warning messages for cases where older
+ versions would produce an error.</li>
+
+ <li>modify <code>CF_WITH_LIBTOOL</code> configure check to
+ allow unreleased libtool version numbers (e.g. which
+ include alphabetic chars, as well as digits, after the
+ final '.').</li>
+
+ <li>improve use of symbolic links in makefiles by using
+ "<code>-f</code>" option if it is supported, to eliminate
+ temporary removal of the target</li>
+
+ <li>add a configure-time check to pick a suitable value for
+ <code>CC_SHARED_OPTS</code> for Solaris.</li>
+
+ <li>add -shared option to <code>MK_SHARED_LIB</code> when
+ -Bsharable is used, for *BSD's, without which "main" might
+ be one of the shared library's dependencies.</li>
+
+ <li>modify configure script to allow building shared
+ libraries with gcc on AIX 5 or 6.</li>
+
+ <li>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.</li>
+
+ <li>suppress configure check for static/dynamic linker
+ flags for gcc on Darwin.</li>
+
+ <li>modify <code>misc/run_tic.in</code> to create parent
+ directory, in case this is a new install of hashed
+ database.</li>
+
+ <li>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.</li>
+ </ul>
+ </li>
+
+ <li>test programs:
+
+ <ul>
+ <li>add test/demo_terminfo, for comparison with
+ demo_termcap.</li>
+
+ <li>improve test/ncurses.c 'F' test, show combining
+ characters in color.</li>
+
+ <li>fix logic for 'V' in test/ncurses.c tests f/F.</li>
+
+ <li>improve test/ncurses.c 'a test to put mouse droppings
+ in the proper window.</li>
+
+ <li>modify ncurses 'F' test to demo wborder_set with
+ colored lines.</li>
+
+ <li>modify ncurses 'f' test to demo wborder with colored
+ lines.</li>
+
+ <li>improve test/ncurses.c 'a' test, using unctrl more
+ consistently to display meta-characters.</li>
+
+ <li>correct use of <code>key_name</code> in test/ncurses.c
+ 'A' test, which only displays wide-characters, not
+ key-codes since 20070612.</li>
+
+ <li>add test/clip_printw.c to illustrate how to use printw
+ without wrapping.</li>
+
+ <li>modify test-programs, e.g,. test/view.c, to address
+ subtle differences between Tru64/Solaris and HPUX/AIX
+ getcchar return values.</li>
+
+ <li>add some test programs (and make these use the same
+ special keys by sharing <code>linedata.h</code> functions):
+ test/test_addstr.c test/test_addwstr.c test/test_addchstr.c
+ test/test_add_wchstr.c</li>
+
+ <li>add test/xterm-256color.dat</li>
+
+ <li>modify test programs to allow them to be built with
+ NetBSD curses.</li>
+
+ <li>fixes for test programs to build/work on HPUX and AIX,
+ etc.</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h1>Features of Ncurses</h1>The ncurses package is fully
+ compatible with SVr4 (System V Release 4) curses:
+
+ <ul>
+ <li>All 257 of the SVr4 calls have been implemented (and are
+ documented).</li>
+
+ <li>Full support for SVr4 curses features including keyboard
+ mapping, color, forms-drawing with ACS characters, and
+ automatic recognition of keypad and function keys.</li>
+
+ <li>An emulation of the SVr4 panels library, supporting a stack
+ of windows with backing store, is included.</li>
+
+ <li>An emulation of the SVr4 menus library, supporting a
+ uniform but flexible interface for menu programming, is
+ included.</li>
+
+ <li>An emulation of the SVr4 form library, supporting data
+ collection through on-screen forms, is included.</li>
+
+ <li>Binary terminfo entries generated by the ncurses tic(1)
+ implementation are bit-for-bit-compatible with the entry format
+ SVr4 curses uses.</li>
+
+ <li>The utilities have options to allow you to filter terminfo
+ entries for use with less capable
+ <strong>curses</strong>/<strong>terminfo</strong> versions such
+ as the HP/UX and AIX ports.</li>
+ </ul>The ncurses package also has many useful extensions over
+ SVr4:
+
+ <ul>
+ <li>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, 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).</li>
+
+ <li>Unlike SVr3 curses, ncurses can write to the
+ rightmost-bottommost corner of the screen if your terminal has
+ an insert-character capability.</li>
+
+ <li>Ada95 and C++ bindings.</li>
+
+ <li>Support for mouse event reporting with X Window xterm and
+ FreeBSD and OS/2 console windows.</li>
+
+ <li>Extended mouse support via Alessandro Rubini's gpm
+ package.</li>
+
+ <li>The function <code>wresize</code> allows you to resize
+ windows, preserving their data.</li>
+
+ <li>The function <code>use_default_colors</code> allows you to
+ use the terminal's default colors for the default color pair,
+ achieving the effect of transparent colors.</li>
+
+ <li>The functions <code>keyok</code> and
+ <code>define_key</code> 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.</li>
+
+ <li>Support for 256-color terminals, such as modern xterm, when
+ configured using the <code>--enable-ext-colors</code>
+ option.</li>
+
+ <li>Support for 16-color terminals, such as <em>aixterm</em>
+ and <em>modern xterm</em>.</li>
+
+ <li>Better cursor-movement optimization. The package now
+ features a cursor-local-movement computation more efficient
+ than either BSD's or System V's.</li>
+
+ <li>Super hardware scrolling support. The screen-update code
+ 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 <code>quickch</code>
+ routine.</li>
+
+ <li>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
+ beginning and after the end would step on a non-space
+ character. It will automatically shift highlight boundaries
+ when doing so would make it possible to draw the highlight
+ without changing the visual appearance of the screen.</li>
+
+ <li>It is possible to generate the library with a list of
+ pre-loaded fallback entries linked to it so that it can serve
+ those terminal types even when no terminfo tree or termcap file
+ is accessible (this may be useful for support of
+ screen-oriented programs that must run in single-user
+ mode).</li>
+
+ <li>The tic(1)/captoinfo utility provided with ncurses has the
+ ability to translate many termcaps from the XENIX, IBM and
+ AT&T extension sets.</li>
+
+ <li>A BSD-like tset(1) utility is provided.</li>
+
+ <li>The ncurses library and utilities will automatically read
+ terminfo entries from $HOME/.terminfo if it exists, and compile
+ to that directory if it exists and the user has no write access
+ to the system directory. This feature makes it easier for users
+ to have personal terminfo entries without giving up access to
+ the system terminfo directory.</li>
+
+ <li>You may specify a path of directories to search for
+ compiled descriptions with the environment variable
+ TERMINFO_DIRS (this generalizes the feature provided by
+ TERMINFO under stock System V.)</li>
+
+ <li>In terminfo source files, use capabilities may refer not
+ just to other entries in the same source file (as in System V)
+ but also to compiled entries in either the system terminfo
+ directory or the user's $HOME/.terminfo directory.</li>
+
+ <li>A script (<strong>capconvert</strong>) is provided to help
+ BSD users transition from termcap to terminfo. It gathers the
+ information in a TERMCAP environment variable and/or a
+ ~/.termcap local entries file and converts it to an equivalent
+ local terminfo tree under $HOME/.terminfo.</li>
+
+ <li>Automatic fallback to the /etc/termcap file can be compiled
+ in when it is not possible to build a terminfo tree. This
+ feature is neither fast nor cheap, you don't want to use it
+ unless you have to, but it's there.</li>
+
+ <li>The table-of-entries utility <strong>toe</strong> makes it
+ easy for users to see exactly what terminal types are available
+ on the system.</li>
+
+ <li>The library meets the XSI requirement that every macro
+ entry point have a corresponding function which may be linked
+ (and will be prototype-checked) if the macro definition is
+ disabled with <code>#undef</code>.</li>
+
+ <li>An HTML "Introduction to Programming with NCURSES" document
+ provides a narrative introduction to the curses programming
+ interface.</li>
+ </ul>
+
+ <h1>State of the Package</h1>Numerous bugs present in earlier
+ versions have been fixed; the library is far more reliable than
+ it used to be. Bounds checking in many `dangerous' entry points
+ has been improved. The code is now type-safe according to gcc
+ -Wall. The library has been checked for malloc leaks and arena
+ corruption by the Purify memory-allocation tester.
+
+ <p>The ncurses code has been tested with a wide variety of
+ applications including (versions starting with those noted):</p>
+
+ <dl>
+ <dt>cdk</dt>
+
+ <dd>Curses Development Kit<br>
+ <a href=
+ "http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</a><br>
+
+ <a href=
+ "http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a></dd>
+
+ <dt>ded</dt>
+
+ <dd>directory-editor<br>
+ <a href=
+ "http://invisible-island.net/ded/">http://invisible-island.net/ded/</a></dd>
+
+ <dt>dialog</dt>
+
+ <dd>the underlying application used in Slackware's setup, and
+ the basis for similar applications on GNU/Linux.<br>
+ <a href=
+ "http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</a></dd>
+
+ <dt>lynx</dt>
+
+ <dd>the character-screen WWW browser<br>
+ <a href=
+ "http://lynx.isc.org/release/">http://lynx.isc.org/release/</a></dd>
+
+ <dt>Midnight Commander</dt>
+
+ <dd>file manager<br>
+ <a href=
+ "http://www.midnight-commander.org/">http://www.midnight-commander.org/</a></dd>
+
+ <dt>mutt</dt>
+
+ <dd>mail utility<br>
+ <a href="http://www.mutt.org/">http://www.mutt.org/</a></dd>
+
+ <dt>ncftp</dt>
+
+ <dd>file-transfer utility<br>
+ <a href="http://www.ncftp.com/">http://www.ncftp.com/</a></dd>
+
+ <dt>nvi</dt>
+
+ <dd>New vi versions 1.50 are able to use ncurses versions 1.9.7
+ and later.<br>
+ <a href=
+ "https://sites.google.com/a/bostic.com/keithbostic/nvi">https://sites.google.com/a/bostic.com/keithbostic/nvi</a><br>
+ </dd>
+
+ <dt>pinfo</dt>
+
+ <dd>Lynx-like info browser. <a href=
+ "https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</a></dd>
+
+ <dt>tin</dt>
+
+ <dd>newsreader, supporting color, MIME <a href=
+ "http://www.tin.org/">http://www.tin.org/</a></dd>
+ </dl>as well as some that use ncurses for the terminfo support
+ alone:
+
+ <dl>
+ <dt>minicom</dt>
+
+ <dd>terminal emulator<br>
+ <a href=
+ "http://alioth.debian.org/projects/minicom/">http://alioth.debian.org/projects/minicom/</a></dd>
+
+ <dt>vile</dt>
+
+ <dd>vi-like-emacs<br>
+ <a href=
+ "http://invisible-island.net/vile/">http://invisible-island.net/vile/</a></dd>
+ </dl>
+
+ <p>The ncurses distribution includes a selection of test programs
+ (including a few games).</p>
+
+ <h2>Who's Who and What's What</h2>Zeyd Ben-Halim started it from
+ a previous package pcurses, written by Pavel Curtis. Eric S.
+ Raymond continued development. Jürgen Pfeifer wrote most of
+ the form and menu libraries. Ongoing work is being done by
+ <a href="mailto:dickey@invisible-island.net">Thomas Dickey</a>.
+ Thomas Dickey acts as the maintainer for the Free Software
+ Foundation, which holds the copyright on ncurses. Contact the
+ current maintainers at <a href=
+ "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>.
+
+ <p>To join the ncurses mailing list, please write email to
+ <code>bug-ncurses-request@gnu.org</code> containing the line:</p>
+ <pre>
subscribe <name>@<host.domain>
-</PRE>
-
-This list is open to anyone interested in helping with the development and
-testing of this package.<P>
-
-Beta versions of ncurses and patches to the current release are made available at
-<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> .
-
-<H2>Future Plans</H2>
-<UL>
-<LI>Extended-level XPG4 conformance, with internationalization support.
-<LI>Ports to more systems, including DOS and Windows.
-</UL>
-We need people to help with these projects. If you are interested in working
-on them, please join the ncurses list.
-
-<H2>Other Related Resources</H2>
-
-The distribution provides a newer version of the terminfo-format
-terminal description file once maintained by
-<A HREF="http://www.catb.org/~esr/terminfo/">Eric Raymond</A> .
-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.<P>
-
-You can find lots of information on terminal-related topics
-not covered in the terminfo file at
-<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
-archive</A> .
-</BODY>
-</HTML>
+</pre>
+
+ <p>This list is open to anyone interested in helping with the
+ development and testing of this package.</p>
+
+ <p>Beta versions of ncurses and patches to the current release
+ are made available at <a href=
+ "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p>
+
+ <h2>Future Plans</h2>
+
+ <ul>
+ <li>Extended-level XPG4 conformance, with internationalization
+ support.</li>
+
+ <li>Ports to more systems, including DOS and Windows.</li>
+ </ul>We need people to help with these projects. If you are
+ interested in working on them, please join the ncurses list.
+
+ <h2>Other Related Resources</h2>The distribution provides a newer
+ version of the terminfo-format terminal description file once
+ maintained by <a href="http://www.catb.org/~esr/terminfo/">Eric
+ Raymond</a> . 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.
+
+ <p>You can find lots of information on terminal-related topics
+ not covered in the terminfo file at <a href=
+ "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
+ Richard Shuford's archive</a> .</p>
+</body>
+</html>
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.796 2011/02/20 20:46:53 tom Exp $
+# $Id: dist.mk,v 1.800 2011/02/25 22:11:00 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 5
-NCURSES_MINOR = 7
-NCURSES_PATCH = 20110220
+NCURSES_MINOR = 8
+NCURSES_PATCH = 20110226
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_167_13" TARGET="main">Copy_Arg</A>
<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_774_16" TARGET="main">Count - terminal_interface-curses-forms.adb:774</A>
<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_912_16" TARGET="main">Count - terminal_interface-curses-menus.adb:912</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_569_13" TARGET="main">Create - terminal_interface-curses.ads:569</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_293_13" TARGET="main">Create - terminal_interface-curses-forms.ads:293</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_623_13" TARGET="main">Create - terminal_interface-curses-forms.ads:623</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:48</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_293_13" TARGET="main">Create - terminal_interface-curses-forms.ads:293</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_623_13" TARGET="main">Create - terminal_interface-curses-forms.ads:623</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_191_13" TARGET="main">Create - terminal_interface-curses-menus.ads:191</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_638_13" TARGET="main">Create - terminal_interface-curses-menus.ads:638</A>
<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_67_13" TARGET="main">Create - terminal_interface-curses-panels.ads:67</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_569_13" TARGET="main">Create - terminal_interface-curses.ads:569</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_729_13" TARGET="main">Current - terminal_interface-curses-forms.ads:729</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_294_13" TARGET="main">Current - terminal_interface-curses-menus.ads:294</A>
<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1040_16" TARGET="main">Current_Fld</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2251_16" TARGET="main">Def_Shell_Mode</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2032_16" TARGET="main">Delayoutput</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1633_14" TARGET="main">Delay_Output</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_588_14" TARGET="main">Delete - terminal_interface-curses.ads:588</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_315_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:315</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_634_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:634</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_203_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:203</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_645_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:645</A>
<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_139_14" TARGET="main">Delete - terminal_interface-curses-panels.ads:139</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_588_14" TARGET="main">Delete - terminal_interface-curses.ads:588</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1334_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1334</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1339_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1339</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1212_14" TARGET="main">Delete_Line</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_711_13" TARGET="main">Driver - terminal_interface-curses-forms.ads:711</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_660_13" TARGET="main">Driver - terminal_interface-curses-menus.ads:660</A>
<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver - terminal_interface-curses-menus.adb:973</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_614_13" TARGET="main">Duplicate - terminal_interface-curses.ads:614</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_321_13" TARGET="main">Duplicate - terminal_interface-curses-forms.ads:321</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_614_13" TARGET="main">Duplicate - terminal_interface-curses.ads:614</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_321_16" TARGET="main">Dupwin</A>
<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_151_16" TARGET="main">Dup_Field</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_493_14" TARGET="main">Dynamic_Info</A>
<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_499_16" TARGET="main">Pos_Menu_Cursor</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1476_16" TARGET="main">Prefresh</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_201_13" TARGET="main">Prev_Router</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_108_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:108</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_109_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:109</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_115_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:115</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_116_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:116</A>
<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:54</A>
<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:61</A>
<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:50</A>
<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:55</A>
<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:49</A>
<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_108_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:108</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_109_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:109</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_115_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:115</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_116_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:116</A>
<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_143_16" TARGET="main">putp</A>
<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_53_16" TARGET="main">putwin</A>
<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#ref_48_14" TARGET="main">Put_Buf</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2516_16" TARGET="main">scr_init</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2503_16" TARGET="main">scr_restore</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2529_16" TARGET="main">scr_set</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1108_14" TARGET="main">Set_Background - terminal_interface-curses.ads:1108</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_446_14" TARGET="main">Set_Background - terminal_interface-curses-forms.ads:446</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_443_14" TARGET="main">Set_Background - terminal_interface-curses-menus.ads:443</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1108_14" TARGET="main">Set_Background - terminal_interface-curses.ads:1108</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_354_14" TARGET="main">Set_Buffer</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_886_14" TARGET="main">Set_Cbreak_Mode</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_817_14" TARGET="main">Set_Character_Attributes</A>
<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16" TARGET="main">Set_Field_Userptr</A>
<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_231_16" TARGET="main">Set_Fld_Buffer</A>
<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_278_16" TARGET="main">Set_Fld_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_151_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:151</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_52_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:52</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_52_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:52</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:97</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_52_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:52</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_55_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:55</A>
<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:53</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_151_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:151</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_928_14" TARGET="main">Set_Flush_On_Interrupt_Mode</A>
<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_426_14" TARGET="main">Set_Foreground - terminal_interface-curses-forms.ads:426</A>
<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_423_14" TARGET="main">Set_Foreground - terminal_interface-curses-menus.ads:423</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1145_14" TARGET="main">Touch - terminal_interface-curses.ads:1145</A>
<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1543_14" TARGET="main">Touch_Soft_Label_Keys</A>
<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_140_16" TARGET="main">tputs</A>
+<LI><A HREF="../terminal_interface-curses-trace__adb.htm#ref_54_17" TARGET="main">traceC</A>
+<LI><A HREF="../terminal_interface-curses-trace__adb.htm#ref_65_17" TARGET="main">tracef</A>
<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_102_14" TARGET="main">Trace_On</A>
<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_106_14" TARGET="main">Trace_Put</A>
<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2403_16" TARGET="main">Transform</A>
<HR>
You should start your browsing with one of these files:
<UL>
-<LI><A HREF="terminal_interface__ads.htm">terminal_interface.ads</A>
-<LI><A HREF="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</A>
<LI><A HREF="terminal_interface-curses-aux__ads.htm">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="terminal_interface-curses-forms__ads.htm">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types__ads.htm">terminal_interface-curses-forms-field_types.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm">terminal_interface-curses-forms-field_types-alpha.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm">terminal_interface-curses-forms-field_types-numeric.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm">terminal_interface-curses-forms-field_types-user.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm">terminal_interface-curses-forms-field_types-user-choice.ads</A>
+<LI><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm">terminal_interface-curses-forms-field_types-user.ads</A>
+<LI><A HREF="terminal_interface-curses-forms-field_types__ads.htm">terminal_interface-curses-forms-field_types.ads</A>
<LI><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm">terminal_interface-curses-forms-field_user_data.ads</A>
<LI><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus__ads.htm">terminal_interface-curses-menus.ads</A>
+<LI><A HREF="terminal_interface-curses-forms__ads.htm">terminal_interface-curses-forms.ads</A>
<LI><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm">terminal_interface-curses-menus-item_user_data.ads</A>
<LI><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm">terminal_interface-curses-menus-menu_user_data.ads</A>
+<LI><A HREF="terminal_interface-curses-menus__ads.htm">terminal_interface-curses-menus.ads</A>
<LI><A HREF="terminal_interface-curses-mouse__ads.htm">terminal_interface-curses-mouse.ads</A>
-<LI><A HREF="terminal_interface-curses-panels__ads.htm">terminal_interface-curses-panels.ads</A>
<LI><A HREF="terminal_interface-curses-panels-user_data__ads.htm">terminal_interface-curses-panels-user_data.ads</A>
+<LI><A HREF="terminal_interface-curses-panels__ads.htm">terminal_interface-curses-panels.ads</A>
<LI><A HREF="terminal_interface-curses-putwin__ads.htm">terminal_interface-curses-putwin.ads</A>
<LI><A HREF="terminal_interface-curses-termcap__ads.htm">terminal_interface-curses-termcap.ads</A>
<LI><A HREF="terminal_interface-curses-terminfo__ads.htm">terminal_interface-curses-terminfo.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</A>
<LI><A HREF="terminal_interface-curses-text_io-aux__ads.htm">terminal_interface-curses-text_io-aux.ads</A>
<LI><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm">terminal_interface-curses-text_io-complex_io.ads</A>
<LI><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm">terminal_interface-curses-text_io-decimal_io.ads</A>
<LI><A HREF="terminal_interface-curses-text_io-float_io__ads.htm">terminal_interface-curses-text_io-float_io.ads</A>
<LI><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm">terminal_interface-curses-text_io-integer_io.ads</A>
<LI><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm">terminal_interface-curses-text_io-modular_io.ads</A>
+<LI><A HREF="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</A>
<LI><A HREF="terminal_interface-curses-trace__ads.htm">terminal_interface-curses-trace.ads</A>
+<LI><A HREF="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</A>
+<LI><A HREF="terminal_interface__ads.htm">terminal_interface.ads</A>
</UL>
</BODY></HTML>
<TABLE ALIGN=CENTER BORDER>
<TR ALIGN=LEFT>
<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>
+<TR><TD>_nc_freeall()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Curses_Free_All</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
+<TR><TD>_tracef()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_2">Trace_Put</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Assume_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
<TR><TD>current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_58">Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
<TR><TD>current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_14">Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
+<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
<TR><TD>curscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Current_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
<TR><TD>curses_version()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_157">Curses_Version</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
-<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
<TR><TD>data_ahead()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_54">Data_Ahead</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
<TR><TD>data_behind()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_55">Data_Behind</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
-<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
<TR><TD>del_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_15">Delete</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
<TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
<TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
<TR><TD>field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_25">Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
<TR><TD>field_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_36">Get_Field_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
<TR><TD>field_just()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_7">Get_Justification</A></TD><TD><A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></TD></TR>
-<TR><TD>field_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_14">Switch_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
<TR><TD>field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_15">Get_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
<TR><TD>field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_16">Get_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
+<TR><TD>field_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_14">Switch_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
<TR><TD>field_pad()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_24">Pad_Character</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
<TR><TD>field_status()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_11">Changed</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
<TR><TD>field_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_37">Get_Field_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
<TR><TD>form_driver()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_56">Driver</A></TD><TD><A HREF="../man/form_driver.3x.html">form_driver.3x</A></TD></TR>
<TR><TD>form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_42">Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
<TR><TD>form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_38">Get_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>form_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_49">Switch_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
<TR><TD>form_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_50">Get_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
<TR><TD>form_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_51">Get_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
+<TR><TD>form_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_49">Switch_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
<TR><TD>form_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_60">Page</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
<TR><TD>form_sub()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_30">Get_Sub_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
<TR><TD>form_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_39">Get_Form_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
<TR><TD>item_count()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_58">Item_Count</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
<TR><TD>item_description();</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_12">Description</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
<TR><TD>item_index()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_17">Get_Index</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
<TR><TD>item_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_52">Get_Item_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
<TR><TD>item_name()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_11">Name</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
-<TR><TD>item_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_8">Switch_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
<TR><TD>item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_10">Get_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
<TR><TD>item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_9">Get_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
+<TR><TD>item_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_8">Switch_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
<TR><TD>item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_53">Get_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
<TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
<TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
<TR><TD>menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_54">Get_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
<TR><TD>menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_57">Items</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
<TR><TD>menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_30">Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
-<TR><TD>menu_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_20">Switch_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
<TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_21">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
<TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_22">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
+<TR><TD>menu_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_20">Switch_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
<TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
<TR><TD>menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_45">Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
<TR><TD>menu_requestname.3x</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_62"></A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
<TR><TD>move_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_44">Move</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
<TR><TD>move_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_11">Move</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
<TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+<TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
<TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
<TR><TD>mvwgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
-<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+<TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
-<TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_154">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>_nc_freeall()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Curses_Free_All</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
<TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
<TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_2">New_Field</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
<TR><TD>new_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_45">Create</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
<TR><TD>new_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
<TR><TD>new_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_2">New_Item</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
<TR><TD>new_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_59">Create</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.3x</A></TD></TR>
-<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
<TR><TD>new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_63">Is_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></TD></TR>
<TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
<TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_2">New_Panel</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
<TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
<TR><TD>scale_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_27">Scale</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
<TR><TD>scr_dump()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_160">Screen_Dump_To_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
<TR><TD>scr_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_162">Screen_Init_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
-<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
<TR><TD>scr_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_161">Screen_Restore_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
<TR><TD>scr_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_163">Screen_Set_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
<TR><TD>set_current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_57">Set_Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
<TR><TD>set_current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_13">Set_Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
<TR><TD>set_field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_20">Set_Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
<TR><TD>set_panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
<TR><TD>set_top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_15">Set_Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
<TR><TD>show_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_5">Show</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_120">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
<TR><TD>top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_16">Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>_tracef()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_2">Trace_Put</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
<TR><TD>trace()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_1">Trace_on</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_127">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
<TR><TD>update_panels()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_6">Update_Panels</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
<TR><TD>use_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_155">Use_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
<TR><TD>use_extended_names()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_158">Use_Extended_Names</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
-<TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
<TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+<TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
<TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
-<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
<TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
<TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
<TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>with</b> System;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
<b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A>;
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_50_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>);
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_55_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Short</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.long;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Size_T</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.size_t;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_UInt</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_ULong</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_long;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_Char_Ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_55_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Short</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Size_T</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_UInt</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_ULong</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_Char_Ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
<b>type</b> <FONT COLOR=red><A NAME="ref_62_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> System.Address;
<b>type</b> <FONT COLOR=red><A NAME="ref_63_12">C_Chtype</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
<b>type</b> <FONT COLOR=red><A NAME="ref_64_12">C_AttrType</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A></FONT> <b>is</b>
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_46_58">Enumeration</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
<b>pragma</b> Inline (Set_Field_Type);
<b>private</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr_array;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr_array;
<b>type</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
<b>record</b>
<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A></FONT> <b>is</b>
<b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
<FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_50_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.double;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_50_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.double;
<FONT COLOR=red><A NAME="ref_52_7">C_Numeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_7">C_Numeric_Field_Type</A>, "TYPE_NUMERIC");
<FONT COLOR=green><EM>-- @Revision: 1.9 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A></FONT> <b>is</b>
<b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
<FONT COLOR=red><A NAME="ref_51_7">C_Regexp_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_7">C_Regexp_Field_Type</A>, "TYPE_REGEXP");
<FONT COLOR=green><EM>-- @Date: 2008/07/26 18:49:20 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_45_63">Choice</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
(<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>);
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>type</b> <FONT COLOR=red><A NAME="ref_50_9">User_Defined_Field_Type_With_Choice</A></FONT> <b>is</b> <b>abstract</b> <b>new</b>
<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_45_58">User</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>);
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>type</b> <FONT COLOR=red><A NAME="ref_48_9">User_Defined_Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
<FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT>
<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_43_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_50_46">Field_Types</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>);
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>type</b> <FONT COLOR=red><A NAME="ref_119_9">Low_Level_Field_Type</A></FONT> <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="ref_121_10">Status</A></FONT> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short;
- <FONT COLOR=red><A NAME="ref_122_10">Ref_Count</A></FONT> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.long;
+ <FONT COLOR=red><A NAME="ref_121_10">Status</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+ <FONT COLOR=red><A NAME="ref_122_10">Ref_Count</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
<FONT COLOR=red><A NAME="ref_123_10">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_123_16">Right</A></FONT> : System.Address;
<FONT COLOR=red><A NAME="ref_124_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>;
<FONT COLOR=red><A NAME="ref_125_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
<FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>with</b> Ada.Unchecked_Deallocation;
<b>with</b> Ada.Unchecked_Conversion;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>type</b> C_Field_Array <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
<b>package</b> F_Array <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>);
+ <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses-forms__ads.htm#ref_356_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First;
<FONT COLOR=red><A NAME="ref_228_7" HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Str</A></FONT> : String)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_230_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_230_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
<b>function</b> <FONT COLOR=red><A NAME="ref_231_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_231_32" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
<FONT COLOR=red><A NAME="ref_232_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<FONT COLOR=red><A NAME="ref_233_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">S</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_230_12">Char_Ptr</A>)
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
<FONT COLOR=red><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>)
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_43_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
<FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>with</b> Ada.Unchecked_Deallocation;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
<b>with</b> Ada.Unchecked_Conversion;
<b>type</b> C_Item_Array <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
<b>package</b> I_Array <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>);
+ <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>);
<b>use</b> <b>type</b> System.Bit_Order;
- <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
<b>function</b> MOS_2_CInt <b>is</b> <b>new</b>
Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>,
<b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-menus__ads.htm#ref_191_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_94_21" HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Name</A></FONT> : String;
<FONT COLOR=red><A NAME="ref_95_21" HREF="terminal_interface-curses-menus__ads.htm#ref_192_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_97_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_97_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
<b>function</b> <FONT COLOR=red><A NAME="ref_98_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="ref_98_25" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Name</A></FONT>, <FONT COLOR=red><A NAME="ref_98_31" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_97_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
<b>pragma</b> Import (C, Newitem, "new_item");
<b>begin</b>
<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_203_22">Itm</A>);
<b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b>
- <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
+ <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
<b>end</b> <b>if</b>;
<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_203_22">Itm</A>);
<b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b>
- <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
+ <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
<b>end</b> <b>if</b>;
<A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_203_22">Itm</A>);
<b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
<b>procedure</b> <FONT COLOR=red><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_403_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_510_24" HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
<FONT COLOR=red><A NAME="ref_511_24" HREF="terminal_interface-curses-menus__ads.htm#ref_404_24">Mark</A></FONT> : String)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_513_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_513_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
<b>function</b> <FONT COLOR=red><A NAME="ref_514_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_514_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
<FONT COLOR=red><A NAME="ref_515_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_513_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>pragma</b> Import (C, Set_Mark, "set_menu_mark");
<b>function</b> <FONT COLOR=red><A NAME="ref_732_13" HREF="terminal_interface-curses-menus__ads.htm#ref_520_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
<FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses-menus__ads.htm#ref_521_26">Text</A></FONT> : String) <b>return</b> Boolean
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="ref_735_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_735_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
<b>function</b> <FONT COLOR=red><A NAME="ref_736_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_736_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
<FONT COLOR=red><A NAME="ref_737_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_735_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>pragma</b> Import (C, Set_Pattern, "set_menu_pattern");
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_46_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A></FONT> <b>is</b>
<b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A>);
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_long;
+ <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
<b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A> <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="ref_170_10">Id</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'First) ..
- Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last);
- <FONT COLOR=red><A NAME="ref_172_10">X</A></FONT>, <FONT COLOR=red><A NAME="ref_172_13">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_172_16">Z</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int'First) ..
- Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int'Last);
+ <FONT COLOR=red><A NAME="ref_170_10">Id</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
+ Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+ <FONT COLOR=red><A NAME="ref_172_10">X</A></FONT>, <FONT COLOR=red><A NAME="ref_172_13">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_172_16">Z</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
+ Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'Last);
<FONT COLOR=red><A NAME="ref_174_10">Bstate</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
<b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>);
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_47_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_51_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
<FONT COLOR=red><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>
<b>is</b>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<b>with</b> Ada.Streams.Stream_IO.C_Streams;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C_Streams;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C_Streams;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams;
<b>package</b> <FONT COLOR=red><A NAME="ref_48_12">ACS</A></FONT> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
<b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_47_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A></FONT> <b>is</b>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
<b>with</b> Ada.Unchecked_Conversion;
<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A></FONT> <b>is</b>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_48_40">Terminfo</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>);
<b>function</b> <FONT COLOR=red><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_68_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_25">Name</A></FONT> : String) <b>return</b> Integer;
<FONT COLOR=green><EM>-- AKA: tigetnum()</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="ref_71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="ref_71_38">c</A></FONT> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int)
- <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="ref_71_38">c</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int)
+ <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
<b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>);
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- @Revision: 1.6 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> Ada.Unchecked_Conversion;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></FONT> <b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_44_24" HREF="terminal_interface-curses-trace__ads.htm#ref_102_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b>
- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-trace__ads.htm#ref_102_24">x</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_47_9">C_TraceType</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_59_12">C_UInt</A>;
+
+ <b>function</b> TraceAda_To_TraceC <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (Source => <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>,
+ Target => <A HREF="terminal_interface-curses-trace__adb.htm#ref_47_9">C_TraceType</A>);
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_53_24" HREF="terminal_interface-curses-trace__ads.htm#ref_102_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_17">traceC</A></FONT> (<FONT COLOR=red><A NAME="ref_54_25" HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">y</A></FONT> : <A HREF="terminal_interface-curses-trace__adb.htm#ref_47_9">C_TraceType</A>);
+ <b>pragma</b> Import (C, traceC, "trace");
<b>begin</b>
- <b>null</b>;
+ <A HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">traceC</A> (TraceAda_To_TraceC (<A HREF="terminal_interface-curses-trace__ads.htm#ref_102_24">x</A>));
<b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A>;
- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_50_25" HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A></FONT> : String) <b>is</b>
- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A>);
+ <FONT COLOR=green><EM>-- 75. (12) A C function that takes a variable number of arguments can</EM></FONT>
+ <FONT COLOR=green><EM>-- correspond to several Ada subprograms, taking various specific</EM></FONT>
+ <FONT COLOR=green><EM>-- numbers and types of parameters.</EM></FONT>
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_64_14" HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_64_25" HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A></FONT> : String) <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_65_17">tracef</A></FONT> (<FONT COLOR=red><A NAME="ref_65_25" HREF="terminal_interface-curses-trace__adb.htm#ref_65_17">format</A></FONT> : char_array; <FONT COLOR=red><A NAME="ref_65_46" HREF="terminal_interface-curses-trace__adb.htm#ref_65_17">s</A></FONT> : char_array);
+ <b>pragma</b> Import (C, tracef, "_tracef");
+ <FONT COLOR=red><A NAME="ref_67_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_68_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_69_7">formatstr</A></FONT> : <b>constant</b> String := "%s" & ASCII.NUL;
+ <FONT COLOR=red><A NAME="ref_70_7">formattxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-trace__adb.htm#ref_69_7">formatstr</A>'Length);
<b>begin</b>
- <b>null</b>;
+ To_C (<A HREF="terminal_interface-curses-trace__adb.htm#ref_69_7">formatstr</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_70_7">formattxt</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_68_7">Length</A>);
+ To_C (<A HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_67_7">Txt</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_68_7">Length</A>);
+ <A HREF="terminal_interface-curses-trace__adb.htm#ref_65_17">tracef</A> (<A HREF="terminal_interface-curses-trace__adb.htm#ref_70_7">formattxt</A>, <A HREF="terminal_interface-curses-trace__adb.htm#ref_67_7">Txt</A>);
<b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A>;
<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_42_40">Trace</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_45_40">Trace</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>);
<b>pragma</b> Warnings (Off);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> <FONT COLOR=red><A NAME="ref_102_14" HREF="terminal_interface-curses-trace__adb.htm#ref_44_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_102_24" HREF="terminal_interface-curses-trace__adb.htm#ref_44_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_102_14" HREF="terminal_interface-curses-trace__adb.htm#ref_53_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_102_24" HREF="terminal_interface-curses-trace__adb.htm#ref_53_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
<FONT COLOR=green><EM>-- The debugging library has trace.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-trace__adb.htm#ref_50_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-trace__adb.htm#ref_50_25">str</A></FONT> : String);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-trace__adb.htm#ref_64_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-trace__adb.htm#ref_64_25">str</A></FONT> : String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></FONT>
<FONT COLOR=red><A NAME="ref_109_4">Current_Trace_Setting</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>;
<b>with</b> System;
<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
<b>with</b> Ada.Strings.Fixed;
<b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'First;
+ <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
<b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1689_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1414_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
<b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
<b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'First;
+ <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
<b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1779_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1463_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
<b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>with</b> System.Storage_Elements;
-<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT>
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT>
<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_49_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>);
<b>pragma</b> Linker_Options ("-lncurses");
<FONT COLOR=red><A NAME="ref_53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Major version of the library</EM></FONT>
- <FONT COLOR=red><A NAME="ref_54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 7; <FONT COLOR=green><EM>-- Minor version of the library</EM></FONT>
- <FONT COLOR=red><A NAME="ref_55_4">NC_Version</A></FONT> : <b>constant</b> String := "5.7"; <FONT COLOR=green><EM>-- Version of library</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 8; <FONT COLOR=green><EM>-- Minor version of the library</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_55_4">NC_Version</A></FONT> : <b>constant</b> String := "5.8"; <FONT COLOR=green><EM>-- Version of library</EM></FONT>
<b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Window</A></FONT> <b>is</b> <b>private</b>;
<FONT COLOR=red><A NAME="ref_58_4">Null_Window</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="ref_278_9">Color_Number</A></FONT> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last);
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Size;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_278_9">Color_Number</A></FONT> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
<FONT COLOR=green><EM>-- (n)curses uses a short for the color index</EM></FONT>
<FONT COLOR=green><EM>-- The model is, that a Color_Number is an index into an array of</EM></FONT>
<FONT COLOR=green><EM>-- (potentially) definable colors. Some of those indices are</EM></FONT>
<FONT COLOR=red><A NAME="ref_292_4">Cyan</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
<FONT COLOR=red><A NAME="ref_293_4">White</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 7;
- <b>type</b> <FONT COLOR=red><A NAME="ref_295_9">RGB_Value</A></FONT> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last);
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Size;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_295_9">RGB_Value</A></FONT> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
<FONT COLOR=green><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></FONT>
<b>type</b> <FONT COLOR=red><A NAME="ref_299_9">Color_Pair</A></FONT> <b>is</b> <b>range</b> 0 .. 255;
<FONT COLOR=red><A NAME="ref_1923_4">Sizeof_bool</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- bool</EM></FONT>
<FONT COLOR=red><A NAME="ref_1924_4">Offset_XY</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- int</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="ref_1926_9">Curses_Bool</A></FONT> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'Size;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_1926_9">Curses_Bool</A></FONT> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'Size;
<FONT COLOR=red><A NAME="ref_1927_4">Curses_Bool_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := 0;
<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
- $Id: announce.html,v 1.53 2010/12/04 18:47:13 tom Exp $
+ $Id: announce.html,v 1.54 2011/02/25 23:24:46 tom Exp $
****************************************************************************
- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************
-->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses 5.7</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses 5.7</H1>
-
-The ncurses (new curses) library is a free software emulation of
-curses in System V Release 4.0, and more. It uses terminfo format,
-supports pads and color
-and multiple highlights and forms characters and function-key mapping,
-and has all the other SYSV-curses enhancements over BSD curses.<P>
-
-In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and encouraged the keepers of
-Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
-ncurses.<P>
-
-The ncurses code was developed under GNU/Linux.
-It has been in use for some time with OpenBSD as the system curses library,
-and on FreeBSD and NetBSD as an external package.
-It should port easily to any ANSI/POSIX-conforming UNIX.
-It has even been ported to OS/2 Warp!<P>
-
-The distribution includes the library and support utilities, including a
-terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1),
-and a termcap conversion tool captoinfo(1). Full manual pages are provided for
-the library and tools.<P>
-
-The ncurses distribution is available via anonymous FTP at
-the GNU distribution site
-<A HREF="ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A> .
-<br>It is also available at
-<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> .
-
-<H1>Release Notes</H1>
-
-This release is designed to be upward compatible from ncurses 5.0 through 5.6;
-very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.6 release.
-<p>
-Interface changes:
-<ul>
- <li>generate linkable stubs for some macros:
- <br>
- getattrs
-
-</ul>
-New features and improvements:
-<ul>
- <li>library
- <ul>
- <li>new flavor of the ncurses library provides rudimentary
- support for POSIX threads. Several functions are
- reentrant, but most require either a window-level or
- screen-level mutex.<br>
- (This is <em>API</em>-compatible,
- but not <em>ABI</em>-compatible with the normal library).
-
- <li>add <code>NCURSES_OPAQUE</code> symbol to curses.h, will
- use to make structs opaque in selected configurations.
-
- <li>add <code>NCURSES_EXT_FUNCS</code> and
- <code>NCURSES_EXT_COLORS</code> symbols to curses.h to make
- it simpler to tell if the extended functions and/or colors
- are declared.
-
- <li>add wresize() to C++ binding
-
- <li>eliminate fixed-buffer vsprintf() calls in C++ binding.
-
- <li>add several functions to C++ binding which wrap C functions
- that pass a WINDOW* parameter.
-
- <li>adapt mouse-handling code from menu library in form-library
-
- <li>improve tracing for form library, showing created forms,
- fields, etc.
-
- <li>make $NCURSES_NO_PADDING feature work for termcap interface .
-
- <li>add check to trace-file open, if the given name is a
- directory, add ".log" to the name and try again.
-
- <li>several new manpages: curs_legacy.3x, curs_memleaks.3x,
- curs_opaque.3x and curs_threads.3x
- </ul>
-
- <li>programs:
- <ul>
- <li>modified three test-programs to demonstrate the threading
- support in this version: ditto, rain, worm.
-
- <li>several new test-programs: demo_panels, dots_mvcur,
- inch_wide, inchs, key_name, key_names, savescreen,
- savescreen.sh test_arrays, test_get_wstr, test_getstr,
- test_instr, test_inwstr and test_opaque.
-
- <li>add <code>adacurses-config</code> to the Ada95 install.
-
- <li>modify tic <code>-f</code> option to format spaces as
- <code>\s</code> to prevent them from being lost when that
- is read back in unformatted strings.
-
- <li>The <code>tack</code> program is now distributed separately
- from ncurses.
- </ul>
-
- <li>terminal database
- <ul>
- <li>added entries:
- <ul>
- <li><code>Eterm-256color</code>,
- <code>Eterm-88color</code> and
- <code>rxvt-88color</code>
- <li><code>aterm</code>
- <li><code>konsole-256color</code>
- <li><code>mrxvt</code>
- <li><code>screen.mlterm</code>
- <li><code>screen.rxvt</code>
- <li><code>teraterm4.59</code> is now the primary primary
- teraterm entry, renamed original to
- <code>teraterm2.3</code>
- <li><code>9term</code> terminal
- <li>Newbury Data entries
- </ul>
- <li>updated/improved entries:
- <ul>
- <li><code>gnome</code> to version 2.22.3
- <li><code>h19</code>, <code>z100</code>
- <li><code>konsole</code> to version 1.6.6
- <li><code>mlterm</code>, <code>mlterm+pcfkeys</code>
- <li><code>xterm</code>, and building-blocks for function-keys
- to <a href="http://invisible-island.net/xterm/xterm.log.html#xterm_230">xterm patch #230</a>.
- </ul>
- </ul>
-</ul>
-Major bug fixes:
-<ul>
- <li>add logic to tic for cancelling strings in user-defined
- capabilities
- (this is <em>needed</em> for
- current <code>konsole</code> terminfo entry).
-
- <li>modify <code>mk-1st.awk</code> so the generated makefile rules for
- linking or installing shared libraries do not first remove the
- library, in case it is in use, e.g., <code>libncurses.so</code> by
- <code>/bin/sh</code>.
-
- <li>correct check for notimeout() in wgetch().
-
- <li>fix a sign-extension bug in infocmp's repair_acsc() function.
-
- <li>change winnstr() to stop at the end of the line.
-
- <li>make Ada95 demo_panels() example work.
-
- <li>fix for adding a non-spacing character at the beginning of a line.
-
- <li>fill in extended-color pair to make colors work
- for wide-characters using extended-colors.
-
- <li>improve refresh of window on top of multi-column characters,
- taking into account split characters on left/right window
- boundaries.
-
- <li>modify <code>win_wchnstr()</code> to ensure that only a base cell
- is returned for each multi-column character.
-
- <li>improve <code>waddch()</code> and <code>winsch()</code> handling of
- EILSEQ from <code>mbrtowc()</code> by using <code>unctrl()</code>
- to display illegal bytes rather than trying to append further bytes
- to make up a valid sequence.
-
- <li>restore <code>curs_set()</code> state after
- <code>endwin()</code>/<code>refresh()</code>
-
- <li>modify <code>keyname()</code> to use "^X" form only if
- <code>meta()</code> has been called, or if <code>keyname()</code>
- is called without initializing curses, e.g., via
- <code>initscr()</code> or <code>newterm()</code>.
-
- <li>modify <code>unctrl()</code> to check codes in 128-255 range versus
- <code>isprint()</code>.
- If they are not printable, and locale was set, use a "M-" or "~"
- sequence.
-
- <li>improve <code>resizeterm()</code> by moving ripped-off lines, and
- repainting the soft-keys.
-
- <li>modify form library to accept control characters such as newline
- in set_field_buffer(), which is compatible with Solaris.
-
- <li>use <code>NCURSES_MOUSE_MASK()</code> in definition of
- <code>BUTTON_RELEASE()</code>, etc., to make those work properly
- with the <code>--enable-ext-mouse</code> configuration
-
- <li>correct some functions in Ada95 binding which were using return
- value from C where none was returned.
-
- <li>reviewed/fixed issues reported by Coverity and Klocwork tools.
-</ul>
-
-Portability:
-<ul>
- <li>configure script:
+
+<html>
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
+
+ <title>Announcing ncurses 5.8</title>
+ <link rev="made" href="mailto:bug-ncurses@gnu.org">
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii">
+</head>
+
+<body>
+ <h1>Announcing ncurses 5.8</h1>The ncurses (new curses)
+ library is a free software emulation of curses in System V
+ Release 4.0, and more. It uses terminfo format, supports pads and
+ color and multiple highlights and forms characters and
+ function-key mapping, and has all the other SYSV-curses
+ enhancements over BSD curses.
+
+ <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
+ that he considered 4.4BSD curses obsolete, and encouraged the
+ keepers of Unix releases such as BSD/OS, FreeBSD and NetBSD to
+ switch over to ncurses.</p>
+
+ <p>The ncurses code was developed under GNU/Linux. It has been in
+ use for some time with OpenBSD as the system curses library, and
+ on FreeBSD and NetBSD as an external package. It should port
+ easily to any ANSI/POSIX-conforming UNIX. It has even been ported
+ to OS/2 Warp!</p>
+
+ <p>The distribution includes the library and support utilities,
+ including a terminfo compiler tic(1), a decompiler infocmp(1),
+ clear(1), tput(1), tset(1), and a termcap conversion tool
+ captoinfo(1). Full manual pages are provided for the library and
+ tools.</p>
+
+ <p>The ncurses distribution is available via anonymous FTP at the
+ GNU distribution site <a href=
+ "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a> .<br>
+
+ It is also available at <a href=
+ "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p>
+
+ <h1>Release Notes</h1>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.
+
+ <h2>Interface changes</h2>
+
+ <ul>
+ <li>turn on <code>_XOPEN_CURSES</code> definition in
+ <code>curses.h</code>.</li>
+
+ <li>change <code>_nc_has_mouse</code> to
+ <code>has_mouse</code>, reflect its use in C++ and Ada95.</li>
+
+ <li>add <code>is_pad</code> and <code>is_subwin</code>
+ functions for opaque access to the WINDOW structure.</li>
+
+ <li>add <code>tiparm</code>, based on review of X/Open Curses
+ Issue 7.</li>
+ </ul>
+
+ <h2>New features and improvements</h2>
+
+ <h3>Library Improvements</h3>
+
+ <ul>
+ <li>add a terminal driver for Windows console, which supports a
+ MinGW port to Windows.</li>
+
+ <li>add extended functions which specify the
+ <code>SCREEN</code> pointer for several curses functions which
+ use the global <code>SP</code>.</li>
+
+ <li>improve the <code>NCURSES_NO_UTF8_ACS</code> feature by
+ adding a check for an extended terminfo capability
+ <code>U8</code>.</li>
+
+ <li>improve performance of <code>tigetstr</code>, etc., by
+ using hashing code from tic.</li>
+
+ <li>add WACS_<em>xxx</em> definitions to wide-character
+ configuration for thick- and double-lines.</li>
+
+ <li>modify init_pair to allow caller to create extra color
+ pairs beyond the color_pairs limit, which use default
+ colors.</li>
+ </ul>
+
+ <h3>Improvements to Programs</h3>
+
+ <ul>
+ <li>add <code>tabs</code> program.</li>
+
+ <li>modify tic's -I/-C dump to reformat acsc strings into
+ canonical form (sorted, unique mapping).</li>
+
+ <li>add checks in tic for inconsistent cursor-movement
+ controls, and for inconsistent printer-controls.</li>
+
+ <li>add special case to <code>_nc_infotocap</code> (used by tic
+ and infocmp) to recognize the
+ <code>setaf</code>/<code>setab</code> strings from
+ <code>xterm+256color</code> and <code>xterm+88color,</code> and
+ provide a reduced version which works with termcap.</li>
+ </ul>
+
+ <h3>Terminal Database</h3>
+
+ <ul>
+ <li>added entries:
+
+ <ul>
+ <li><code>bterm</code> terminfo entry, based on bogl
+ 0.1.18</li>
+
+ <li><code>cons25-debian</code> entry</li>
+
+ <li><code>eterm-color</code> entry</li>
+
+ <li><code>linux-16color</code></li>
+
+ <li><code>mlterm+256color</code> entry, for mlterm
+ 3.0.0</li>
+
+ <li>several screen-bce.<em>xxx</em> entries</li>
+
+ <li><code>screen.Eterm</code> terminfo entry</li>
+
+ <li><code>vwmterm</code> entry</li>
+
+ <li><code>xterm-utf8</code> entry as a demo of the
+ <code>U8</code> feature</li>
+ </ul>
+ </li>
+
+ <li>updated/improved entries:
+
+ <ul>
+ <li>use extended capabilities:
+
+ <ul>
+ <li>add <code>U8</code> feature to denote entries for
+ terminal emulators which do not support VT100 SI/SO
+ when processing UTF-8 encoding</li>
+
+ <li>add <code>XT</code> capability to entries for
+ terminals that support both xterm-style mouse- and
+ title-controls, for <code>screen</code> which
+ special-cases TERM beginning with <code>xterm</code> or
+ <code>rxvt</code></li>
+ </ul>
+ </li>
+
+ <li>improvements based on new checks in tic:</li>
+
+ <li style="list-style: none; display: inline">
<ul>
- <li>new options:
- <dl>
-
- <dt>--disable-big-strings
- <dd>control whether static string tables are generated as single
- large strings (to improve startup performance), or as array
- of individual strings.
-
- <dt>--disable-relink
- <dd>control whether shared libraries are relinked (during install)
- when rpath is enabled.
-
- <dt>--disable-tic-depends
- <dd>make explicit whether tic library depends on ncurses/ncursesw
- library.
-
- <dt>--enable-mixed-case
- <dd>override the configure script's check if the filesystem
- supports mixed-case filenames.
- This allows one to control how the terminal database
- maps to the filesystem.
- For filesystems that do not support mixed-case, the library
- uses generate 2-character (hexadecimal) codes for the
- lower-level of the filesystem terminfo database
-
- <dt>--enable-reentrant
- <dd>builds a different flavor of the ncurses library (ncursest)
- which improves reentrant use of the
- library by reducing global and static variables
- (see the "--with-pthread" option for the threaded support).
-
- <dt>--enable-weak-symbols
- <dd>use weak-symbols for linking to the POSIX thread library,
- and use the same soname for the ncurses shared library
- as the normal library (caveat: the ABI is for the threaded
- library, which makes global data accessed via functions).
-
- <dt>--with-pthread
- <dd>build with the POSIX thread library (tested with AIX,
- Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64).
-
- <dt>--with-ticlib
- <dd>build/install the tic-support functions in a separate library
-
- </dl>
-
- <li>improved options:
- <dl>
-
- <dt>--enable-ext-colors
- <dd>requires the wide-character configuration.
-
- <dt>--with-chtype
- <dd>ignore option value "unsigned" is always added to
- the type in curses.h; do the same for --with-mmask-t.
-
- <dt>--with-dmalloc
- <dd>build-fix for redefinition of <code>strndup</code>.
-
- <dt>--with-hashed-db
- <dd>accepts a parameter which is the install-prefix of a given
- Berkeley Database.
-
- <dt>--with-hashed-db
- <dd>the $LIBS environment variable overrides the search for the db
- library.
-
- <dt>--without-hashed-db
- <dd>assumed when "--disable-database" is used.
-
- </dl>
-
- </ul>
-
- <li>other configure/build issues:
- <ul>
- <li>build-fixes for LynxOS
- <li>modify shared-library rules to allow FreeBSD 3.x to use rpath.
- <li>build-fix for FreeBSD "contemporary" TTY interface.
- <li>build-fixes for AIX with libtool.
- <li>build-fixes for Darwin and libtool.
- <li>modify BeOS-specific ifdef's to build on Haiku.
- <li>corrected gcc options for building shared libraries on Solaris
- and IRIX64.
- <li>change shared-library configuration for OpenBSD, make rpath work.
- <li>build-fixes for using libutf8, e.g., on OpenBSD 3.7
- <li>add "-e" option in ncurses/Makefile.in when generating source-files
- to force earlier exit if the build environment fails unexpectedly.
- <li>add support for shared libraries for QNX.
- <li>change delimiter in <code>MKlib_gen.sh</code> from '%' to '@', to
- avoid substitution by IBM xlc to '#' as part of its extensions to
- digraphs.
- </ul>
-
- <li>library:
- <ul>
- <li>rewrite wrapper for <code>wcrtomb()</code>, making it work on
- Solaris. This is used in the form library to determine the length
- of the buffer needed by <code>field_buffer</code>.
- <li>add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
- type for data manipulated by signal handlers.
- <li>set locale in misc/ncurses-config.in since it uses a range
- <li>disable GPM mouse support when $TERM does not happen to contain
- "linux", since Gpm_Open() no longer limits its assertion to terminals
- that it might handle, e.g., within "screen" in xterm.
- <li>reset mouse file-descriptor when unloading GPM library.
- </ul>
-
- <li>test programs:
- <ul>
- <li>update test programs to build/work with various UNIX curses for
- comparisons.
- </ul>
-</ul>
-
-<H1>Features of Ncurses</H1>
-
-The ncurses package is fully compatible with SVr4 (System V Release 4) curses:
-
-<UL>
-<LI>All 257 of the SVr4 calls have been implemented (and are documented).
-<LI>Full support for SVr4 curses features including keyboard mapping, color,
-forms-drawing with ACS characters, and automatic recognition of keypad
-and function keys.
-<LI>An emulation of the SVr4 panels library, supporting
-a stack of windows with backing store, is included.
-<LI>An emulation of the SVr4 menus library, supporting
-a uniform but flexible interface for menu programming, is included.
-<LI>An emulation of the SVr4 form library, supporting
-data collection through on-screen forms, is included.
-<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
-are bit-for-bit-compatible with the entry format SVr4 curses uses.
-<LI>The utilities have options to allow you to filter terminfo
-entries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
-versions such as the HP/UX and AIX ports.</UL>
-
-The ncurses package also has many useful extensions over SVr4:
-
-<UL>
-<LI>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,
-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).
-<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
-of the screen if your terminal has an insert-character capability.
-<LI>Ada95 and C++ bindings.
-<LI>Support for mouse event reporting with X Window xterm
-and FreeBSD and OS/2 console windows.
-<LI>Extended mouse support via Alessandro Rubini's gpm package.
-<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
-their data.
-<LI>The function <CODE>use_default_colors()</CODE> allows you to
-use the terminal's default colors for the default color pair,
-achieving the effect of transparent colors.
-<LI>The functions <CODE>keyok()</CODE>
-and <CODE>define_key()</CODE> 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.
-<LI>Support for 256-color terminals, such as modern xterm, when configured
-using the <code>--enable-ext-colors</code> option.
-<LI>Support for 16-color terminals, such as aixterm and modern xterm.
-<LI>Better cursor-movement optimization. The package now features a
-cursor-local-movement computation more efficient than either BSD's
-or System V's.
-<LI>Super hardware scrolling support. The screen-update code 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.
-<LI>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 beginning and
-after the end would step on a non-space character. It will
-automatically shift highlight boundaries when doing so would make it
-possible to draw the highlight without changing the visual appearance
-of the screen.
-<LI>It is possible to generate the library with a list of pre-loaded
-fallback entries linked to it so that it can serve those terminal types even
-when no terminfo tree or termcap file is accessible (this may be useful
-for support of screen-oriented programs that must run in single-user mode).
-<LI>The tic(1)/captoinfo utility provided with ncurses has the
-ability to translate many termcaps from the XENIX, IBM and
-AT&T extension sets.
-<LI>A BSD-like tset(1) utility is provided.
-<LI>The ncurses library and utilities will automatically read terminfo
-entries from $HOME/.terminfo if it exists, and compile to that directory
-if it exists and the user has no write access to the system directory.
-This feature makes it easier for users to have personal terminfo entries
-without giving up access to the system terminfo directory.
-<LI>You may specify a path of directories to search for compiled
-descriptions with the environment variable TERMINFO_DIRS (this
-generalizes the feature provided by TERMINFO under stock System V.)
-<LI>In terminfo source files, use capabilities may refer not just to
-other entries in the same source file (as in System V) but also to
-compiled entries in either the system terminfo directory or the user's
-$HOME/.terminfo directory.
-<LI>A script (<STRONG>capconvert</STRONG>) is provided to help BSD users
-transition from termcap to terminfo. It gathers the information in a
-TERMCAP environment variable and/or a ~/.termcap local entries file
-and converts it to an equivalent local terminfo tree under $HOME/.terminfo.
-<LI>Automatic fallback to the /etc/termcap file can be compiled in
-when it is not possible to build a terminfo tree. This feature is neither
-fast nor cheap, you don't want to use it unless you have to,
-but it's there.
-<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
-see exactly what terminal types are available on the system.
-<LI>The library meets the XSI requirement that every macro entry
-point have a corresponding function which may be linked (and will be
-prototype-checked) if the macro definition is disabled with
-<CODE>#undef</CODE>.
-<LI>An HTML "Introduction to Programming with NCURSES" document provides
-a narrative introduction to the curses programming interface.
-</UL>
-
-<H1>State of the Package</H1>
-
-Numerous bugs present in earlier versions have been fixed; the
-library is far more reliable than it used to be. Bounds checking in many
-`dangerous' entry points has been improved. The code is now type-safe
-according to gcc -Wall. The library has been checked for malloc leaks and
-arena corruption by the Purify memory-allocation tester.<P>
-
-The ncurses code has been tested with a wide variety of applications
-including (versions starting with those noted):
-<DL>
-<DT> cdk
-<DD> Curses Development Kit
-<br>
-<A HREF="http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</A>
-<br>
-<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
-<DT> ded
-<DD> directory-editor
-<br>
-<A HREF="http://invisible-island.net/ded/">http://invisible-island.net/ded/</A>
-<DT> dialog
-<DD> the underlying application used in Slackware's setup, and the basis
-for similar applications on GNU/Linux.
-<br>
-<A HREF="http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</A>
-<DT> lynx
-<DD> the character-screen WWW browser
-<br>
-<A HREF="http://lynx.isc.org/release/">http://lynx.isc.org/release/</A>
-<DT> Midnight Commander
-<DD> file manager
-<br>
-<A HREF="http://www.ibiblio.org/mc/">http://www.ibiblio.org/mc/</A>
-<DT> mutt
-<DD> mail utility
-<br>
-<A HREF="http://www.mutt.org/">http://www.mutt.org/</A>
-<DT> ncftp
-<DD> file-transfer utility
-<br>
-<A HREF="http://www.ncftp.com/">http://www.ncftp.com/</A>
-<DT> nvi
-<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
-<br>
-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>
-<br>
-<DT> pinfo
-<DD> Lynx-like info browser.
-<A HREF="https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</A>
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<A HREF="http://www.tin.org/">http://www.tin.org/</A>
-</DL>
-as well as some that use ncurses for the terminfo support alone:
-<DL>
-<DT> minicom
-<DD> terminal emulator
-<br>
-<A HREF="http://alioth.debian.org/projects/minicom/">
-http://alioth.debian.org/projects/minicom/</A>
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://invisible-island.net/vile/">http://invisible-island.net/vile/</A>
-</DL>
-<P>
-
-The ncurses distribution includes a selection of test programs (including
-a few games).
-
-<H2>Who's Who and What's What</H2>
-
-Zeyd Ben-Halim
-started it from a previous package pcurses, written by Pavel Curtis.
-Eric S. Raymond
-continued development.
-Jürgen Pfeifer wrote most of the form and menu libraries.
-Ongoing work is being done by
-<A HREF="mailto:dickey@invisible-island.net">Thomas Dickey</A>.
-Thomas Dickey
-acts as the maintainer for the Free Software Foundation,
-which holds the copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-To join the ncurses mailing list, please write email to
-<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
-<PRE>
+ <li>fill in no-parameter forms of cursor-movement where
+ a parameterized form is available</li>
+
+ <li>fill in missing cursor controls where the form of
+ the controls is ANSI</li>
+
+ <li>add parameterized cursor-controls to
+ linux-basic</li>
+
+ <li>modify <code>nsterm,</code> <code>xnuppc</code> and
+ <code>tek4115</code> to make
+ <code>sgr</code>/<code>sgr0</code> consistent</li>
+
+ <li>change several terminfo entries to make consistent
+ use of ANSI clear-all-tabs</li>
+ </ul>
+ </li>
+
+ <li>extend <code>ansi.sys</code> <code>pfkey</code>
+ capability from kf1-kf10 to kf1-kf48, moving function key
+ definitions from <code>emx-base</code> for
+ consistency.</li>
+
+ <li>correct missing final 'p' in <code>pfkey</code>
+ capability of <code>ansi.sys-old</code>.</li>
+
+ <li>rename <code>atari</code> and <code>st52</code>
+ terminfo entries to atari-old, st52-old, use newer entries
+ from FreeMiNT.</li>
+
+ <li>repurpose <code>gnome</code> terminfo entries as
+ <code>vte</code>, retaining <code>gnome</code> variants for
+ compatibility, but generally deprecating those since the
+ VTE library is what actually defines the behavior of
+ "gnome", etc., since 2003.</li>
+
+ <li>improve <code>interix</code> <code>smso</code> terminfo
+ capability by using reverse rather than bold.</li>
+
+ <li>correct <code>initc</code> capability of
+ <code>linux-c-nc</code> end-of-range, make similar change
+ for <code>dg+ccc</code> and <code>dgunix+ccc</code>.</li>
+
+ <li>update <code>minix</code> terminfo entry.</li>
+
+ <li>updated <code>nsterm*</code> entries.</li>
+
+ <li>remove unnecessary <code>kcan</code> assignment to
+ <code>^C</code> from <code>putty</code>.</li>
+
+ <li>suppress <code>ncv</code> in <code>screen</code> and
+ <code>konsole-base</code> entries, allowing underline.</li>
+
+ <li>change ncv and op capabilities in
+ <code>sun-color</code> terminfo entry to match Sun's entry
+ for this.</li>
+
+ <li>fix typo in <code>rmso</code> for <code>tek4106</code>
+ entry.</li>
+
+ <li>improve <code>acsc</code> string for <code>vt52</code>,
+ show arrow keys.</li>
+
+ <li>add hard-reset for <code>rs2</code> to
+ <code>wsvt25</code> to help ensure that reset ends the
+ alternate character set.</li>
+
+ <li>add <code>ccc</code> and <code>initc</code>
+ capabilities to <code>xterm-16color</code>.</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h2>Major bug fixes</h2>
+
+ <ul>
+ <li>ncurses library
+
+ <ul>
+ <li>wide character support
+
+ <ul>
+ <li>modify length returned by <code>getcchar</code> to
+ count the trailing null which is documented in
+ X/Open.</li>
+
+ <li>fix an infinite recursion when adding a
+ legacy-coding 8-bit value using
+ <code>insch</code>.</li>
+
+ <li>improve a workaround in adding wide-characters,
+ when a control character is found. The library uses
+ <code>unctrl</code> to obtain a printable version of
+ the control character, but was not passing color or
+ video attributes.</li>
+
+ <li>modify <code>waddch_literal</code>, 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.</li>
+
+ <li>fixes in <code>wins_nwstr</code> and related
+ functions to ensure that special characters, i.e.,
+ control characters are handled properly with the
+ wide-character configuration.</li>
+
+ <li>correct internal <code>_nc_insert_ch</code> to use
+ <code>_nc_insert_wch</code> when inserting wide
+ characters, since the <code>wins_wch</code> function
+ that it used did not update the cursor position.</li>
+ </ul>
+ </li>
+
+ <li>mouse
+
+ <ul>
+ <li>add check if <code>Gpm_Open</code> returns a -2,
+ e.g., for "xterm". This is normally suppressed but can
+ be overridden using <code>$NCURSES_GPM_TERMS</code>.
+ Ensure that <code>Gpm_Close</code> is called in this
+ case.</li>
+
+ <li>add check in mouse-driver to disable connection if
+ GPM returns a zero, indicating that the connection is
+ closed.</li>
+
+ <li>modify <code>getmouse</code> 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 <code>ERR</code>.</li>
+ </ul>
+ </li>
+
+ <li>miscellaneous
+
+ <ul>
+ <li>improve handling of color-pairs embedded in
+ attributes for the extended-colors configuration.</li>
+
+ <li>add check for failure to open hashed-database
+ needed for db4.6.</li>
+
+ <li>modify use of <code>$CC</code> environment variable
+ which is defined by X/Open as a curses feature, to
+ ignore it if it is not a single character.</li>
+
+ <li>modify declaration of <code>cur_term</code> when
+ broken-linker is used, but enable-reentrant is not, to
+ match pre-5.7.</li>
+
+ <li>correct limit-checks in <code>derwin</code>.</li>
+
+ <li>remove old check in <code>mvderwin</code> which
+ prevented moving a derived window whose origin happened
+ to coincide with its parent's origin.</li>
+
+ <li>correct limit-checks in <code>newwin</code>, to
+ ensure that windows have nonzero size.</li>
+
+ <li>modify <code>set_curterm</code> to make
+ broken-linker configuration work with changes from
+ 20090228.</li>
+
+ <li>modify <code>wgetch</code> to ensure it checks
+ <code>SIGWINCH</code> when it gets an error in
+ non-blocking mode.</li>
+
+ <li>correct limit-check in <code>wredrawln</code>,
+ accounting for <code>begy</code>/<code>begx</code>
+ values.</li>
+
+ <li>fix a null-pointer check in
+ <code>_nc_format_slks</code> in lib_slk.c, from
+ 20070704 changes.</li>
+
+ <li>correct translation of "^" in
+ <code>_nc_infotocap</code>, used to transform terminfo
+ to termcap strings.</li>
+
+ <li>modify <code>_nc_wgetch</code> to check for a -1 in
+ the fifo, e.g., after a <code>SIGWINCH</code>, and
+ discard that value, to avoid confusing
+ application.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>other libraries
+
+ <ul>
+ <li>correct transfer of multicolumn characters in multirow
+ <code>field_buffer</code>, which stopped at the end of the
+ first row due to filling of unused entries in a cchar_t
+ array with nulls.</li>
+
+ <li>correct buffer-size after internal resizing of
+ wide-character <code>set_field_buffer</code>, broken in
+ 20081018 changes.</li>
+
+ <li>correct layout of working window used to extract data
+ in wide-character configured by
+ <code>set_field_buffer</code></li>
+ </ul>
+ </li>
+ </ul>
+
+ <h2>Portability</h2>
+
+ <ul>
+ <li>configure script:
+
+ <ul>
+ <li>new options:
+
+ <dl>
+ <dt>--disable-libtool-version</dt>
+
+ <dd>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.</dd>
+
+ <dt>--disable-rpath-hack</dt>
+
+ <dd>disable a feature which adds rpath options for
+ libraries in unusual places.</dd>
+
+ <dt>--enable-interop</dt>
+
+ <dd>integrate changes for generic/interop support to
+ form-library.</dd>
+
+ <dt>--enable-pc-files</dt>
+
+ <dd>generate ".pc" files for each of the libraries, and
+ install them in <code>pkg-config</code>'s library
+ directory.</dd>
+
+ <dt>--enable-pthreads-eintr</dt>
+
+ <dd>control whether to allow <code>EINTR</code> to
+ interrupt a read operation in <code>wgetch</code>. This
+ applies only to the pthread configuration</dd>
+
+ <dt>--enable-sp-funcs</dt>
+
+ <dd>compile-in support for extended functions which
+ accept a <code>SCREEN</code> pointer, reducing the need
+ for juggling the global <code>SP</code> value with
+ <code>set_term</code> and <code>delscreen</code>.</dd>
+
+ <dt>--enable-term-driver</dt>
+
+ <dd>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.</dd>
+
+ <dt>--with-ncurses-wrap-prefix</dt>
+
+ <dd>allows setting the prefix for functions used to
+ wrap global variables to something other than
+ "<code>_nc_</code>".</dd>
+
+ <dt>--with-pkg-config=[DIR]</dt>
+
+ <dd>check for <code>pkg-config</code>, optionally
+ specifying its path.</dd>
+
+ <dt>--without-manpages</dt>
+
+ <dd>tells the configure script to suppress the install
+ of ncurses' manpages.</dd>
+
+ <dt>--without-tests</dt>
+
+ <dd>suppress building test programs.</dd>
+ </dl>
+ </li>
+
+ <li>improved options:
+
+ <ul>
+ <li>correct logic for <code>--with-database</code>,
+ which was coded as an enable-type switch.</li>
+
+ <li>omit the opaque-functions from
+ <code>lib_gen.o</code> when
+ <code>--disable-ext-funcs</code> is used.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>packaging:
+
+ <ul>
+ <li>*-config scripts:
+
+ <ul>
+ <li>modify <code>adacurses-config</code> to look for
+ ".ali" files in the adalib directory.</li>
+
+ <li>correct install for the Ada95 tree, which omitted
+ <code>libAdaCurses.a</code> used in
+ <code>adacurses-config</code>.</li>
+
+ <li>change install for <code>adacurses-config</code> to
+ provide additional flavors such as
+ <code>adacursesw-config</code>, for ncursesw.</li>
+
+ <li>modify scripts to generate
+ <code>ncurses*-config</code> and pc-files to add
+ dependency for tinfo library.</li>
+
+ <li>use <code>ncurses*-config</code> scripts if
+ available for test/configure.</li>
+
+ <li>correct name for termlib in
+ <code>ncurses*-config</code>, e.g., if it is renamed to
+ provide a single file for ncurses/ncursesw
+ libraries.</li>
+
+ <li>generate manpages for the *-config scripts, adapted
+ from <code>help2man</code>.</li>
+
+ <li>modify install-rule for manpages so that *-config
+ manpages will install when building with
+ <code>--srcdir</code>.</li>
+
+ <li>build-fixes for OpenSolaris aka Solaris 11, for
+ wide-character configuration as well as for rpath
+ feature in *-config scripts.</li>
+
+ <li>use <code>$includedir</code> symbol in
+ <code>misc/ncurses-config.in</code>, add
+ <code>--includedir</code> option.</li>
+
+ <li>improve install-rules for pc-files.</li>
+
+ <li>create the <code>pkg-config</code> library
+ directory if needed.</li>
+
+ <li>fix typo "<code>==</code>" where "<code>=</code>"
+ is needed in <code>ncurses-config.in</code> and
+ <code>gen-pkgconfig.in</code> files.</li>
+
+ <li>modify <code>gen-pkgconfig.in</code> to eliminate a
+ dependency on rpath when deciding whether to add
+ <code>$LIBS</code> to <code>--libs</code> output; that
+ should be shown for the ncurses and tinfo libraries
+ without taking rpath into account.</li>
+
+ <li>modify handling of <code>$PKG_CONFIG_LIBDIR</code>
+ to use only the first item in a possibly
+ colon-separated list.</li>
+ </ul>
+ </li>
+
+ <li>other packaging issues
+
+ <ul>
+ <li>add <code>make-tar.sh</code> scripts to Ada95 and
+ test subdirectories to help with making those
+ separately distributable.</li>
+
+ <li>add <code>Ada95/configure</code> script, to use in
+ tar-file created by
+ <code>Ada95/make-tar.sh</code>.</li>
+
+ <li>remove <code>tar-copy.sh</code> and related
+ <code>configure/Makefile</code> chunks, since the Ada95
+ binding is now installed using rules in
+ <code>Ada95/src</code>.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>cross-compiling:
+
+ <ul>
+ <li>improve configure checks for location of tic and
+ infocmp programs used for installing database and for
+ generating fallback data, e.g., for cross-compiling.</li>
+
+ <li>modify #define's for build-compiler to suppress cchar_t
+ symbol from compile of <code>make_hash</code> and
+ <code>make_keys</code>, improving cross-compilation of
+ ncursesw.</li>
+
+ <li>simplify include-dependencies of <code>make_hash</code>
+ and <code>make_keys</code>, to reduce the need for setting
+ BUILD_CPPFLAGS in cross-compiling when the build- and
+ target-machines differ.</li>
+
+ <li>correct cross-compiling configure check for
+ <code>CF_MKSTEMP</code> macro, by adding a check cache
+ variable set by <code>AC_CHECK_FUNC</code>.</li>
+ </ul>
+ </li>
+
+ <li>library dependencies:
+
+ <ul>
+ <li>revise <code>wadd_wch</code> and
+ <code>wecho_wchar</code> to eliminate dependency on
+ <code>unctrl</code>.</li>
+
+ <li>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.</li>
+ </ul>
+ </li>
+
+ <li>building the Ada95 tree:
+
+ <ul>
+ <li>changes to use gnatmake project files in the Ada95
+ tree.</li>
+
+ <li>add/use configure check to turn on project rules for
+ <code>Ada95/src</code>.</li>
+
+ <li>old gnatmake (3.15) does not produce libraries using
+ project-file; work around by adding script to generate
+ alternate makefile.</li>
+
+ <li>add configure --with-ada-sharedlib option, for the
+ test_make rule.</li>
+
+ <li>move Ada95-related logic into aclocal.m4, since
+ additional checks will be needed to distinguish old/new
+ implementations of gnat.</li>
+
+ <li>add test_make / test_clean / test_install rules in
+ Ada95/src</li>
+
+ <li>change install-path for adainclude directory to
+ /usr/share/ada (was /usr/lib/ada).</li>
+ </ul>
+ </li>
+
+ <li>other configure/build issues:
+
+ <ul>
+ <li>make <code>CCHARW_MAX</code> value configurable, noting
+ that changing this would change the size of
+ <code>cchar_t</code>, and would be ABI-incompatible.</li>
+
+ <li>improve comparison of program-names when checking for
+ linked flavors such as "reset" by ignoring the executable
+ suffix.</li>
+
+ <li>drop <code>mkdirs.sh</code>, use
+ "<code>mkdir -p</code>".</li>
+
+ <li>drop <code>misc/ncu-indent</code> and
+ <code>misc/jpf-indent</code>; they are provided by an
+ external package <a href=
+ "http://invisible-island.net/cindent/cindent.html">cindent</a>.</li>
+
+ <li>change makefiles to use <code>$ARFLAGS</code> rather
+ than <code>$AR_OPTS</code>, provide a configure check to
+ detect whether a "-" is needed before "ar" options.</li>
+
+ <li>modify <code>CF_DISABLE_LEAKS</code> configure macro so
+ that the --enable-leaks option is not the same as
+ --disable-leaks.</li>
+
+ <li>improve configure script macros
+ <code>CF_HEADER_PATH</code> and
+ <code>CF_LIBRARY_PATH</code> by adding <code>CFLAGS</code>,
+ <code>CPPFLAGS</code> and <code>LDFLAGS</code>,
+ <code>LIBS</code> values to the search-lists.</li>
+
+ <li>improve configure macros <code>CF_GCC_VERSION</code>
+ and <code>CF_GCC_WARNINGS</code> to work with gcc 4.x's c89
+ alias, which gives warning messages for cases where older
+ versions would produce an error.</li>
+
+ <li>modify <code>CF_WITH_LIBTOOL</code> configure check to
+ allow unreleased libtool version numbers (e.g. which
+ include alphabetic chars, as well as digits, after the
+ final '.').</li>
+
+ <li>improve use of symbolic links in makefiles by using
+ "<code>-f</code>" option if it is supported, to eliminate
+ temporary removal of the target</li>
+
+ <li>add a configure-time check to pick a suitable value for
+ <code>CC_SHARED_OPTS</code> for Solaris.</li>
+
+ <li>add -shared option to <code>MK_SHARED_LIB</code> when
+ -Bsharable is used, for *BSD's, without which "main" might
+ be one of the shared library's dependencies.</li>
+
+ <li>modify configure script to allow building shared
+ libraries with gcc on AIX 5 or 6.</li>
+
+ <li>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.</li>
+
+ <li>suppress configure check for static/dynamic linker
+ flags for gcc on Darwin.</li>
+
+ <li>modify <code>misc/run_tic.in</code> to create parent
+ directory, in case this is a new install of hashed
+ database.</li>
+
+ <li>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.</li>
+ </ul>
+ </li>
+
+ <li>test programs:
+
+ <ul>
+ <li>add test/demo_terminfo, for comparison with
+ demo_termcap.</li>
+
+ <li>improve test/ncurses.c 'F' test, show combining
+ characters in color.</li>
+
+ <li>fix logic for 'V' in test/ncurses.c tests f/F.</li>
+
+ <li>improve test/ncurses.c 'a test to put mouse droppings
+ in the proper window.</li>
+
+ <li>modify ncurses 'F' test to demo wborder_set with
+ colored lines.</li>
+
+ <li>modify ncurses 'f' test to demo wborder with colored
+ lines.</li>
+
+ <li>improve test/ncurses.c 'a' test, using unctrl more
+ consistently to display meta-characters.</li>
+
+ <li>correct use of <code>key_name</code> in test/ncurses.c
+ 'A' test, which only displays wide-characters, not
+ key-codes since 20070612.</li>
+
+ <li>add test/clip_printw.c to illustrate how to use printw
+ without wrapping.</li>
+
+ <li>modify test-programs, e.g,. test/view.c, to address
+ subtle differences between Tru64/Solaris and HPUX/AIX
+ getcchar return values.</li>
+
+ <li>add some test programs (and make these use the same
+ special keys by sharing <code>linedata.h</code> functions):
+ test/test_addstr.c test/test_addwstr.c test/test_addchstr.c
+ test/test_add_wchstr.c</li>
+
+ <li>add test/xterm-256color.dat</li>
+
+ <li>modify test programs to allow them to be built with
+ NetBSD curses.</li>
+
+ <li>fixes for test programs to build/work on HPUX and AIX,
+ etc.</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h1>Features of Ncurses</h1>The ncurses package is fully
+ compatible with SVr4 (System V Release 4) curses:
+
+ <ul>
+ <li>All 257 of the SVr4 calls have been implemented (and are
+ documented).</li>
+
+ <li>Full support for SVr4 curses features including keyboard
+ mapping, color, forms-drawing with ACS characters, and
+ automatic recognition of keypad and function keys.</li>
+
+ <li>An emulation of the SVr4 panels library, supporting a stack
+ of windows with backing store, is included.</li>
+
+ <li>An emulation of the SVr4 menus library, supporting a
+ uniform but flexible interface for menu programming, is
+ included.</li>
+
+ <li>An emulation of the SVr4 form library, supporting data
+ collection through on-screen forms, is included.</li>
+
+ <li>Binary terminfo entries generated by the ncurses tic(1)
+ implementation are bit-for-bit-compatible with the entry format
+ SVr4 curses uses.</li>
+
+ <li>The utilities have options to allow you to filter terminfo
+ entries for use with less capable
+ <strong>curses</strong>/<strong>terminfo</strong> versions such
+ as the HP/UX and AIX ports.</li>
+ </ul>The ncurses package also has many useful extensions over
+ SVr4:
+
+ <ul>
+ <li>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, 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).</li>
+
+ <li>Unlike SVr3 curses, ncurses can write to the
+ rightmost-bottommost corner of the screen if your terminal has
+ an insert-character capability.</li>
+
+ <li>Ada95 and C++ bindings.</li>
+
+ <li>Support for mouse event reporting with X Window xterm and
+ FreeBSD and OS/2 console windows.</li>
+
+ <li>Extended mouse support via Alessandro Rubini's gpm
+ package.</li>
+
+ <li>The function <code>wresize</code> allows you to resize
+ windows, preserving their data.</li>
+
+ <li>The function <code>use_default_colors</code> allows you to
+ use the terminal's default colors for the default color pair,
+ achieving the effect of transparent colors.</li>
+
+ <li>The functions <code>keyok</code> and
+ <code>define_key</code> 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.</li>
+
+ <li>Support for 256-color terminals, such as modern xterm, when
+ configured using the <code>--enable-ext-colors</code>
+ option.</li>
+
+ <li>Support for 16-color terminals, such as <em>aixterm</em>
+ and <em>modern xterm</em>.</li>
+
+ <li>Better cursor-movement optimization. The package now
+ features a cursor-local-movement computation more efficient
+ than either BSD's or System V's.</li>
+
+ <li>Super hardware scrolling support. The screen-update code
+ 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 <code>quickch</code>
+ routine.</li>
+
+ <li>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
+ beginning and after the end would step on a non-space
+ character. It will automatically shift highlight boundaries
+ when doing so would make it possible to draw the highlight
+ without changing the visual appearance of the screen.</li>
+
+ <li>It is possible to generate the library with a list of
+ pre-loaded fallback entries linked to it so that it can serve
+ those terminal types even when no terminfo tree or termcap file
+ is accessible (this may be useful for support of
+ screen-oriented programs that must run in single-user
+ mode).</li>
+
+ <li>The tic(1)/captoinfo utility provided with ncurses has the
+ ability to translate many termcaps from the XENIX, IBM and
+ AT&T extension sets.</li>
+
+ <li>A BSD-like tset(1) utility is provided.</li>
+
+ <li>The ncurses library and utilities will automatically read
+ terminfo entries from $HOME/.terminfo if it exists, and compile
+ to that directory if it exists and the user has no write access
+ to the system directory. This feature makes it easier for users
+ to have personal terminfo entries without giving up access to
+ the system terminfo directory.</li>
+
+ <li>You may specify a path of directories to search for
+ compiled descriptions with the environment variable
+ TERMINFO_DIRS (this generalizes the feature provided by
+ TERMINFO under stock System V.)</li>
+
+ <li>In terminfo source files, use capabilities may refer not
+ just to other entries in the same source file (as in System V)
+ but also to compiled entries in either the system terminfo
+ directory or the user's $HOME/.terminfo directory.</li>
+
+ <li>A script (<strong>capconvert</strong>) is provided to help
+ BSD users transition from termcap to terminfo. It gathers the
+ information in a TERMCAP environment variable and/or a
+ ~/.termcap local entries file and converts it to an equivalent
+ local terminfo tree under $HOME/.terminfo.</li>
+
+ <li>Automatic fallback to the /etc/termcap file can be compiled
+ in when it is not possible to build a terminfo tree. This
+ feature is neither fast nor cheap, you don't want to use it
+ unless you have to, but it's there.</li>
+
+ <li>The table-of-entries utility <strong>toe</strong> makes it
+ easy for users to see exactly what terminal types are available
+ on the system.</li>
+
+ <li>The library meets the XSI requirement that every macro
+ entry point have a corresponding function which may be linked
+ (and will be prototype-checked) if the macro definition is
+ disabled with <code>#undef</code>.</li>
+
+ <li>An HTML "Introduction to Programming with NCURSES" document
+ provides a narrative introduction to the curses programming
+ interface.</li>
+ </ul>
+
+ <h1>State of the Package</h1>Numerous bugs present in earlier
+ versions have been fixed; the library is far more reliable than
+ it used to be. Bounds checking in many `dangerous' entry points
+ has been improved. The code is now type-safe according to gcc
+ -Wall. The library has been checked for malloc leaks and arena
+ corruption by the Purify memory-allocation tester.
+
+ <p>The ncurses code has been tested with a wide variety of
+ applications including (versions starting with those noted):</p>
+
+ <dl>
+ <dt>cdk</dt>
+
+ <dd>Curses Development Kit<br>
+ <a href=
+ "http://invisible-island.net/cdk/">http://invisible-island.net/cdk/</a><br>
+
+ <a href=
+ "http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a></dd>
+
+ <dt>ded</dt>
+
+ <dd>directory-editor<br>
+ <a href=
+ "http://invisible-island.net/ded/">http://invisible-island.net/ded/</a></dd>
+
+ <dt>dialog</dt>
+
+ <dd>the underlying application used in Slackware's setup, and
+ the basis for similar applications on GNU/Linux.<br>
+ <a href=
+ "http://invisible-island.net/dialog/">http://invisible-island.net/dialog/</a></dd>
+
+ <dt>lynx</dt>
+
+ <dd>the character-screen WWW browser<br>
+ <a href=
+ "http://lynx.isc.org/release/">http://lynx.isc.org/release/</a></dd>
+
+ <dt>Midnight Commander</dt>
+
+ <dd>file manager<br>
+ <a href=
+ "http://www.midnight-commander.org/">http://www.midnight-commander.org/</a></dd>
+
+ <dt>mutt</dt>
+
+ <dd>mail utility<br>
+ <a href="http://www.mutt.org/">http://www.mutt.org/</a></dd>
+
+ <dt>ncftp</dt>
+
+ <dd>file-transfer utility<br>
+ <a href="http://www.ncftp.com/">http://www.ncftp.com/</a></dd>
+
+ <dt>nvi</dt>
+
+ <dd>New vi versions 1.50 are able to use ncurses versions 1.9.7
+ and later.<br>
+ <a href=
+ "https://sites.google.com/a/bostic.com/keithbostic/nvi">https://sites.google.com/a/bostic.com/keithbostic/nvi</a><br>
+ </dd>
+
+ <dt>pinfo</dt>
+
+ <dd>Lynx-like info browser. <a href=
+ "https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</a></dd>
+
+ <dt>tin</dt>
+
+ <dd>newsreader, supporting color, MIME <a href=
+ "http://www.tin.org/">http://www.tin.org/</a></dd>
+ </dl>as well as some that use ncurses for the terminfo support
+ alone:
+
+ <dl>
+ <dt>minicom</dt>
+
+ <dd>terminal emulator<br>
+ <a href=
+ "http://alioth.debian.org/projects/minicom/">http://alioth.debian.org/projects/minicom/</a></dd>
+
+ <dt>vile</dt>
+
+ <dd>vi-like-emacs<br>
+ <a href=
+ "http://invisible-island.net/vile/">http://invisible-island.net/vile/</a></dd>
+ </dl>
+
+ <p>The ncurses distribution includes a selection of test programs
+ (including a few games).</p>
+
+ <h2>Who's Who and What's What</h2>Zeyd Ben-Halim started it from
+ a previous package pcurses, written by Pavel Curtis. Eric S.
+ Raymond continued development. Jürgen Pfeifer wrote most of
+ the form and menu libraries. Ongoing work is being done by
+ <a href="mailto:dickey@invisible-island.net">Thomas Dickey</a>.
+ Thomas Dickey acts as the maintainer for the Free Software
+ Foundation, which holds the copyright on ncurses. Contact the
+ current maintainers at <a href=
+ "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>.
+
+ <p>To join the ncurses mailing list, please write email to
+ <code>bug-ncurses-request@gnu.org</code> containing the line:</p>
+ <pre>
subscribe <name>@<host.domain>
-</PRE>
-
-This list is open to anyone interested in helping with the development and
-testing of this package.<P>
-
-Beta versions of ncurses and patches to the current release are made available at
-<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A> .
-
-<H2>Future Plans</H2>
-<UL>
-<LI>Extended-level XPG4 conformance, with internationalization support.
-<LI>Ports to more systems, including DOS and Windows.
-</UL>
-We need people to help with these projects. If you are interested in working
-on them, please join the ncurses list.
-
-<H2>Other Related Resources</H2>
-
-The distribution provides a newer version of the terminfo-format
-terminal description file once maintained by
-<A HREF="http://www.catb.org/~esr/terminfo/">Eric Raymond</A> .
-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.<P>
-
-You can find lots of information on terminal-related topics
-not covered in the terminfo file at
-<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
-archive</A> .
-</BODY>
-</HTML>
+</pre>
+
+ <p>This list is open to anyone interested in helping with the
+ development and testing of this package.</p>
+
+ <p>Beta versions of ncurses and patches to the current release
+ are made available at <a href=
+ "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a> .</p>
+
+ <h2>Future Plans</h2>
+
+ <ul>
+ <li>Extended-level XPG4 conformance, with internationalization
+ support.</li>
+
+ <li>Ports to more systems, including DOS and Windows.</li>
+ </ul>We need people to help with these projects. If you are
+ interested in working on them, please join the ncurses list.
+
+ <h2>Other Related Resources</h2>The distribution provides a newer
+ version of the terminfo-format terminal description file once
+ maintained by <a href="http://www.catb.org/~esr/terminfo/">Eric
+ Raymond</a> . 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.
+
+ <p>You can find lots of information on terminal-related topics
+ not covered in the terminfo file at <a href=
+ "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
+ Richard Shuford's archive</a> .</p>
+</body>
+</html>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description data-
- base.
+ /usr/share/terminfo Compiled terminal description
+ database.
</PRE>
has not mistakenly translated a completely unknown and
random capability and/or syntax error.
+
Nonstd Std From Terminfo
name name capability
-----------------------------------------------
EN @7 XENIX key_end
GE ae XENIX exit_alt_charset_mode
GS as XENIX enter_alt_charset_mode
- HM kh XENIX key_home
+ HM kh XENIX key_home
LD kL XENIX key_dl
PD kN XENIX key_npage
PN po XENIX prtr_off
bilities for forms drawing, designed to take advantage of
the IBM PC high-half graphics. They were as follows:
+
Cap Graphic
-----------------------------
G2 upper left
font0 s0ds
font1 s1ds
font2 s2ds
+
font3 s3ds
Additionally, the AIX <EM>box1</EM> capability will be automati-
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
ous character at that location is removed. A new
character specified by <EM>wch</EM> is placed at that location
with rendition specified by <EM>wch</EM>. The cursor then
- advances to the next spacing character on the screen.
+ advances to the next spacing character on the screen.
<STRONG>o</STRONG> If <EM>wch</EM> refers to a non-spacing character, all previous
- characters at that location are preserved. The non-
- spacing characters of <EM>wch</EM> are added to the spacing
- complex character, and the rendition specified by <EM>wch</EM>
+ characters at that location are preserved. The non-
+ spacing characters of <EM>wch</EM> are added to the spacing
+ complex character, and the rendition specified by <EM>wch</EM>
is ignored.
- <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline,
- backspace or other control character, the window is
- updated and the cursor moves as if <STRONG>addch</STRONG> were called.
+ <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline,
+ backspace or other control character, the window is
+ updated and the cursor moves as if <STRONG>addch</STRONG> were called.
The <STRONG>echo_wchar</STRONG> function is functionally equivalent to a
call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>. Similarly,
characters. These symbols correspond to the same VT100
line-drawing set as <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG>.
+
<EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM>
----------------------------------------------------------------
WACS_BLOCK 0x25ae # solid square block
WACS_BOARD 0x2592 # board of squares
WACS_BTEE 0x2534 + bottom tee
WACS_BULLET 0x00b7 o bullet
- WACS_CKBOARD 0x2592 : checker board (stipple)
+ WACS_CKBOARD 0x2592 : checker board (stipple)
WACS_DARROW 0x2193 v arrow pointing down
WACS_DEGREE 0x00b0 ' degree symbol
WACS_DIAMOND 0x25c6 + diamond
The wide-character configuration of ncurses also defines
symbols for thick- and double-lines:
+
<EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM>
---------------------------------------------------------------------
WACS_T_ULCORNER 0x250f + thick upper left corner
characters to the screen with routines of the <STRONG>addch</STRONG> fam-
ily. The default character listed below is used if the
<STRONG>acsc</STRONG> capability does not define a terminal-specific
- replacement for it. The names are taken from VT100 nomen-
- clature.
+ replacement for it. The names are taken from VT100
+ nomenclature.
+
<EM>Name</EM> <EM>Default</EM> <EM>Description</EM>
--------------------------------------------------
be passed to the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or
OR'd with the characters passed to <STRONG>addch</STRONG>.
+
<STRONG>A_NORMAL</STRONG> Normal display (no highlight)
<STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
<STRONG>A_UNDERLINE</STRONG> Underlining
the screen when changing the attributes. Use <STRONG>touchwin</STRONG> to
force the screen to match the updated attributes.
+
<STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
<STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
<STRONG>WA_UNDERLINE</STRONG> Underlining
be returned by the next call to <STRONG>wgetch</STRONG>. There is just one
input queue for all windows.
+
<STRONG>Function</STRONG> <STRONG>Keys</STRONG>
The following function keys, defined in <STRONG><curses.h></STRONG>, might
be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note
KEY_REPLACE Replace key
KEY_RESIZE Screen resized
KEY_RESTART Restart key
-
KEY_RESUME Resume key
+
KEY_SAVE Save key
KEY_SBEG Shifted beginning key
KEY_SCANCEL Shifted cancel key
sion of <STRONG>KEY_MOUSE</STRONG>.
+
</PRE>
<H2>RETURN VALUE</H2><PRE>
All routines return the integer <STRONG>ERR</STRONG> upon failure and an
Here are the mouse event type masks which may be defined:
+
<EM>Name</EM> <EM>Description</EM>
---------------------------------------------------------------------
BUTTON1_PRESSED mouse button 1 down
BUTTON2_RELEASED mouse button 2 up
BUTTON2_CLICKED mouse button 2 clicked
BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
+
+
BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
---------------------------------------------------------------------
-
BUTTON3_PRESSED mouse button 3 down
BUTTON3_RELEASED mouse button 3 up
BUTTON3_CLICKED mouse button 3 clicked
functions which improve the ability to manage multiple
screens. This feature can be added to any of the configu-
rations supported by ncurses; it adds new entrypoints
- without changing the meaning of any of the existing ones.
+ without changing the meaning of any of the existing ones.
+
<STRONG>IMPROVED</STRONG> <STRONG>FUNCTIONS</STRONG>
- Most of the functions are new versions of existing func-
+ Most of the functions are new versions of existing func-
tions. A parameter is added at the front of the parameter
list. It is a SCREEN pointer.
- The existing functions all use the current screen, which
- is a static variable. The extended functions use the
+ The existing functions all use the current screen, which
+ is a static variable. The extended functions use the
specified screen, thereby reducing the number of variables
which must be modified to update multiple screens.
Here are the new functions:
ceiling_panel
- this returns a pointer to the topmost panel in the
+ this returns a pointer to the topmost panel in the
given screen.
ground_panel
- this returns a pointer to the lowest panel in the
+ this returns a pointer to the lowest panel in the
given screen.
new_prescr
- when creating a new screen, the library uses static
- variables which have been preset, e.g., by
+ when creating a new screen, the library uses static
+ variables which have been preset, e.g., by
<STRONG><A HREF="use_env.3x.html">use_env(3x)</A></STRONG>, <STRONG><A HREF="filter.3x.html">filter(3x)</A></STRONG>, etc. With the screen-point-
er extension, there are situations where it must cre-
- ate a current screen before the unextended library
- does. The <STRONG>new_prescr</STRONG> function is used internally to
+ ate a current screen before the unextended library
+ does. The <STRONG>new_prescr</STRONG> function is used internally to
handle these cases. It is also provided as an entry-
- point to allow applications to customize the library
+ point to allow applications to customize the library
initialization.
This extension introduces some new names:
NCURSES_SP_FUNCS
- This is set to the library patch-level number. In
- the unextended library, this is zero (0), to make it
+ This is set to the library patch-level number. In
+ the unextended library, this is zero (0), to make it
useful for checking if the extension is provided.
NCURSES_SP_NAME
- The new functions are named using the macro <EM>NCURS-</EM>
- <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
+ The new functions are named using the macro <EM>NCURS-</EM>
+ <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
Currently this adds a "_sp" suffix to the name of the
- unextended function. This manual page indexes the
+ unextended function. This manual page indexes the
extensions showing the full name. However the proper
- usage of these functions uses the macro, to provide
+ usage of these functions uses the macro, to provide
for the possibility of changing the naming convention
for specific library configurations.
NCURSES_SP_OUTC
- This is a new function-pointer type to use in the
- screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
+ This is a new function-pointer type to use in the
+ screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
used in the unextended library.
NCURSES_OUTC
- This is a function-pointer type used for the cases
- where a function passes characters to the output
+ This is a function-pointer type used for the cases
+ where a function passes characters to the output
stream, e.g., <STRONG><A HREF="vidputs.3x.html">vidputs(3x)</A></STRONG>.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on ncurses ex-
+ These routines are specific to ncurses. They were not
+ supported on Version 7, BSD or System V implementations.
+ It is recommended that any code depending on ncurses ex-
tensions be conditioned using <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>.
If a given terminal does not support a video attribute
that an application program is trying to use, <STRONG>curses</STRONG> may
- substitute a different video attribute for it. The <STRONG>ter-</STRONG>
- <STRONG>mattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of all
- video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG> and
- <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is useful
- when a <STRONG>curses</STRONG> program needs complete control over the
+ substitute a different video attribute for it. The
+ <STRONG>termattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of
+ all video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG>
+ and <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is use-
+ ful when a <STRONG>curses</STRONG> program needs complete control over the
appearance of the screen.
The <STRONG>termname</STRONG> routine returns the terminal name used by
<EM>terminfo</EM> database will be used, even if environment vari-
ables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> (used by default) are set, or if
<STRONG>curses</STRONG> is running in a window (in which case default be-
- havior would be to use the window size if <STRONG>LINES</STRONG> and <STRONG>COL-</STRONG>
- <STRONG>UMNS</STRONG> are not set). Note that setting <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
+ havior would be to use the window size if <STRONG>LINES</STRONG> and
+ <STRONG>COLUMNS</STRONG> are not set). Note that setting <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
overrides the corresponding size which may be obtained
from the operating system.
</PRE>
<H2>SEE ALSO</H2><PRE>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
When configured for wide characters, <STRONG>field_buffer</STRONG> returns
a pointer to temporary storage (allocated and freed by the
library). The application should not attempt to modify
- the data. It will be freed on the next call to <STRONG>field_buf-</STRONG>
- <STRONG>fer</STRONG> to return the same buffer. <STRONG><curses.h></STRONG>.
+ the data. It will be freed on the next call to
+ <STRONG>field_buffer</STRONG> to return the same buffer. <STRONG><curses.h></STRONG>.
</PRE>
<STRONG>REQ_PREV_CHOICE</STRONG> assume that the possible values of a field
form an ordered set, and provide the forms user with a way
to move through the set. The <STRONG>set_fieldtype_choice</STRONG> func-
- tion allows forms programmers to define successor and pre-
- decessor functions for the field type. These functions
+ tion allows forms programmers to define successor and
+ predecessor functions for the field type. These functions
take the field pointer and an argument-block structure as
arguments.
<STRONG>Default</STRONG> <STRONG>Options</STRONG>
If no options are specified and zero or one <EM>termnames</EM> are
specified, the <STRONG>-I</STRONG> option will be assumed. If more than
- one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
+ one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
<STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG>
- <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
- terminal <EM>termname</EM> with each of the descriptions given by
- the entries for the other terminal's <EM>termnames</EM>. If a
- capability is defined for only one of the terminals, the
- value returned will depend on the type of the capability:
- <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
+ <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
+ terminal <EM>termname</EM> with each of the descriptions given by
+ the entries for the other terminal's <EM>termnames</EM>. If a
+ capability is defined for only one of the terminals, the
+ value returned will depend on the type of the capability:
+ <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
<STRONG>NULL</STRONG> for string variables.
- The <STRONG>-d</STRONG> option produces a list of each capability that is
- different between two entries. This option is useful to
- show the difference between two entries, created by dif-
+ The <STRONG>-d</STRONG> option produces a list of each capability that is
+ different between two entries. This option is useful to
+ show the difference between two entries, created by dif-
ferent people, for the same or similar terminals.
- The <STRONG>-c</STRONG> option produces a list of each capability that is
+ The <STRONG>-c</STRONG> option produces a list of each capability that is
common between two entries. Capabilities that are not set
- are ignored. This option can be used as a quick check to
+ are ignored. This option can be used as a quick check to
see if the <STRONG>-u</STRONG> option is worth using.
- The <STRONG>-n</STRONG> option produces a list of each capability that is
+ The <STRONG>-n</STRONG> option produces a list of each capability that is
in neither entry. If no <EM>termnames</EM> are given, the environ-
ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>.
- This can be used as a quick check to see if anything was
+ This can be used as a quick check to see if anything was
left out of a description.
<STRONG>Source</STRONG> <STRONG>Listing</STRONG> <STRONG>Options</STRONG> <STRONG>[-I]</STRONG> <STRONG>[-L]</STRONG> <STRONG>[-C]</STRONG> <STRONG>[-r]</STRONG>
- The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
+ The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
for each terminal named.
<STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
<STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
<STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
+ If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
will be used for the terminal name.
- The source produced by the <STRONG>-C</STRONG> option may be used directly
- as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
+ The source produced by the <STRONG>-C</STRONG> option may be used directly
+ as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
be changed to the <STRONG>termcap</STRONG> format. <STRONG>infocmp</STRONG> will attempt to
- convert most of the parameterized information, and any-
- thing not converted will be plainly marked in the output
+ convert most of the parameterized information, and any-
+ thing not converted will be plainly marked in the output
and commented out. These should be edited by hand.
- All padding information for strings will be collected
- together and placed at the beginning of the string where
- <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
+ All padding information for strings will be collected
+ together and placed at the beginning of the string where
+ <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
tion with a trailing '/') will become optional.
All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but
which are derivable from other <STRONG>terminfo</STRONG> variables, will be
output. Not all <STRONG>terminfo</STRONG> capabilities will be translated;
- only those variables which were part of <STRONG>termcap</STRONG> will nor-
- mally be output. Specifying the <STRONG>-r</STRONG> option will take off
- this restriction, allowing all capabilities to be output
+ only those variables which were part of <STRONG>termcap</STRONG> will nor-
+ mally be output. Specifying the <STRONG>-r</STRONG> option will take off
+ this restriction, allowing all capabilities to be output
in <EM>termcap</EM> form.
Note that because padding is collected to the beginning of
- the capability, not all capabilities are output. Manda-
- tory padding is not supported. Because <STRONG>termcap</STRONG> strings
- are not as flexible, it is not always possible to convert
- a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
- format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
- into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
+ the capability, not all capabilities are output. Manda-
+ tory padding is not supported. Because <STRONG>termcap</STRONG> strings
+ are not as flexible, it is not always possible to convert
+ a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
+ format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
+ into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
original <STRONG>terminfo</STRONG> source.
- Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
- equivalents, and some terminal types which commonly have
+ Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
+ equivalents, and some terminal types which commonly have
such sequences, are:
<STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
<STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG> <STRONG>%r</STRONG> hp
<STRONG>Use=</STRONG> <STRONG>Option</STRONG> <STRONG>[-u]</STRONG>
- The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
- the first terminal <EM>termname</EM> which is relative to the sum
- of the descriptions given by the entries for the other
- terminals <EM>termnames</EM>. It does this by analyzing the dif-
- ferences between the first <EM>termname</EM> and the other
+ The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
+ the first terminal <EM>termname</EM> which is relative to the sum
+ of the descriptions given by the entries for the other
+ terminals <EM>termnames</EM>. It does this by analyzing the dif-
+ ferences between the first <EM>termname</EM> and the other
<EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> fields for
- the other terminals. In this manner, it is possible to
- retrofit generic terminfo entries into a terminal's
+ the other terminals. In this manner, it is possible to
+ retrofit generic terminfo entries into a terminal's
description. Or, if two similar terminals exist, but were
- coded at different times or by different people so that
+ coded at different times or by different people so that
each description is a full description, using <STRONG>infocmp</STRONG> will
show what can be done to change one description to be rel-
ative to the other.
A capability will get printed with an at-sign (@) if it no
- longer exists in the first <EM>termname</EM>, but one of the other
- <EM>termname</EM> entries contains a value for it. A capability's
- value gets printed if the value in the first <EM>termname</EM> is
- not found in any of the other <EM>termname</EM> entries, or if the
+ longer exists in the first <EM>termname</EM>, but one of the other
+ <EM>termname</EM> entries contains a value for it. A capability's
+ value gets printed if the value in the first <EM>termname</EM> is
+ not found in any of the other <EM>termname</EM> entries, or if the
first of the other <EM>termname</EM> entries that has this capabil-
- ity gives a different value for the capability than that
+ ity gives a different value for the capability than that
in the first <EM>termname</EM>.
- The order of the other <EM>termname</EM> entries is significant.
- Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
+ The order of the other <EM>termname</EM> entries is significant.
+ Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
of the capabilities, specifying two <STRONG>use=</STRONG> entries that con-
tain differing entries for the same capabilities will pro-
- duce different results depending on the order that the
- entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
- sistencies between the other <EM>termname</EM> entries as they are
+ duce different results depending on the order that the
+ entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
+ sistencies between the other <EM>termname</EM> entries as they are
found.
- Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
+ Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
that contains that capability will cause the second speci-
- fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
+ fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
description can be a useful check to make sure that every-
- thing was specified correctly in the original source
+ thing was specified correctly in the original source
description.
- Another error that does not cause incorrect compiled
- files, but will slow down the compilation time, is speci-
- fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
- will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
+ Another error that does not cause incorrect compiled
+ files, but will slow down the compilation time, is speci-
+ fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
+ will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
needed.
<STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
- The location of the compiled <STRONG>terminfo</STRONG> database is taken
- from the environment variable <STRONG>TERMINFO</STRONG> . If the variable
+ The location of the compiled <STRONG>terminfo</STRONG> database is taken
+ from the environment variable <STRONG>TERMINFO</STRONG> . If the variable
is not defined, or the terminal is not found in that loca-
- tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG>
+ tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG>
<STRONG>minfo</STRONG>, will be used. The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to
- override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
+ override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG>
- for the other <EM>termnames</EM>. With this, it is possible to
- compare descriptions for a terminal with the same name
- located in two different databases. This is useful for
- comparing descriptions for the same terminal created by
+ for the other <EM>termnames</EM>. With this, it is possible to
+ compare descriptions for a terminal with the same name
+ located in two different databases. This is useful for
+ comparing descriptions for the same terminal created by
different people.
<STRONG>Other</STRONG> <STRONG>Options</STRONG>
- <STRONG>-1</STRONG> causes the fields to be printed out one to a line.
- Otherwise, the fields will be printed several to a
+ <STRONG>-1</STRONG> causes the fields to be printed out one to a line.
+ Otherwise, the fields will be printed several to a
line to a maximum width of 60 characters.
- <STRONG>-a</STRONG> tells <STRONG>infocmp</STRONG> to retain commented-out capabilities
- rather than discarding them. Capabilities are com-
+ <STRONG>-a</STRONG> tells <STRONG>infocmp</STRONG> to retain commented-out capabilities
+ rather than discarding them. Capabilities are com-
mented by prefixing them with a period.
<STRONG>-E</STRONG> Dump the capabilities of the given terminal as
- tables, needed in the C initializer for a TERMTYPE
- structure (the terminal capability structure in the
- <STRONG><term.h></STRONG>). This option is useful for preparing ver-
- sions of the curses library hardwired for a given
- terminal type. The tables are all declared static,
- and are named according to the type and the name of
+ tables, needed in the C initializer for a TERMTYPE
+ structure (the terminal capability structure in the
+ <STRONG><term.h></STRONG>). This option is useful for preparing ver-
+ sions of the curses library hardwired for a given
+ terminal type. The tables are all declared static,
+ and are named according to the type and the name of
the corresponding terminal entry.
- Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
- options was not needed; but support for extended
+ Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
+ options was not needed; but support for extended
names required making the arrays of terminal capabil-
ities separate from the TERMTYPE structure.
- <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
- initializer for a TERMTYPE structure (the terminal
- capability structure in the <STRONG><term.h></STRONG>). This option
+ <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
+ initializer for a TERMTYPE structure (the terminal
+ capability structure in the <STRONG><term.h></STRONG>). This option
is useful for preparing versions of the curses
library hardwired for a given terminal type.
- <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
- lowing arguments are filenames. The files are
- searched for pairwise matches between entries, with
+ <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
+ lowing arguments are filenames. The files are
+ searched for pairwise matches between entries, with
two entries considered to match if any of their names
- do. The report printed to standard output lists
- entries with no matches in the other file, and
- entries with more than one match. For entries with
- exactly one match it includes a difference report.
- Normally, to reduce the volume of the report, use
- references are not resolved before looking for dif-
+ do. The report printed to standard output lists
+ entries with no matches in the other file, and
+ entries with more than one match. For entries with
+ exactly one match it includes a difference report.
+ Normally, to reduce the volume of the report, use
+ references are not resolved before looking for dif-
ferences, but resolution can be forced by also speci-
fying <STRONG>-r</STRONG>.
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
+ <STRONG>-f</STRONG> Display complex terminfo strings which contain
if/then/else/endif expressions indented for readabil-
ity.
<STRONG>-G</STRONG> Display constant literals in decimal form rather than
their character equivalents.
- <STRONG>-g</STRONG> Display constant character literals in quoted form
+ <STRONG>-g</STRONG> Display constant character literals in quoted form
rather than their decimal equivalents.
<STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset
- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
- string, the code tries to analyze it into actions in
+ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
+ string, the code tries to analyze it into actions in
terms of the other capabilities in the entry, certain
- X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
- VT-series private modes (the set of recognized spe-
- cial sequences has been selected for completeness
- over the existing terminfo database). Each report
- line consists of the capability name, followed by a
+ X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
+ VT-series private modes (the set of recognized spe-
+ cial sequences has been selected for completeness
+ over the existing terminfo database). Each report
+ line consists of the capability name, followed by a
colon and space, followed by a printable expansion of
- the capability string with sections matching recog-
- nized actions translated into {}-bracketed descrip-
- tions. Here is a list of the DEC/ANSI special
+ the capability string with sections matching recog-
+ nized actions translated into {}-bracketed descrip-
+ tions. Here is a list of the DEC/ANSI special
sequences recognized: i.
Action Meaning
DEC[+-]AWM wraparound mode
DEC[+-]ARM auto-repeat mode
- It also recognizes a SGR action corresponding to
- ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
- values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
- All but NORMAL may be prefixed with `+' (turn on) or
+ It also recognizes a SGR action corresponding to
+ ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
+ values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
+ All but NORMAL may be prefixed with `+' (turn on) or
`-' (turn off).
An SGR0 designates an empty highlight sequence (equivalent
</PRE>
<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description data-
- base.
+ /usr/share/terminfo Compiled terminal description
+ database.
</PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
</PRE>
<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description data-
- base.
+ /usr/share/terminfo Compiled terminal description
+ database.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
</PRE>
<H2>SEE ALSO</H2><PRE>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
Clear the menu pattern buffer.
REQ_BACK_PATTERN
- Delete the previous character from the pattern buf-
- fer.
+ Delete the previous character from the pattern
+ buffer.
REQ_NEXT_MATCH
Move to the next item matching the pattern match.
REQ_PREV_MATCH
Move to the previous item matching the pattern match.
- If the second argument is a printable character, the code
- appends it to the pattern buffer and attempts to move to
- the next item matching the new pattern. If there is no
+ If the second argument is a printable character, the code
+ appends it to the pattern buffer and attempts to move to
+ the next item matching the new pattern. If there is no
such match, <STRONG>menu_driver</STRONG> returns <STRONG>E_NO_MATCH</STRONG> and deletes the
appended character from the buffer.
- If the second argument is one of the above pre-defined
+ If the second argument is one of the above pre-defined
requests, the corresponding action is performed.
<STRONG>MOUSE</STRONG> <STRONG>HANDLING</STRONG>
- If the second argument is the KEY_MOUSE special key, the
+ If the second argument is the KEY_MOUSE special key, the
associated mouse event is translated into one of the above
- pre-defined requests. Currently only clicks in the user
- window (e.g., inside the menu display area or the decora-
+ pre-defined requests. Currently only clicks in the user
+ window (e.g., inside the menu display area or the decora-
tion window) are handled.
If you click above the display region of the menu:
<STRONG>o</STRONG> a REQ_LAST_ITEM is generated for a triple-click.
- If you click at an item inside the display area of the
+ If you click at an item inside the display area of the
menu:
<STRONG>o</STRONG> the menu cursor is positioned to that item.
- <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen-
+ <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen-
erated and <STRONG>E_UNKNOWN_COMMAND</STRONG> is returned. This return
- value makes sense, because a double click usually
+ value makes sense, because a double click usually
means that an item-specific action should be returned.
It is exactly the purpose of this return value to sig-
- nal that an application specific command should be
+ nal that an application specific command should be
executed.
- <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG>
+ <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG>
returns the result of this request.
- If you clicked outside the user window or the mouse event
- could not be translated into a menu request an
+ If you clicked outside the user window or the mouse event
+ could not be translated into a menu request an
<STRONG>E_REQUEST_DENIED</STRONG> is returned.
<STRONG>APPLICATION-DEFINED</STRONG> <STRONG>COMMANDS</STRONG>
If the second argument is neither printable nor one of the
- above pre-defined menu requests or KEY_MOUSE, the drive
- assumes it is an application-specific command and returns
+ above pre-defined menu requests or KEY_MOUSE, the drive
+ assumes it is an application-specific command and returns
<STRONG>E_UNKNOWN_COMMAND</STRONG>. Application-defined commands should be
- defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of
+ defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of
these pre-defined requests.
System error occurred (see <STRONG>errno</STRONG>).
<STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
+ Routine detected an incorrect or out-of-range argu-
ment.
<STRONG>E_BAD_STATE</STRONG>
</PRE>
<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions. The sup-
+ These routines emulate the System V menu library. They
+ were not supported on Version 7 or BSD versions. The sup-
port for mouse events is ncurses specific.
</PRE>
<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
+ Juergen Pfeifer. Manual pages and adaptation for new
curses by Eric S. Raymond.
sonable optimization. This implementation is ``new
curses'' (ncurses) and is the approved replacement for
4.4BSD classic curses, which has been discontinued. This
- describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
The <STRONG>ncurses</STRONG> library emulates the curses library of System
V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
Among those, the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
More general versions of these routines are included with
names beginning with <STRONG>w</STRONG>, allowing the user to specify a
- window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
+ window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
- After using routines to manipulate a window, <STRONG>refresh</STRONG> is
- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
- like <STRONG>stdscr</STRONG>. The characters in a window are actually of
- type <STRONG>chtype</STRONG>, (character and attribute data) so that other
- information about the character may also be stored with
+ After using routines to manipulate a window, <STRONG>refresh</STRONG> is
+ called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
+ like <STRONG>stdscr</STRONG>. The characters in a window are actually of
+ type <STRONG>chtype</STRONG>, (character and attribute data) so that other
+ information about the character may also be stored with
each character.
- Special windows called <EM>pads</EM> may also be manipulated.
+ Special windows called <EM>pads</EM> may also be manipulated.
These are windows which are not constrained to the size of
- the screen and whose contents need not be completely dis-
+ the screen and whose contents need not be completely dis-
played. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more information.
- In addition to drawing characters on the screen, video
- attributes and colors may be supported, causing the char-
- acters to show up in such modes as underlined, in reverse
- video, or in color on terminals that support such display
+ In addition to drawing characters on the screen, video
+ attributes and colors may be supported, causing the char-
+ acters to show up in such modes as underlined, in reverse
+ video, or in color on terminals that support such display
enhancements. Line drawing characters may be specified to
- be output. On input, <STRONG>curses</STRONG> is also able to translate
- arrow and function keys that transmit escape sequences
- into single values. The video attributes, line drawing
- characters, and input values use names, defined in
+ be output. On input, <STRONG>curses</STRONG> is also able to translate
+ arrow and function keys that transmit escape sequences
+ into single values. The video attributes, line drawing
+ characters, and input values use names, defined in
<STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
- if the program is executing in a window environment, line
- and column information in the environment will override
+ if the program is executing in a window environment, line
+ and column information in the environment will override
information read by <EM>terminfo</EM>. This would affect a program
- running in an AT&T 630 layer, for example, where the size
+ running in an AT&T 630 layer, for example, where the size
of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
- gram using <STRONG>curses</STRONG> checks for a local terminal definition
- before checking in the standard place. For example, if
+ If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
+ gram using <STRONG>curses</STRONG> checks for a local terminal definition
+ before checking in the standard place. For example, if
<STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini-
tion is found in
<STRONG>/usr/share/terminfo/a/att4424</STRONG>.
(The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
+ creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
<STRONG>$HOME/myterms/a/att4424</STRONG>,
<STRONG>/usr/share/terminfo/a/att4424</STRONG>.
- This is useful for developing experimental definitions or
+ This is useful for developing experimental definitions or
when write permission in <STRONG>/usr/share/terminfo</STRONG> is not avail-
able.
- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
- <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
+ The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
+ <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val-
ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
+ The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
<STRONG>curscr</STRONG> which is used for certain low-level operations like
- clearing and redrawing a screen containing garbage. The
+ clearing and redrawing a screen containing garbage. The
<STRONG>curscr</STRONG> can be used in only a few routines.
<STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
- Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
+ Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
out a prefix generally use <STRONG>stdscr</STRONG>.
The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
- to move to before performing the appropriate action. The
- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
- other routine. The coordinate <EM>y</EM> always refers to the row
- (of the window), and <EM>x</EM> always refers to the column. The
+ to move to before performing the appropriate action. The
+ <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
+ other routine. The coordinate <EM>y</EM> always refers to the row
+ (of the window), and <EM>x</EM> always refers to the column. The
upper left-hand corner is always (0,0), not (1,1).
The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
+ and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
specified before the coordinates.
- In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
+ In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG>
<STRONG>DOW</STRONG>.
Option setting routines require a Boolean flag <EM>bf</EM> with the
- value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
- the data types used in the library routines, such as <STRONG>WIN-</STRONG>
- <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG><curses.h></STRONG>.
- Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
+ value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
+ the data types used in the library routines, such as <STRONG>WIN-</STRONG>
+ <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG><curses.h></STRONG>.
+ Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
defined in <STRONG><term.h></STRONG>.
- This manual page describes functions which may appear in
- any configuration of the library. There are two common
+ This manual page describes functions which may appear in
+ any configuration of the library. There are two common
configurations of the library:
ncurses
the "normal" library, which handles 8-bit
characters. The normal (8-bit) library stores
- characters combined with attributes in <STRONG>chtype</STRONG>
+ characters combined with attributes in <STRONG>chtype</STRONG>
data.
- Attributes alone (no corresponding character)
- may be stored in <STRONG>chtype</STRONG> or the equivalent
- <STRONG>attr_t</STRONG> data. In either case, the data is
+ Attributes alone (no corresponding character)
+ may be stored in <STRONG>chtype</STRONG> or the equivalent
+ <STRONG>attr_t</STRONG> data. In either case, the data is
stored in something like an integer.
- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
+ Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
stored as a <STRONG>chtype</STRONG>.
ncursesw
- the so-called "wide" library, which handles
- multibyte characters (see the section on
+ the so-called "wide" library, which handles
+ multibyte characters (see the section on
<STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide" library
- includes all of the calls from the "normal"
- library. It adds about one third more calls
+ includes all of the calls from the "normal"
+ library. It adds about one third more calls
using data types which store multibyte charac-
ters:
<STRONG>cchar_t</STRONG>
- corresponds to <STRONG>chtype</STRONG>. However it is a
- structure, because more data is stored
- than can fit into an integer. The char-
+ corresponds to <STRONG>chtype</STRONG>. However it is a
+ structure, because more data is stored
+ than can fit into an integer. The char-
acters are large enough to require a full
- integer value - and there may be more
- than one character per cell. The video
- attributes and color are stored in sepa-
+ integer value - and there may be more
+ than one character per cell. The video
+ attributes and color are stored in sepa-
rate fields of the structure.
Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
stored as a <STRONG>cchar_t</STRONG>.
<STRONG>wchar_t</STRONG>
- stores a "wide" character. Like <STRONG>chtype</STRONG>,
+ stores a "wide" character. Like <STRONG>chtype</STRONG>,
this may be an integer.
<STRONG>wint_t</STRONG>
- stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
+ stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
though both may have the same size.
The "wide" library provides new functions
- which are analogous to functions in the "nor-
- mal" library. There is a naming convention
- which relates many of the normal/wide vari-
- ants: a "_w" is inserted into the name. For
+ which are analogous to functions in the "nor-
+ mal" library. There is a naming convention
+ which relates many of the normal/wide vari-
+ ants: a "_w" is inserted into the name. For
example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
+
<STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
The following table lists each <STRONG>curses</STRONG> routine and the name
- of the manual page on which it is described. Routines
- flagged with `*' are ncurses-specific, not described by
+ of the manual page on which it is described. Routines
+ flagged with `*' are ncurses-specific, not described by
XPG4 or present in SVr4.
+
<STRONG>curses</STRONG> Routine Name Manual Page Name
--------------------------------------------
COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
_nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
+
_nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
_nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
-
_traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+
endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
-
erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+
is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
-
is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+
mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
-
mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+
prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
-
putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+
touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
-
tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+
wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
-
whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
- and an integer value other than <STRONG>ERR</STRONG> upon successful com-
- pletion, unless otherwise noted in the routine descrip-
+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure
+ and an integer value other than <STRONG>ERR</STRONG> upon successful com-
+ pletion, unless otherwise noted in the routine descrip-
tions.
- All macros return the value of the <STRONG>w</STRONG> version, except
+ All macros return the value of the <STRONG>w</STRONG> version, except
<STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
- return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+ return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
as the right-hand side of assignment statements).
important ones have been already discussed in detail.
BAUDRATE
- The debugging library checks this environment symbol
+ The debugging library checks this environment symbol
when the application has redirected output to a file.
- The symbol's numeric value is used for the baudrate.
+ The symbol's numeric value is used for the baudrate.
If no value is found, <STRONG>ncurses</STRONG> uses 9600. This allows
- testers to construct repeatable test-cases that take
+ testers to construct repeatable test-cases that take
into account costs that depend on baudrate.
CC When set, change occurrences of the command_character
- (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
- entries to the value of this symbol. Very few ter-
+ (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
+ entries to the value of this symbol. Very few ter-
minfo entries provide this feature.
- Because this name is also used in development envi-
- ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
+ Because this name is also used in development envi-
+ ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
ignores it if it does not happen to be a single char-
acter.
COLUMNS
Specify the width of the screen in characters.
- Applications running in a windowing environment usu-
- ally are able to obtain the width of the window in
- which they are executing. If neither the <STRONG>COLUMNS</STRONG>
- value nor the terminal's screen size is available,
- <STRONG>ncurses</STRONG> uses the size which may be specified in the
+ Applications running in a windowing environment usu-
+ ally are able to obtain the width of the window in
+ which they are executing. If neither the <STRONG>COLUMNS</STRONG>
+ value nor the terminal's screen size is available,
+ <STRONG>ncurses</STRONG> uses the size which may be specified in the
terminfo database (i.e., the <STRONG>cols</STRONG> capability).
- It is important that your application use a correct
- size for the screen. This is not always possible
- because your application may be running on a host
- which does not honor NAWS (Negotiations About Window
- Size), or because you are temporarily running as
- another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
+ It is important that your application use a correct
+ size for the screen. This is not always possible
+ because your application may be running on a host
+ which does not honor NAWS (Negotiations About Window
+ Size), or because you are temporarily running as
+ another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
overrides the library's use of the screen size
obtained from the operating system.
- Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
- independently. This is mainly useful to circumvent
- legacy misfeatures of terminal descriptions, e.g.,
+ Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
+ independently. This is mainly useful to circumvent
+ legacy misfeatures of terminal descriptions, e.g.,
xterm which commonly specifies a 65 line screen. For
- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
+ best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
in a terminal description for terminals which are run
as emulations.
the screen size.
ESCDELAY
- Specifies the total time, in milliseconds, for which
- ncurses will await a character sequence, e.g., a
- function key. The default value, 1000 milliseconds,
+ Specifies the total time, in milliseconds, for which
+ ncurses will await a character sequence, e.g., a
+ function key. The default value, 1000 milliseconds,
is enough for most uses. However, it is made a vari-
able to accommodate unusual applications.
The most common instance where you may wish to change
- this value is to work with slow hosts, e.g., running
- on a network. If the host cannot read characters
- rapidly enough, it will have the same effect as if
- the terminal did not send characters rapidly enough.
+ this value is to work with slow hosts, e.g., running
+ on a network. If the host cannot read characters
+ rapidly enough, it will have the same effect as if
+ the terminal did not send characters rapidly enough.
The library will still see a timeout.
- Note that xterm mouse events are built up from char-
- acter sequences received from the xterm. If your
+ Note that xterm mouse events are built up from char-
+ acter sequences received from the xterm. If your
application makes heavy use of multiple-clicking, you
- may wish to lengthen this default value because the
- timeout applies to the composed multi-click event as
+ may wish to lengthen this default value because the
+ timeout applies to the composed multi-click event as
well as the individual clicks.
- In addition to the environment variable, this imple-
- mentation provides a global variable with the same
+ In addition to the environment variable, this imple-
+ mentation provides a global variable with the same
name. Portable applications should not rely upon the
- presence of ESCDELAY in either form, but setting the
- environment variable rather than the global variable
- does not create problems when compiling an applica-
+ presence of ESCDELAY in either form, but setting the
+ environment variable rather than the global variable
+ does not create problems when compiling an applica-
tion.
- HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
+ HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
where it may read and write auxiliary terminal
descriptions:
$HOME/.terminfo
LINES
- Like COLUMNS, specify the height of the screen in
- characters. See COLUMNS for a detailed description.
+ Like COLUMNS, specify the height of the screen in
+ characters. See COLUMNS for a detailed description.
MOUSE_BUTTONS_123
This applies only to the OS/2 EMX port. It specifies
--with-profile
The shared and normal (static) library names differ
- by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libn-</STRONG>
- <STRONG>curses.a</STRONG>. The debug and profiling libraries add a
- "_g" and a "_p" to the root names respectively, e.g.,
- <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
+ by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and
+ <STRONG>libncurses.a</STRONG>. The debug and profiling libraries add
+ a "_g" and a "_p" to the root names respectively,
+ e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
--with-trace
The <STRONG>trace</STRONG> function normally resides in the debug
<STRONG>o</STRONG> This implementation can also be configured to provide
a set of functions which improve the ability to manage
- multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
+ multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
- In historic curses versions, delays embedded in the capa-
+ In historic curses versions, delays embedded in the capa-
bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
- delay bits in the UNIX tty driver. In this implementa-
- tion, all padding is done by sending NUL bytes. This
- method is slightly more expensive, but narrows the inter-
- face to the UNIX kernel significantly and increases the
+ delay bits in the UNIX tty driver. In this implementa-
+ tion, all padding is done by sending NUL bytes. This
+ method is slightly more expensive, but narrows the inter-
+ face to the UNIX kernel significantly and increases the
package's portability correspondingly.
</PRE>
<H2>NOTES</H2><PRE>
- The header file <STRONG><curses.h></STRONG> automatically includes the
+ The header file <STRONG><curses.h></STRONG> automatically includes the
header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
- If standard output from a <STRONG>ncurses</STRONG> program is re-directed
- to something which is not a tty, screen updates will be
+ If standard output from a <STRONG>ncurses</STRONG> program is re-directed
+ to something which is not a tty, screen updates will be
directed to standard error. This was an undocumented fea-
ture of AT&T System V Release 3 curses.
</PRE>
<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
Based on pcurses by Pavel Curtis.
<STRONG>--terminfo-dirs</STRONG>
echos the $TERMINFO_DIRS directory list, e.g.,
- /usr/share/terminfo
+ /usr/local/ncurses/lib/terminfo:/usr/share/terminfo
<STRONG>--termpath</STRONG>
echos the $TERMPATH termcap list, if support for
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
<H2>DIAGNOSTICS</H2><PRE>
- Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
- error occurs. Each routine that returns an int value
+ Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
+ error occurs. Each routine that returns an int value
returns <STRONG>OK</STRONG> if it executes successfully and <STRONG>ERR</STRONG> if not.
</PRE>
<H2>COMPATIBILITY</H2><PRE>
- Reasonable care has been taken to ensure compatibility
- with the native panel facility introduced in SVr3.2
- (inspection of the SVr4 manual pages suggests the program-
- ming interface is unchanged). The <STRONG>PANEL</STRONG> data structures
- are merely similar. The programmer is cautioned not to
- directly use <STRONG>PANEL</STRONG> fields.
-
- The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
- in this implementation, and work equally well with dis-
+ Reasonable care has been taken to ensure compatibility
+ with the native panel facility introduced in SVr3.2
+ (inspection of the SVr4 manual pages suggests the
+ programming interface is unchanged). The <STRONG>PANEL</STRONG> data
+ structures are merely similar. The programmer is cau-
+ tioned not to directly use <STRONG>PANEL</STRONG> fields.
+
+ The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
+ in this implementation, and work equally well with dis-
played or hidden panels. In the native System V implemen-
tation, <STRONG>show_panel()</STRONG> is intended for making a hidden panel
- visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
- intended for making an already-visible panel move to the
- top of the stack. You are cautioned to use the correct
- function to ensure compatibility with native panel
+ visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
+ intended for making an already-visible panel move to the
+ top of the stack. You are cautioned to use the correct
+ function to ensure compatibility with native panel
libraries.
</PRE>
<H2>NOTE</H2><PRE>
- In your library list, libpanel.a should be before libn-
- curses.a; that is, you want to say `-lpanel -lncurses',
+ In your library list, libpanel.a should be before libn-
+ curses.a; that is, you want to say `-lpanel -lncurses',
not the other way around (which would usually give a link-
error).
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
<H2>AUTHOR</H2><PRE>
- Originally written by Warren Tucker <wht@n4hgf.mt-
- park.ga.us>, primarily to assist in porting u386mon to
- systems without a native panels library. Repackaged for
+ Originally written by Warren Tucker <wht@n4hgf.mt-
+ park.ga.us>, primarily to assist in porting u386mon to
+ systems without a native panels library. Repackaged for
ncurses by Zeyd ben-Halim.
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
the tty device and baud rate.
Setting your own <STRONG>TERM</STRONG> value may also be useful if you have
- created a custom entry incorporating options (such as vis-
- ual bell or reverse-video) which you wish to override the
- system default type for your line.
+ created a custom entry incorporating options (such as
+ visual bell or reverse-video) which you wish to override
+ the system default type for your line.
Terminal type descriptions are stored as files of capabil-
ity data underneath /usr/share/terminfo. To browse a list
nals by giving a set of capabilities which they have, by
specifying how to perform screen operations, and by speci-
fying padding requirements and initialization sequences.
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
fields (embedded commas may be escaped with a backslash or
vt100-w. The following suffixes should be used where pos-
sible:
+
<STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
-<EM>nn</EM> Number of lines on the screen aaa-60
-<EM>n</EM>p Number of pages of memory c100-4p
-ns No status line hp2626-ns
-rv Reverse video c100-rv
-s Enable status line vt100-s
- -vb Use visible bell instead of beep wy370-vb
+ -vb Use visible bell instead of beep wy370-vb
-w Wide mode (> 80 columns, usually 132) vt100-w
For more on terminal naming conventions, see the <STRONG>term(7)</STRONG>
These are the boolean capabilities:
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- auto_left_margin bw bw cub1 wraps from col-
+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+ <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
+ auto_left_margin bw bw cub1 wraps from col-
umn 0 to last column
- auto_right_margin am am terminal has auto-
+ auto_right_margin am am terminal has auto-
matic margins
- back_color_erase bce ut screen erased with
+ back_color_erase bce ut screen erased with
background color
- can_change ccc cc terminal can re-
+ can_change ccc cc terminal can re-
define existing col-
ors
- ceol_standout_glitch xhp xs standout not erased
+ ceol_standout_glitch xhp xs standout not erased
by overwriting (hp)
- col_addr_glitch xhpa YA only positive motion
+ col_addr_glitch xhpa YA only positive motion
for hpa/mhpa caps
-
- cpi_changes_res cpix YF changing character
+ cpi_changes_res cpix YF changing character
pitch changes reso-
lution
- cr_cancels_micro_mode crxm YB using cr turns off
+ cr_cancels_micro_mode crxm YB using cr turns off
micro mode
- dest_tabs_magic_smso xt xt tabs destructive,
+ dest_tabs_magic_smso xt xt tabs destructive,
magic so char
(t1061)
- eat_newline_glitch xenl xn newline ignored
+ eat_newline_glitch xenl xn newline ignored
after 80 cols (con-
cept)
- erase_overstrike eo eo can erase over-
+ erase_overstrike eo eo can erase over-
strikes with a blank
- generic_type gn gn generic line type
- hard_copy hc hc hardcopy terminal
- hard_cursor chts HC cursor is hard to
+ generic_type gn gn generic line type
+ hard_copy hc hc hardcopy terminal
+ hard_cursor chts HC cursor is hard to
see
- has_meta_key km km Has a meta key
+ has_meta_key km km Has a meta key
(i.e., sets 8th-bit)
- has_print_wheel daisy YC printer needs opera-
+ has_print_wheel daisy YC printer needs opera-
tor to change char-
acter set
- has_status_line hs hs has extra status
+ has_status_line hs hs has extra status
line
- hue_lightness_saturation hls hl terminal uses only
+ hue_lightness_saturation hls hl terminal uses only
HLS color notation
(Tektronix)
- insert_null_glitch in in insert mode distin-
+ insert_null_glitch in in insert mode distin-
guishes nulls
- lpi_changes_res lpix YG changing line pitch
+ lpi_changes_res lpix YG changing line pitch
changes resolution
- memory_above da da display may be
+ memory_above da da display may be
retained above the
screen
- memory_below db db display may be
+ memory_below db db display may be
retained below the
screen
- move_insert_mode mir mi safe to move while
+ move_insert_mode mir mi safe to move while
in insert mode
- move_standout_mode msgr ms safe to move while
+ move_standout_mode msgr ms safe to move while
in standout mode
- needs_xon_xoff nxon nx padding will not
+ needs_xon_xoff nxon nx padding will not
work, xon/xoff
required
- no_esc_ctlc xsb xb beehive (f1=escape,
+ no_esc_ctlc xsb xb beehive (f1=escape,
f2=ctrl C)
- no_pad_char npc NP pad character does
+ no_pad_char npc NP pad character does
not exist
- non_dest_scroll_region ndscr ND scrolling region is
+ non_dest_scroll_region ndscr ND scrolling region is
non-destructive
- non_rev_rmcup nrrmc NR smcup does not
+ non_rev_rmcup nrrmc NR smcup does not
reverse rmcup
- over_strike os os terminal can over-
+ over_strike os os terminal can over-
strike
- prtr_silent mc5i 5i printer will not
+ prtr_silent mc5i 5i printer will not
echo on screen
- row_addr_glitch xvpa YD only positive motion
+ row_addr_glitch xvpa YD only positive motion
for vpa/mvpa caps
- semi_auto_right_margin sam YE printing in last
+ semi_auto_right_margin sam YE printing in last
column causes cr
- status_line_esc_ok eslok es escape can be used
+ status_line_esc_ok eslok es escape can be used
on the status line
- tilde_glitch hz hz cannot print ~'s
+ tilde_glitch hz hz cannot print ~'s
(hazeltine)
- transparent_underline ul ul underline character
+ transparent_underline ul ul underline character
overstrikes
- xon_xoff xon xo terminal uses
+ xon_xoff xon xo terminal uses
xon/xoff handshaking
These are the numeric capabilities:
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- columns cols co number of columns in
+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
+ columns cols co number of columns in
a line
- init_tabs it it tabs initially every
+ init_tabs it it tabs initially every
# spaces
- label_height lh lh rows in each label
- label_width lw lw columns in each
+ label_height lh lh rows in each label
+ label_width lw lw columns in each
label
- lines lines li number of lines on
+ lines lines li number of lines on
screen or page
- lines_of_memory lm lm lines of memory if >
+ lines_of_memory lm lm lines of memory if >
line. 0 means varies
- magic_cookie_glitch xmc sg number of blank
+ magic_cookie_glitch xmc sg number of blank
characters left by
smso or rmso
- max_attributes ma ma maximum combined
+ max_attributes ma ma maximum combined
attributes terminal
can handle
- max_colors colors Co maximum number of
+ max_colors colors Co maximum number of
colors on screen
- max_pairs pairs pa maximum number of
+ max_pairs pairs pa maximum number of
color-pairs on the
screen
- maximum_windows wnum MW maximum number of
+ maximum_windows wnum MW maximum number of
defineable windows
- no_color_video ncv NC video attributes
+ no_color_video ncv NC video attributes
that cannot be used
with colors
- num_labels nlab Nl number of labels on
+ num_labels nlab Nl number of labels on
screen
- padding_baud_rate pb pb lowest baud rate
+ padding_baud_rate pb pb lowest baud rate
where padding needed
- virtual_terminal vt vt virtual terminal
+ virtual_terminal vt vt virtual terminal
number (CB/unix)
- width_status_line wsl ws number of columns in
+ width_status_line wsl ws number of columns in
status line
The following numeric capabilities are present in the
man page. They came in with SVr4's printer support.
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- bit_image_entwining bitwin Yo number of passes for
+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
+ bit_image_entwining bitwin Yo number of passes for
each bit-image row
- bit_image_type bitype Yp type of bit-image
+ bit_image_type bitype Yp type of bit-image
device
- buffer_capacity bufsz Ya numbers of bytes
+ buffer_capacity bufsz Ya numbers of bytes
buffered before
printing
- buttons btns BT number of buttons on
+ buttons btns BT number of buttons on
mouse
- dot_horz_spacing spinh Yc spacing of dots hor-
+ dot_horz_spacing spinh Yc spacing of dots hor-
izontally in dots
per inch
- dot_vert_spacing spinv Yb spacing of pins ver-
+ dot_vert_spacing spinv Yb spacing of pins ver-
tically in pins per
inch
- max_micro_address maddr Yd maximum value in
+ max_micro_address maddr Yd maximum value in
micro_..._address
- max_micro_jump mjump Ye maximum value in
+ max_micro_jump mjump Ye maximum value in
parm_..._micro
- micro_col_size mcs Yf character step size
+ micro_col_size mcs Yf character step size
when in micro mode
- micro_line_size mls Yg line step size when
+ micro_line_size mls Yg line step size when
in micro mode
- number_of_pins npins Yh numbers of pins in
+ number_of_pins npins Yh numbers of pins in
print-head
- output_res_char orc Yi horizontal resolu-
+ output_res_char orc Yi horizontal resolu-
tion in units per
line
- output_res_horz_inch orhi Yk horizontal resolu-
+ output_res_horz_inch orhi Yk horizontal resolu-
tion in units per
inch
- output_res_line orl Yj vertical resolution
+ output_res_line orl Yj vertical resolution
in units per line
- output_res_vert_inch orvi Yl vertical resolution
+ output_res_vert_inch orvi Yl vertical resolution
in units per inch
- print_rate cps Ym print rate in char-
+ print_rate cps Ym print rate in char-
acters per second
- wide_char_size widcs Yn character step size
+ wide_char_size widcs Yn character step size
when in double wide
mode
prototype !?
create_window cwin CW define a window #1
from #2,#3 to #4,#5
- cursor_address cup cm move to row #1 col-
- umns #2
+ cursor_address cup cm move to row #1
+ columns #2
cursor_down cud1 do down one line
cursor_home home ho home cursor (if no
cup)
zero_motion zerom Zx No motion for subse-
quent character
- The following string capabilities are present in the
- SVr4.0 term structure, but were originally not documented
+ The following string capabilities are present in the
+ SVr4.0 term structure, but were originally not documented
in the man page.
bottom margins to
#1, #2
- The XSI Curses standard added these. They are some
- post-4.1 versions of System V curses, e.g., Solaris 2.5
- and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are
+ The XSI Curses standard added these. They are some
+ post-4.1 versions of System V curses, e.g., Solaris 2.5
+ and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are
invented; according to the XSI Curses standard, they have
- no termcap names. If your compiled terminfo entries use
- these, they may not be binary-compatible with System V
+ no termcap names. If your compiled terminfo entries use
+ these, they may not be binary-compatible with System V
terminfo entries after SVr4.1; beware!
<STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
The following entry, describing an ANSI-standard terminal,
- is representative of what a <STRONG>terminfo</STRONG> entry for a modern
+ is representative of what a <STRONG>terminfo</STRONG> entry for a modern
terminal typically looks like.
ansi|ansi/pc-term compatible with color,
sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
- Entries may continue onto multiple lines by placing white
- space at the beginning of each line except the first.
- Comments may be included on lines beginning with ``#''.
+ Entries may continue onto multiple lines by placing white
+ space at the beginning of each line except the first.
+ Comments may be included on lines beginning with ``#''.
Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
bilities which indicate that the terminal has some partic-
- ular feature, numeric capabilities giving the size of the
- terminal or the size of particular delays, and string
- capabilities, which give a sequence which can be used to
+ ular feature, numeric capabilities giving the size of the
+ terminal or the size of particular delays, and string
+ capabilities, which give a sequence which can be used to
perform particular terminal operations.
+
<STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
- All capabilities have names. For instance, the fact that
- ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
- automatic return and line-feed when the end of a line is
- reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
+ All capabilities have names. For instance, the fact that
+ ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
+ automatic return and line-feed when the end of a line is
+ reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
description of ansi includes <STRONG>am</STRONG>. Numeric capabilities are
- followed by the character `#' and then a positive value.
- Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
- minal has, gives the value `80' for ansi. Values for
+ followed by the character `#' and then a positive value.
+ Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
+ minal has, gives the value `80' for ansi. Values for
numeric capabilities may be specified in decimal, octal or
- hexadecimal, using the C programming language conventions
+ hexadecimal, using the C programming language conventions
(e.g., 255, 0377 and 0xff or 0xFF).
- Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
+ Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
end of line sequence) are given by the two-character code,
- an `=', and then a string ending at the next following
+ an `=', and then a string ending at the next following
`,'.
- A number of escape sequences are provided in the string
+ A number of escape sequences are provided in the string
valued capabilities for easy encoding of characters there.
- Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
- control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
- <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
+ Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
+ control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
+ <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
backspace, form-feed, and space. Other escapes include <STRONG>\^</STRONG>
- for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
- (<STRONG>\0</STRONG> will produce \200, which does not terminate a string
+ for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
+ (<STRONG>\0</STRONG> will produce \200, which does not terminate a string
but behaves as a null character on most terminals, provid-
- ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters
+ ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters
may be given as three octal digits after a <STRONG>\</STRONG>.
- A delay in milliseconds may appear anywhere in a string
- capability, enclosed in $<..> brackets, as in <STRONG>el</STRONG>=\EK$<5>,
- and padding characters are supplied by <EM>tputs</EM> to provide
- this delay. The delay must be a number with at most one
+ A delay in milliseconds may appear anywhere in a string
+ capability, enclosed in $<..> brackets, as in <STRONG>el</STRONG>=\EK$<5>,
+ and padding characters are supplied by <EM>tputs</EM> to provide
+ this delay. The delay must be a number with at most one
decimal place of precision; it may be followed by suffixes
- `*' or '/' or both. A `*' indicates that the padding
- required is proportional to the number of lines affected
- by the operation, and the amount given is the per-
- affected-unit padding required. (In the case of insert
+ `*' or '/' or both. A `*' indicates that the padding
+ required is proportional to the number of lines affected
+ by the operation, and the amount given is the per-
+ affected-unit padding required. (In the case of insert
character, the factor is still the number of <EM>lines</EM>
- affected.) Normally, padding is advisory if the device
- has the <STRONG>xon</STRONG> capability; it is used for cost computation
- but does not trigger delays. A `/' suffix indicates that
- the padding is mandatory and forces a delay of the given
- number of milliseconds even on devices for which <STRONG>xon</STRONG> is
+ affected.) Normally, padding is advisory if the device
+ has the <STRONG>xon</STRONG> capability; it is used for cost computation
+ but does not trigger delays. A `/' suffix indicates that
+ the padding is mandatory and forces a delay of the given
+ number of milliseconds even on devices for which <STRONG>xon</STRONG> is
present to indicate flow control.
- Sometimes individual capabilities must be commented out.
- To do this, put a period before the capability name. For
+ Sometimes individual capabilities must be commented out.
+ To do this, put a period before the capability name. For
example, see the second <STRONG>ind</STRONG> in the example above.
+
<STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
- If the environment variable TERMINFO is set, it is inter-
- preted as the pathname of a directory containing the com-
+ If the environment variable TERMINFO is set, it is inter-
+ preted as the pathname of a directory containing the com-
piled description you are working on. Only that directory
is searched.
- If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter-
- minfo reader code will instead look in the directory
- <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails
- to find one there, and the environment variable TER-
- MINFO_DIRS is set, it will interpret the contents of that
- variable as a list of colon- separated directories to be
- searched (an empty entry is interpreted as a command to
- search <EM>/usr/share/terminfo</EM>). If no description is found
- in any of the TERMINFO_DIRS directories, the fetch fails.
+ If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter-
+ minfo reader code will instead look in the directory
+ <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails
+ to find one there, and the environment variable TER-
+ MINFO_DIRS is set, it will interpret the contents of that
+ variable as a list of colon- separated directories to be
+ searched (an empty entry is interpreted as a command to
+ search <EM>/usr/share/terminfo</EM>). If no description is found
+ in any of the TERMINFO_DIRS directories, the fetch fails.
If neither TERMINFO nor TERMINFO_DIRS is set, the last
place tried will be the system terminfo directory,
extensions are supported under stock System V ter-
minfo/curses.)
+
<STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
We now outline how to prepare descriptions of terminals.
The most effective way to prepare a terminal description
ally needed. A similar test can be used for insert char-
acter.
+
<STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
The number of columns on each line for the terminal is
given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
To scroll text down, a program goes to the top left corner
- of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
- The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
+ of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
+ The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
respective corners of the screen.
Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
- that they take one parameter, and scroll that many lines.
- They are also undefined except at the appropriate edge of
+ that they take one parameter, and scroll that many lines.
+ They are also undefined except at the appropriate edge of
the screen.
- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
- right edge of the screen when text is output, but this
+ The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
+ right edge of the screen when text is output, but this
does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
- The only local motion which is defined from the left edge
- is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
- move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
- given, the effect is undefined. This is useful for draw-
- ing a box around the edge of the screen, for example. If
- the terminal has switch selectable automatic margins, the
- <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
- If the terminal has a command which moves to the first
- column of the next line, that command can be given as <STRONG>nel</STRONG>
- (newline). It does not matter if the command clears the
- remainder of the current line, so if the terminal has no
- <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
+ The only local motion which is defined from the left edge
+ is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
+ move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
+ given, the effect is undefined. This is useful for draw-
+ ing a box around the edge of the screen, for example. If
+ the terminal has switch selectable automatic margins, the
+ <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
+ If the terminal has a command which moves to the first
+ column of the next line, that command can be given as <STRONG>nel</STRONG>
+ (newline). It does not matter if the command clears the
+ remainder of the current line, so if the terminal has no
+ <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
out of one or both of them.
These capabilities suffice to describe hard-copy and
- "glass-tty" terminals. Thus the model 33 teletype is
+ "glass-tty" terminals. Thus the model 33 teletype is
described as
33|tty33|tty|model 33 teletype,
am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
ind=^J, lines#24,
+
<STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
- Cursor addressing and other strings requiring parameters
- in the terminal are described by a parameterized string
- capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For
- example, to address the cursor, the <STRONG>cup</STRONG> capability is
+ Cursor addressing and other strings requiring parameters
+ in the terminal are described by a parameterized string
+ capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For
+ example, to address the cursor, the <STRONG>cup</STRONG> capability is
given, using two parameters: the row and column to address
to. (Rows and columns are numbered from zero and refer to
the physical screen visible to the user, not to any unseen
- memory.) If the terminal has memory relative cursor
+ memory.) If the terminal has memory relative cursor
addressing, that can be indicated by <STRONG>mrcup</STRONG>.
- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
- to manipulate it. Typically a sequence will push one of
- the parameters onto the stack and then print it in some
- format. Print (e.g., "%d") is a special case. Other
- operations, including "%t" pop their operand from the
+ The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
+ to manipulate it. Typically a sequence will push one of
+ the parameters onto the stack and then print it in some
+ format. Print (e.g., "%d") is a special case. Other
+ operations, including "%t" pop their operand from the
stack. It is noted that more complex operations are often
necessary, e.g., in the <STRONG>sgr</STRONG> string.
The <STRONG>%</STRONG> encodings have the following meanings:
+
%% outputs `%'
%<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
- as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:'
- to allow the next character to be a `-' flag, avoid-
+ as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:'
+ to allow the next character to be a `-' flag, avoid-
ing interpreting "%-" as an operator.
%c print pop() like %c in <STRONG>printf</STRONG>
%g[A-Z]
get static variable [a-z] and push it
- The terms "static" and "dynamic" are misleading.
- Historically, these are simply two different sets of
- variables, whose values are not reset between calls
- to <STRONG>tparm</STRONG>. However, that fact is not documented in
- other implementations. Relying on it will adversely
+ The terms "static" and "dynamic" are misleading.
+ Historically, these are simply two different sets of
+ variables, whose values are not reset between calls
+ to <STRONG>tparm</STRONG>. However, that fact is not documented in
+ other implementations. Relying on it will adversely
impact portability to other implementations.
%'<EM>c</EM>' char constant <EM>c</EM>
logical AND and OR operations (for conditionals)
%! %~
- unary operations (logical and bit complement):
+ unary operations (logical and bit complement):
push(op pop())
%i add 1 to first two parameters (for ANSI terminals)
%? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
- This forms an if-then-else. The %e <EM>elsepart</EM> is
- optional. Usually the %? <EM>expr</EM> part pushes a value
- onto the stack, and %t pops it from the stack, test-
- ing if it is nonzero (true). If it is zero (false),
+ This forms an if-then-else. The %e <EM>elsepart</EM> is
+ optional. Usually the %? <EM>expr</EM> part pushes a value
+ onto the stack, and %t pops it from the stack, test-
+ ing if it is nonzero (true). If it is zero (false),
control passes to the %e (else) part.
It is possible to form else-if's a la Algol 68:
its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&%p2%2dc%p1%2dY".
The Microterm ACT-IV needs the current row and column sent
- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
+ preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
+ in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
+ need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is
- necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
- and <STRONG>\r</STRONG>, as the system may change or discard them. (The
- library routines dealing with terminfo set tty modes so
+ necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
+ and <STRONG>\r</STRONG>, as the system may change or discard them. (The
+ library routines dealing with terminfo set tty modes so
that tabs are never expanded, so \t is safe to send. This
turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and col-
umn offset by a blank character, thus "cup=\E=%p1%'
- '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
- first parameter, pushes the ASCII value for a space (32),
- adds them (pushing the sum on the stack in place of the
- two previous values) and outputs that value as a charac-
- ter. Then the same is done for the second parameter.
+ '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
+ first parameter, pushes the ASCII value for a space (32),
+ adds them (pushing the sum on the stack in place of the
+ two previous values) and outputs that value as a charac-
+ ter. Then the same is done for the second parameter.
More complex arithmetic is possible using the stack.
+
<STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
If the terminal has a fast way to home the cursor (to very
- upper left corner of screen) then this can be given as
- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
- with <STRONG>cuu1</STRONG> from the home position, but a program should
- never do this itself (unless <STRONG>ll</STRONG> does) because it can make
- no assumption about the effect of moving up from the home
- position. Note that the home position is the same as
+ upper left corner of screen) then this can be given as
+ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
+ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
+ with <STRONG>cuu1</STRONG> from the home position, but a program should
+ never do this itself (unless <STRONG>ll</STRONG> does) because it can make
+ no assumption about the effect of moving up from the home
+ position. Note that the home position is the same as
addressing to (0,0): to the top left corner of the screen,
- not of memory. (Thus, the \EH sequence on HP terminals
+ not of memory. (Thus, the \EH sequence on HP terminals
cannot be used for <STRONG>home</STRONG>.)
If the terminal has row or column absolute cursor address-
- ing, these can be given as single parameter capabilities
+ ing, these can be given as single parameter capabilities
<STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
tion absolute). Sometimes these are shorter than the more
- general two parameter sequence (as with the hp2645) and
- can be used in preference to <STRONG>cup</STRONG>. If there are parameter-
- ized local motions (e.g., move <EM>n</EM> spaces to the right)
- these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
- parameter indicating how many spaces to move. These are
- primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
- as the TEKTRONIX 4025.
+ general two parameter sequence (as with the hp2645) and
+ can be used in preference to <STRONG>cup</STRONG>. If there are
+ parameterized local motions (e.g., move <EM>n</EM> spaces to the
+ right) these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a
+ single parameter indicating how many spaces to move.
+ These are primarily useful if the terminal does not have
+ <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
If the terminal needs to be in a special mode when running
a program that uses these capabilities, the codes to enter
- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
- arises, for example, from terminals like the Concept with
- more than one page of memory. If the terminal has only
- memory relative cursor addressing and not screen relative
+ and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
+ arises, for example, from terminals like the Concept with
+ more than one page of memory. If the terminal has only
+ memory relative cursor addressing and not screen relative
cursor addressing, a one screen-sized window must be fixed
- into the terminal for cursor addressing to work properly.
+ into the terminal for cursor addressing to work properly.
This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
- the command character to be the one used by terminfo. If
- the <STRONG>smcup</STRONG> sequence will not restore the screen after an
+ the command character to be the one used by terminfo. If
+ the <STRONG>smcup</STRONG> sequence will not restore the screen after an
<STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
<STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
+
<STRONG>Area</STRONG> <STRONG>Clears</STRONG>
If the terminal can clear from the current position to the
- end of the line, leaving the cursor where it is, this
+ end of the line, leaving the cursor where it is, this
should be given as <STRONG>el</STRONG>. If the terminal can clear from the
- beginning of the line to the current position inclusive,
- leaving the cursor where it is, this should be given as
- <STRONG>el1</STRONG>. If the terminal can clear from the current position
- to the end of the display, then this should be given as
- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
- (Thus, it can be simulated by a request to delete a large
+ beginning of the line to the current position inclusive,
+ leaving the cursor where it is, this should be given as
+ <STRONG>el1</STRONG>. If the terminal can clear from the current position
+ to the end of the display, then this should be given as
+ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
+ (Thus, it can be simulated by a request to delete a large
number of lines, if a true <STRONG>ed</STRONG> is not available.)
+
<STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
- If the terminal can open a new blank line before the line
- where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
- done only from the first position of a line. The cursor
+ If the terminal can open a new blank line before the line
+ where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
+ done only from the first position of a line. The cursor
must then appear on the newly blank line. If the terminal
- can delete the line which the cursor is on, then this
- should be given as <STRONG>dl1</STRONG>; this is done only from the first
- position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
- <STRONG>dl1</STRONG> which take a single parameter and insert or delete
+ can delete the line which the cursor is on, then this
+ should be given as <STRONG>dl1</STRONG>; this is done only from the first
+ position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
+ <STRONG>dl1</STRONG> which take a single parameter and insert or delete
that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
- If the terminal has a settable scrolling region (like the
- vt100) the command to set this can be described with the
- <STRONG>csr</STRONG> capability, which takes two parameters: the top and
+ If the terminal has a settable scrolling region (like the
+ vt100) the command to set this can be described with the
+ <STRONG>csr</STRONG> capability, which takes two parameters: the top and
bottom lines of the scrolling region. The cursor position
is, alas, undefined after using this command.
- It is possible to get the effect of insert or delete line
+ It is possible to get the effect of insert or delete line
using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
- and restore cursor) commands may be useful for ensuring
- that your synthesized insert/delete string does not move
- the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
- synthesis automatically, so you need not compose
+ and restore cursor) commands may be useful for ensuring
+ that your synthesized insert/delete string does not move
+ the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
+ synthesis automatically, so you need not compose
insert/delete strings for an entry with <STRONG>csr</STRONG>).
Yet another way to construct insert and delete might be to
- use a combination of index with the memory-lock feature
- found on some terminals (like the HP-700/90 series, which
+ use a combination of index with the memory-lock feature
+ found on some terminals (like the HP-700/90 series, which
however also has insert/delete).
- Inserting lines at the top or bottom of the screen can
- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
- true insert/delete line, and is often faster even on ter-
+ Inserting lines at the top or bottom of the screen can
+ also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
+ true insert/delete line, and is often faster even on ter-
minals with those features.
- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
- scrolling window is effectively a view port on a screen-
- sized canvas. To test for this capability, create a
- scrolling region in the middle of the screen, write some-
- thing to the bottom line, move the cursor to the top of
+ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
+ scrolling window is effectively a view port on a screen-
+ sized canvas. To test for this capability, create a
+ scrolling region in the middle of the screen, write some-
+ thing to the bottom line, move the cursor to the top of
the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data
- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
- appears, then scrolling is non-destructive. System V and
- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
- late destructive scrolling; their documentation cautions
- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
+ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
+ appears, then scrolling is non-destructive. System V and
+ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
+ late destructive scrolling; their documentation cautions
+ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
implementation is more liberal and will do explicit erases
after scrolling if <STRONG>ndstr</STRONG> is defined.
If the terminal has the ability to define a window as part
- of memory, which all commands affect, it should be given
+ of memory, which all commands affect, it should be given
as the parameterized string <STRONG>wind</STRONG>. The four parameters are
- the starting and ending lines in memory and the starting
+ the starting and ending lines in memory and the starting
and ending columns in memory, in that order.
- If the terminal can retain display memory above, then the
- <STRONG>da</STRONG> capability should be given; if display memory can be
- retained below, then <STRONG>db</STRONG> should be given. These indicate
- that deleting a line or scrolling may bring non-blank
- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
+ If the terminal can retain display memory above, then the
+ <STRONG>da</STRONG> capability should be given; if display memory can be
+ retained below, then <STRONG>db</STRONG> should be given. These indicate
+ that deleting a line or scrolling may bring non-blank
+ lines up from below or that scrolling back with <STRONG>ri</STRONG> may
bring down non-blank lines.
+
<STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
- There are two basic kinds of intelligent terminals with
- respect to insert/delete character which can be described
- using <EM>terminfo.</EM> The most common insert/delete character
- operations affect only the characters on the current line
- and shift characters off the end of the line rigidly.
- Other terminals, such as the Concept 100 and the Perkin
- Elmer Owl, make a distinction between typed and untyped
- blanks on the screen, shifting upon an insert or delete
- only to an untyped blank on the screen which is either
- eliminated, or expanded to two untyped blanks. You can
- determine the kind of terminal you have by clearing the
- screen and then typing text separated by cursor motions.
- Type "abc def" using local cursor motions (not spaces)
+ There are two basic kinds of intelligent terminals with
+ respect to insert/delete character which can be described
+ using <EM>terminfo.</EM> The most common insert/delete character
+ operations affect only the characters on the current line
+ and shift characters off the end of the line rigidly.
+ Other terminals, such as the Concept 100 and the Perkin
+ Elmer Owl, make a distinction between typed and untyped
+ blanks on the screen, shifting upon an insert or delete
+ only to an untyped blank on the screen which is either
+ eliminated, or expanded to two untyped blanks. You can
+ determine the kind of terminal you have by clearing the
+ screen and then typing text separated by cursor motions.
+ Type "abc def" using local cursor motions (not spaces)
between the "abc" and the "def". Then position the cursor
- before the "abc" and put the terminal in insert mode. If
- typing characters causes the rest of the line to shift
+ before the "abc" and put the terminal in insert mode. If
+ typing characters causes the rest of the line to shift
rigidly and characters to fall off the end, then your ter-
- minal does not distinguish between blanks and untyped
- positions. If the "abc" shifts over to the "def" which
- then move together around the end of the current line and
- onto the next as you insert, you have the second type of
- terminal, and should give the capability <STRONG>in</STRONG>, which stands
+ minal does not distinguish between blanks and untyped
+ positions. If the "abc" shifts over to the "def" which
+ then move together around the end of the current line and
+ onto the next as you insert, you have the second type of
+ terminal, and should give the capability <STRONG>in</STRONG>, which stands
for "insert null". While these are two logically separate
- attributes (one line versus multi-line insert mode, and
- special treatment of untyped spaces) we have seen no ter-
+ attributes (one line versus multi-line insert mode, and
+ special treatment of untyped spaces) we have seen no ter-
minals whose insert mode cannot be described with the sin-
gle attribute.
- Terminfo can describe both terminals which have an insert
+ Terminfo can describe both terminals which have an insert
mode, and terminals which send a simple sequence to open a
- blank position on the current line. Give as <STRONG>smir</STRONG> the
- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
- sequence needed to be sent just before sending the charac-
- ter to be inserted. Most terminals with a true insert
- mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
- to open a screen position should give it here.
-
- If your terminal has both, insert mode is usually prefer-
- able to <STRONG>ich1</STRONG>. Technically, you should not give both
- unless the terminal actually requires both to be used in
- combination. Accordingly, some non-curses applications
- get confused if both are present; the symptom is doubled
+ blank position on the current line. Give as <STRONG>smir</STRONG> the
+ sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
+ sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
+ sequence needed to be sent just before sending the
+ character to be inserted. Most terminals with a true
+ insert mode will not give <STRONG>ich1</STRONG>; terminals which send a
+ sequence to open a screen position should give it here.
+
+ If your terminal has both, insert mode is usually prefer-
+ able to <STRONG>ich1</STRONG>. Technically, you should not give both
+ unless the terminal actually requires both to be used in
+ combination. Accordingly, some non-curses applications
+ get confused if both are present; the symptom is doubled
characters in an update using insert. This requirement is
now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
and most smir insert modes do not require <STRONG>ich1</STRONG> before each
- character. Therefore, the new <STRONG>curses</STRONG> actually assumes
- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
+ character. Therefore, the new <STRONG>curses</STRONG> actually assumes
+ this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
appropriate (but not both). If you have to write an entry
- to be used under new curses for a terminal old enough to
+ to be used under new curses for a terminal old enough to
need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
If post insert padding is needed, give this as a number of
- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
- which may need to be sent after an insert of a single
+ milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
+ which may need to be sent after an insert of a single
character may also be given in <STRONG>ip</STRONG>. If your terminal needs
both to be placed into an `insert mode' and a special code
- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
+ to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
+ and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
capability, with one parameter, <EM>n</EM>, will repeat the effects
of <STRONG>ich1</STRONG> <EM>n</EM> times.
If padding is necessary between characters typed while not
- in insert mode, give this as a number of milliseconds pad-
- ding in <STRONG>rmp</STRONG>.
-
- It is occasionally necessary to move around while in
- insert mode to delete characters on the same line (e.g.,
- if there is a tab after the insertion position). If your
- terminal allows motion while in insert mode you can give
- the capability <STRONG>mir</STRONG> to speed up inserting in this case.
- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
+ in insert mode, give this as a number of milliseconds
+ padding in <STRONG>rmp</STRONG>.
+
+ It is occasionally necessary to move around while in
+ insert mode to delete characters on the same line (e.g.,
+ if there is a tab after the insertion position). If your
+ terminal allows motion while in insert mode you can give
+ the capability <STRONG>mir</STRONG> to speed up inserting in this case.
+ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
(notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
their insert mode works.
- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
- delete mode (any mode the terminal needs to be placed in
+ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
+ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
+ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
+ delete mode (any mode the terminal needs to be placed in
for <STRONG>dch1</STRONG> to work).
- A command to erase <EM>n</EM> characters (equivalent to outputting
- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
+ A command to erase <EM>n</EM> characters (equivalent to outputting
+ <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
with one parameter.
+
<STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
If your terminal has one or more kinds of display
- attributes, these can be represented in a number of dif-
+ attributes, these can be represented in a number of dif-
ferent ways. You should choose one display form as <EM>stand-</EM>
<EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
- eyes, format for highlighting error messages and other
- attention getters. (If you have a choice, reverse video
- plus half-bright is good, or reverse video alone.) The
- sequences to enter and exit standout mode are given as
- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
- or out of standout mode leaves one or even two blank spa-
- ces on the screen, as the TVI 912 and Teleray 1061 do,
+ eyes, format for highlighting error messages and other
+ attention getters. (If you have a choice, reverse video
+ plus half-bright is good, or reverse video alone.) The
+ sequences to enter and exit standout mode are given as
+ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
+ or out of standout mode leaves one or even two blank
+ spaces on the screen, as the TVI 912 and Teleray 1061 do,
then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
Codes to begin underlining and end underlining can be
For example, the DEC vt220 supports most of the modes:
- <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
- none none \E[0m
- p1 standout \E[0;1;7m
- p2 underline \E[0;4m
- p3 reverse \E[0;7m
- p4 blink \E[0;5m
- p5 dim not available
- p6 bold \E[0;1m
- p7 invis \E[0;8m
- p8 protect not used
- p9 altcharset ^O (off) ^N (on)
+ <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
+
+ none none \E[0m
+ p1 standout \E[0;1;7m
+ p2 underline \E[0;4m
+ p3 reverse \E[0;7m
+ p4 blink \E[0;5m
+ p5 dim not available
+ p6 bold \E[0;1m
+ p7 invis \E[0;8m
+ p8 protect not used
+ p9 altcharset ^O (off) ^N (on)
We begin each escape sequence by turning off any existing
modes, since there is no quick way to determine whether
Writing out the above sequences, along with their depen-
dencies yields
- <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
- \E[0 always \E[0
- ;1 if p1 or p6 %?%p1%p6%|%t;1%;
- ;4 if p2 %?%p2%|%t;4%;
- ;5 if p4 %?%p4%|%t;5%;
- ;7 if p1 or p3 %?%p1%p3%|%t;7%;
- ;8 if p7 %?%p7%|%t;8%;
- m always m
- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
+ <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
+
+ \E[0 always \E[0
+ ;1 if p1 or p6 %?%p1%p6%|%t;1%;
+ ;4 if p2 %?%p2%|%t;4%;
+ ;5 if p4 %?%p4%|%t;5%;
+
+ ;7 if p1 or p3 %?%p1%p3%|%t;7%;
+ ;8 if p7 %?%p7%|%t;8%;
+ m always m
+ ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
Putting this all together into the sgr sequence gives:
erasable with a blank, then this should be indicated by
giving <STRONG>eo</STRONG>.
+
<STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
If the terminal has a keypad that transmits codes when the
keys are pressed, this information can be given. Note
tion keys such as f0, f1, ..., f10, the codes they send
can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
labels other than the default f0 through f10, the labels
- can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes transmit-
- ted by certain other special keys can be given: <STRONG>kll</STRONG> (home
- down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs), <STRONG>kctab</STRONG>
- (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear screen or
- erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG> (delete line),
- <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end of line), <STRONG>ked</STRONG>
- (clear to end of screen), <STRONG>kich1</STRONG> (insert character or enter
- insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG> (next page), <STRONG>kpp</STRONG>
- (previous page), <STRONG>kind</STRONG> (scroll forward/down), <STRONG>kri</STRONG> (scroll
- backward/up), <STRONG>khts</STRONG> (set a tab stop in this column). In
- addition, if the keypad has a 3 by 3 array of keys includ-
- ing the four arrow keys, the other five keys can be given
- as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are useful
- when the effects of a 3 by 3 directional pad are needed.
-
- Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
- <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
- be specified as <STRONG>pln</STRONG>. Each of these strings takes two
- parameters: the function key number to program (from 0 to
- 10) and the string to program it with. Function key num-
- bers out of this range may program undefined keys in a
- terminal dependent manner. The difference between the
- capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
- to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
+ can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes
+ transmitted by certain other special keys can be given:
+ <STRONG>kll</STRONG> (home down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs),
+ <STRONG>kctab</STRONG> (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear
+ screen or erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG>
+ (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
+ of line), <STRONG>ked</STRONG> (clear to end of screen), <STRONG>kich1</STRONG> (insert
+ character or enter insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG>
+ (next page), <STRONG>kpp</STRONG> (previous page), <STRONG>kind</STRONG> (scroll for-
+ ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
+ in this column). In addition, if the keypad has a 3 by 3
+ array of keys including the four arrow keys, the other
+ five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.
+ These keys are useful when the effects of a 3 by 3 direc-
+ tional pad are needed.
+
+ Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
+ <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
+ be specified as <STRONG>pln</STRONG>. Each of these strings takes two
+ parameters: the function key number to program (from 0 to
+ 10) and the string to program it with. Function key num-
+ bers out of this range may program undefined keys in a
+ terminal dependent manner. The difference between the
+ capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
+ to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
causes the string to be executed by the terminal in local;
- and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
+ and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
puter.
The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
- grammable screen labels and their width and height. If
- there are commands to turn the labels on and off, give
- them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
+ grammable screen labels and their width and height. If
+ there are commands to turn the labels on and off, give
+ them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
or more pln sequences to make sure that the change becomes
visible.
+
<STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
- If the terminal has hardware tabs, the command to advance
- to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
- I). A ``back-tab'' command which moves leftward to the
+ If the terminal has hardware tabs, the command to advance
+ to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
+ I). A ``back-tab'' command which moves leftward to the
preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
- the teletype modes indicate that tabs are being expanded
- by the computer rather than being sent to the terminal,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
- present, since the user may not have the tab stops prop-
- erly set. If the terminal has hardware tabs which are
- initially set every <EM>n</EM> spaces when the terminal is powered
- up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
- of spaces the tabs are set to. This is normally used by
- the <EM>tset</EM> command to determine whether to set the mode for
- hardware tab expansion, and whether to set the tab stops.
- If the terminal has tab stops that can be saved in non-
- volatile memory, the terminfo description can assume that
+ the teletype modes indicate that tabs are being expanded
+ by the computer rather than being sent to the terminal,
+ programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
+ present, since the user may not have the tab stops prop-
+ erly set. If the terminal has hardware tabs which are
+ initially set every <EM>n</EM> spaces when the terminal is powered
+ up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
+ of spaces the tabs are set to. This is normally used by
+ the <EM>tset</EM> command to determine whether to set the mode for
+ hardware tab expansion, and whether to set the tab stops.
+ If the terminal has tab stops that can be saved in non-
+ volatile memory, the terminfo description can assume that
they are properly set.
- Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
- tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
- program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
- name of a file containing long initialization strings.
- These strings are expected to set the terminal into modes
- consistent with the rest of the terminfo description.
+ Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
+ tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
+ program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
+ name of a file containing long initialization strings.
+ These strings are expected to set the terminal into modes
+ consistent with the rest of the terminfo description.
They are normally sent to the terminal, by the <EM>init</EM> option
- of the <EM>tput</EM> program, each time the user logs in. They
+ of the <EM>tput</EM> program, each time the user logs in. They
will be printed in the following order:
run the program
and finally
output <STRONG>is3</STRONG>.
- Most initialization is done with <STRONG>is2</STRONG>. Special terminal
+ Most initialization is done with <STRONG>is2</STRONG>. Special terminal
modes can be set up without duplicating strings by putting
- the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
+ the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
<STRONG>is3</STRONG>.
A set of sequences that does a harder reset from a totally
unknown state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analo-
- gous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG> and <STRONG>is3</STRONG> respectively. These
- strings are output by the <EM>reset</EM> program, which is used
- when the terminal gets into a wedged state. Commands are
- normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
- duce annoying effects on the screen and are not necessary
- when logging in. For example, the command to set the
- vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>,
- but it causes an annoying glitch of the screen and is not
- normally needed since the terminal is usually already in
+ gous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG> and <STRONG>is3</STRONG> respectively. These
+ strings are output by the <EM>reset</EM> program, which is used
+ when the terminal gets into a wedged state. Commands are
+ normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
+ duce annoying effects on the screen and are not necessary
+ when logging in. For example, the command to set the
+ vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>,
+ but it causes an annoying glitch of the screen and is not
+ normally needed since the terminal is usually already in
80 column mode.
The <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
- the same order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc.,
+ the same order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc.,
instead of <STRONG>is1</STRONG>, etc. If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
- capability strings are missing, the <EM>reset</EM> program falls
+ capability strings are missing, the <EM>reset</EM> program falls
back upon the corresponding initialization capability
string.
If there are commands to set and clear tab stops, they can
- be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
- stop in the current column of every row). If a more com-
- plex sequence is needed to set the tabs than can be
- described by this, the sequence can be placed in <STRONG>is2</STRONG> or
+ be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
+ stop in the current column of every row). If a more com-
+ plex sequence is needed to set the tabs than can be
+ described by this, the sequence can be placed in <STRONG>is2</STRONG> or
<STRONG>if</STRONG>.
<STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
- Many older and slower terminals do not support either
+ Many older and slower terminals do not support either
XON/XOFF or DTR handshaking, including hard copy terminals
- and some very archaic CRTs (including, for example, DEC
- VT100s). These may require padding characters after cer-
+ and some very archaic CRTs (including, for example, DEC
+ VT100s). These may require padding characters after cer-
tain cursor motions and screen changes.
If the terminal uses xon/xoff handshaking for flow control
- (that is, it automatically emits ^S back to the host when
+ (that is, it automatically emits ^S back to the host when
its input buffers are close to full), set <STRONG>xon</STRONG>. This capa-
- bility suppresses the emission of padding. You can also
- set it for memory-mapped console devices effectively that
- do not have a speed limit. Padding information should
- still be included so that routines can make better deci-
+ bility suppresses the emission of padding. You can also
+ set it for memory-mapped console devices effectively that
+ do not have a speed limit. Padding information should
+ still be included so that routines can make better deci-
sions about relative costs, but actual pad characters will
not be transmitted.
- If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
- at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
- padding baud rate, then whether padding is emitted or not
+ If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
+ at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
+ padding baud rate, then whether padding is emitted or not
is completely controlled by <STRONG>xon</STRONG>.
- If the terminal requires other than a null (zero) charac-
- ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
+ If the terminal requires other than a null (zero) charac-
+ ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
first character of the <STRONG>pad</STRONG> string is used.
+
<STRONG>Status</STRONG> <STRONG>Lines</STRONG>
- Some terminals have an extra `status line' which is not
- normally used by software (and thus not counted in the
+ Some terminals have an extra `status line' which is not
+ normally used by software (and thus not counted in the
terminal's <STRONG>lines</STRONG> capability).
- The simplest case is a status line which is cursor-
- addressable but not part of the main scrolling region on
- the screen; the Heathkit H19 has a status line of this
- kind, as would a 24-line VT100 with a 23-line scrolling
- region set up on initialization. This situation is indi-
+ The simplest case is a status line which is cursor-
+ addressable but not part of the main scrolling region on
+ the screen; the Heathkit H19 has a status line of this
+ kind, as would a 24-line VT100 with a 23-line scrolling
+ region set up on initialization. This situation is indi-
cated by the <STRONG>hs</STRONG> capability.
Some terminals with status lines need special sequences to
- access the status line. These may be expressed as a
+ access the status line. These may be expressed as a
string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
- a given zero-origin column on the status line. The capa-
+ a given zero-origin column on the status line. The capa-
bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
- before the last <STRONG>tsl</STRONG>. You may need to embed the string
- values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
+ before the last <STRONG>tsl</STRONG>. You may need to embed the string
+ values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
and <STRONG>fsl</STRONG> to accomplish this.
- The status line is normally assumed to be the same width
- as the width of the terminal. If this is untrue, you can
+ The status line is normally assumed to be the same width
+ as the width of the terminal. If this is untrue, you can
specify it with the numeric capability <STRONG>wsl</STRONG>.
- A command to erase or blank the status line may be speci-
+ A command to erase or blank the status line may be speci-
fied as <STRONG>dsl</STRONG>.
- The boolean capability <STRONG>eslok</STRONG> specifies that escape
+ The boolean capability <STRONG>eslok</STRONG> specifies that escape
sequences, tabs, etc., work ordinarily in the status line.
The <STRONG>ncurses</STRONG> implementation does not yet use any of these
capabilities. They are documented here in case they ever
become important.
+
<STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
Many terminals have alternate character sets useful for
forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
characters from the AT&T 4410v1 added. This alternate
character set may be specified by the <STRONG>acsc</STRONG> capability.
- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
- UK pound sign ACS_STERLING f }
- arrow pointing down ACS_DARROW v .
- arrow pointing left ACS_LARROW < ,
- arrow pointing right ACS_RARROW > +
- arrow pointing up ACS_UARROW ^ -
- board of squares ACS_BOARD # h
- bullet ACS_BULLET o ~
- checker board (stipple) ACS_CKBOARD : a
- degree symbol ACS_DEGREE \ f
- diamond ACS_DIAMOND + `
- greater-than-or-equal-to ACS_GEQUAL > z
- greek pi ACS_PI * {
- horizontal line ACS_HLINE - q
- lantern symbol ACS_LANTERN # i
- large plus or crossover ACS_PLUS + n
- less-than-or-equal-to ACS_LEQUAL < y
- lower left corner ACS_LLCORNER + m
- lower right corner ACS_LRCORNER + j
- not-equal ACS_NEQUAL ! |
- plus/minus ACS_PLMINUS # g
- scan line 1 ACS_S1 ~ o
- scan line 3 ACS_S3 - p
- scan line 7 ACS_S7 - r
- scan line 9 ACS_S9 _ s
- solid square block ACS_BLOCK # 0
- tee pointing down ACS_TTEE + w
- tee pointing left ACS_RTEE + u
- tee pointing right ACS_LTEE + t
- tee pointing up ACS_BTEE + v
- upper left corner ACS_ULCORNER + l
-
- upper right corner ACS_URCORNER + k
- vertical line ACS_VLINE | x
+
+ <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
+ <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
+ UK pound sign ACS_STERLING f }
+ arrow pointing down ACS_DARROW v .
+ arrow pointing left ACS_LARROW < ,
+ arrow pointing right ACS_RARROW > +
+ arrow pointing up ACS_UARROW ^ -
+ board of squares ACS_BOARD # h
+ bullet ACS_BULLET o ~
+ checker board (stipple) ACS_CKBOARD : a
+ degree symbol ACS_DEGREE \ f
+ diamond ACS_DIAMOND + `
+ greater-than-or-equal-to ACS_GEQUAL > z
+ greek pi ACS_PI * {
+ horizontal line ACS_HLINE - q
+ lantern symbol ACS_LANTERN # i
+ large plus or crossover ACS_PLUS + n
+ less-than-or-equal-to ACS_LEQUAL < y
+
+ lower left corner ACS_LLCORNER + m
+ lower right corner ACS_LRCORNER + j
+ not-equal ACS_NEQUAL ! |
+ plus/minus ACS_PLMINUS # g
+ scan line 1 ACS_S1 ~ o
+ scan line 3 ACS_S3 - p
+ scan line 7 ACS_S7 - r
+ scan line 9 ACS_S9 _ s
+ solid square block ACS_BLOCK # 0
+ tee pointing down ACS_TTEE + w
+ tee pointing left ACS_RTEE + u
+ tee pointing right ACS_LTEE + t
+ tee pointing up ACS_BTEE + v
+ upper left corner ACS_ULCORNER + l
+ upper right corner ACS_URCORNER + k
+ vertical line ACS_VLINE | x
The best way to define a new device's graphics set is to
add a column to a copy of this table for your terminal,
acter pairs right to left in sequence; these become the
ACSC string.
+
<STRONG>Color</STRONG> <STRONG>Handling</STRONG>
Most color terminals are either `Tektronix-like' or `HP-
like'. Tektronix-like terminals have a predefined set of
these as it likes, but the RGB values indicate normal
locations in color space.
+
<STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
red <STRONG>COLOR_RED</STRONG> 1 max,0,0
ors are enabled. The correspondence with the attributes
understood by <STRONG>curses</STRONG> is as follows:
- <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
- A_STANDOUT 0 1
- A_UNDERLINE 1 2
- A_REVERSE 2 4
- A_BLINK 3 8
- A_DIM 4 16
- A_BOLD 5 32
- A_INVIS 6 64
- A_PROTECT 7 128
- A_ALTCHARSET 8 256
+
+ <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
+ A_STANDOUT 0 1
+ A_UNDERLINE 1 2
+ A_REVERSE 2 4
+ A_BLINK 3 8
+ A_DIM 4 16
+ A_BOLD 5 32
+ A_INVIS 6 64
+ A_PROTECT 7 128
+ A_ALTCHARSET 8 256
For example, on many IBM PC consoles, the underline
attribute collides with the foreground color blue and is
SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
and optimizes the output in favor of colors.
+
<STRONG>Miscellaneous</STRONG>
If the terminal requires other than a null (zero) charac-
ter as a pad, then this can be given as pad. Only the
text, including <STRONG>mc4</STRONG>, is transparently passed to the
printer while an <STRONG>mc5p</STRONG> is in effect.
+
<STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
Hazeltine terminals, which do not allow `~' characters to
be displayed should indicate <STRONG>hz</STRONG>.
Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
- If <STRONG>el</STRONG> is required to get rid of standout (instead of
- merely writing normal text on top of it), <STRONG>xhp</STRONG> should be
+ If <STRONG>el</STRONG> is required to get rid of standout (instead of
+ merely writing normal text on top of it), <STRONG>xhp</STRONG> should be
given.
- Teleray terminals, where tabs turn all characters moved
- over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
- Note: the variable indicating this is now
- `dest_tabs_magic_smso'; in older versions, it was tel-
+ Teleray terminals, where tabs turn all characters moved
+ over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
+ Note: the variable indicating this is now
+ `dest_tabs_magic_smso'; in older versions, it was tel-
eray_glitch. This glitch is also taken to mean that it is
- not possible to position the cursor on top of a ``magic
+ not possible to position the cursor on top of a ``magic
cookie'', that to erase standout mode it is instead neces-
sary to use delete and insert line. The ncurses implemen-
tation ignores this glitch.
- The Beehive Superbee, which is unable to correctly trans-
- mit the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
- ing that the f1 key is used for escape and f2 for control
- C. (Only certain Superbees have this problem, depending
- on the ROM.) Note that in older terminfo versions, this
- capability was called `beehive_glitch'; it is now
+ The Beehive Superbee, which is unable to correctly trans-
+ mit the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
+ ing that the f1 key is used for escape and f2 for control
+ C. (Only certain Superbees have this problem, depending
+ on the ROM.) Note that in older terminfo versions, this
+ capability was called `beehive_glitch'; it is now
`no_esc_ctl_c'.
- Other specific terminal problems may be corrected by
+ Other specific terminal problems may be corrected by
adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
+
<STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
If there are two very similar terminals, one (the variant)
- can be defined as being just like the other (the base)
- with certain exceptions. In the definition of the vari-
- ant, the string capability <STRONG>use</STRONG> can be given with the name
- of the base terminal. The capabilities given before <STRONG>use</STRONG>
- override those in the base type named by <STRONG>use</STRONG>. If there
- are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
- order. That is, the rightmost <STRONG>use</STRONG> reference is processed
- first, then the one to its left, and so forth. Capabili-
- ties given explicitly in the entry override those brought
+ can be defined as being just like the other (the base)
+ with certain exceptions. In the definition of the vari-
+ ant, the string capability <STRONG>use</STRONG> can be given with the name
+ of the base terminal. The capabilities given before <STRONG>use</STRONG>
+ override those in the base type named by <STRONG>use</STRONG>. If there
+ are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
+ order. That is, the rightmost <STRONG>use</STRONG> reference is processed
+ first, then the one to its left, and so forth. Capabili-
+ ties given explicitly in the entry override those brought
in by <STRONG>use</STRONG> references.
A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
- the use reference that imports it, where <EM>xx</EM> is the capa-
+ the use reference that imports it, where <EM>xx</EM> is the capa-
bility. For example, the entry
- 2621-nl, smkx@, rmkx@, use=2621,
+ 2621-nl, smkx@, rmkx@, use=2621,
- defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
- capabilities, and hence does not turn on the function key
- labels when in visual mode. This is useful for different
+ defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
+ capabilities, and hence does not turn on the function key
+ labels when in visual mode. This is useful for different
modes for a terminal, or for different user preferences.
+
<STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
- Long terminfo entries are unlikely to be a problem; to
- date, no entry has even approached terminfo's 4096-byte
+ Long terminfo entries are unlikely to be a problem; to
+ date, no entry has even approached terminfo's 4096-byte
string-table maximum. Unfortunately, the termcap transla-
tions are much more strictly limited (to 1023 bytes), thus
- termcap translations of long terminfo entries can cause
+ termcap translations of long terminfo entries can cause
problems.
- The man pages for 4.3BSD and older versions of <STRONG>tgetent()</STRONG>
- instruct the user to allocate a 1024-byte buffer for the
- termcap entry. The entry gets null-terminated by the
+ The man pages for 4.3BSD and older versions of <STRONG>tgetent()</STRONG>
+ instruct the user to allocate a 1024-byte buffer for the
+ termcap entry. The entry gets null-terminated by the
termcap library, so that makes the maximum safe length for
- a termcap entry 1k-1 (1023) bytes. Depending on what the
- application and the termcap library being used does, and
+ a termcap entry 1k-1 (1023) bytes. Depending on what the
+ application and the termcap library being used does, and
where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
is searching for is, several bad things can happen.
- Some termcap libraries print a warning message or exit if
- they find an entry that's longer than 1023 bytes; others
- do not; others truncate the entries to 1023 bytes. Some
+ Some termcap libraries print a warning message or exit if
+ they find an entry that's longer than 1023 bytes; others
+ do not; others truncate the entries to 1023 bytes. Some
application programs allocate more than the recommended 1K
for the termcap entry; others do not.
Each termcap entry has two important sizes associated with
it: before "tc" expansion, and after "tc" expansion. "tc"
- is the capability that tacks on another termcap entry to
- the end of the current one, to add on its capabilities.
- If a termcap entry does not use the "tc" capability, then
+ is the capability that tacks on another termcap entry to
+ the end of the current one, to add on its capabilities.
+ If a termcap entry does not use the "tc" capability, then
of course the two lengths are the same.
- The "before tc expansion" length is the most important
- one, because it affects more than just users of that par-
- ticular terminal. This is the length of the entry as it
+ The "before tc expansion" length is the most important
+ one, because it affects more than just users of that par-
+ ticular terminal. This is the length of the entry as it
exists in /etc/termcap, minus the backslash-newline pairs,
which <STRONG>tgetent()</STRONG> strips out while reading it. Some termcap
- libraries strip off the final newline, too (GNU termcap
+ libraries strip off the final newline, too (GNU termcap
does not). Now suppose:
- * a termcap entry before expansion is more than 1023
+ * a termcap entry before expansion is more than 1023
bytes long,
* and the application has only allocated a 1k buffer,
- * and the termcap library (like the one in BSD/OS 1.1
- and GNU) reads the whole entry into the buffer, no
- matter what its length, to see if it is the entry it
+ * and the termcap library (like the one in BSD/OS 1.1
+ and GNU) reads the whole entry into the buffer, no
+ matter what its length, to see if it is the entry it
wants,
- * and <STRONG>tgetent()</STRONG> is searching for a terminal type that
+ * and <STRONG>tgetent()</STRONG> is searching for a terminal type that
either is the long entry, appears in the termcap file
- after the long entry, or does not appear in the file
- at all (so that <STRONG>tgetent()</STRONG> has to search the whole
+ after the long entry, or does not appear in the file
+ at all (so that <STRONG>tgetent()</STRONG> has to search the whole
termcap file).
- Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack,
- and probably core dump the program. Programs like telnet
- are particularly vulnerable; modern telnets pass along
- values like the terminal type automatically. The results
- are almost as undesirable with a termcap library, like
- SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
- when it reads an overly long termcap entry. If a termcap
- library truncates long entries, like OSF/1 3.0, it is
- immune to dying here but will return incorrect data for
+ Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack,
+ and probably core dump the program. Programs like telnet
+ are particularly vulnerable; modern telnets pass along
+ values like the terminal type automatically. The results
+ are almost as undesirable with a termcap library, like
+ SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
+ when it reads an overly long termcap entry. If a termcap
+ library truncates long entries, like OSF/1 3.0, it is
+ immune to dying here but will return incorrect data for
the terminal.
The "after tc expansion" length will have a similar effect
to the above, but only for people who actually set TERM to
- that terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
- sion once it is found the terminal type it was looking
+ that terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
+ sion once it is found the terminal type it was looking
for, not while searching.
In summary, a termcap entry that is longer than 1023 bytes
- can cause, on various combinations of termcap libraries
- and applications, a core dump, warnings, or incorrect
- operation. If it is too long even before "tc" expansion,
+ can cause, on various combinations of termcap libraries
+ and applications, a core dump, warnings, or incorrect
+ operation. If it is too long even before "tc" expansion,
it will have this effect even for users of some other ter-
- minal types and users whose TERM variable does not have a
+ minal types and users whose TERM variable does not have a
termcap entry.
When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
mentation of <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-
- tc length of a termcap translation is too long. The -c
- (check) option also checks resolved (after tc expansion)
+ tc length of a termcap translation is too long. The -c
+ (check) option also checks resolved (after tc expansion)
lengths.
<STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
- It is not wise to count on portability of binary terminfo
- entries between commercial UNIX versions. The problem is
- that there are at least two versions of terminfo (under
+ It is not wise to count on portability of binary terminfo
+ entries between commercial UNIX versions. The problem is
+ that there are at least two versions of terminfo (under
HP-UX and AIX) which diverged from System V terminfo after
- SVr1, and have added extension capabilities to the string
- table that (in the binary format) collide with System V
+ SVr1, and have added extension capabilities to the string
+ table that (in the binary format) collide with System V
and XSI Curses extensions.
</PRE>
<H2>EXTENSIONS</H2><PRE>
- Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
- SVr4, do not interpret the %A and %O operators in parame-
+ Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
+ SVr4, do not interpret the %A and %O operators in parame-
ter strings.
- SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
- while in an alternate-character-set mode (such modes may,
- among other things, map CR and NL to characters that do
- not trigger local motions). The <STRONG>ncurses</STRONG> implementation
- ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
- bility that an XPG4 implementation making the opposite
- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
+ SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
+ while in an alternate-character-set mode (such modes may,
+ among other things, map CR and NL to characters that do
+ not trigger local motions). The <STRONG>ncurses</STRONG> implementation
+ ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
+ bility that an XPG4 implementation making the opposite
+ interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
to have <STRONG>msgr</STRONG> turned off.
- The <STRONG>ncurses</STRONG> library handles insert-character and insert-
+ The <STRONG>ncurses</STRONG> library handles insert-character and insert-
character modes in a slightly non-standard way to get bet-
- ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+ ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
subsection above.
- The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
- <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
+ The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
+ <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
standard. They are deduced from the documentation for the
AT&T 505 terminal.
- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
- wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
- and emulators like xterm that can return mouse-tracking
+ Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
+ wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
+ and emulators like xterm that can return mouse-tracking
information in the keyboard-input stream.
- Different commercial ports of terminfo and curses support
- different subsets of the XSI Curses standard and (in some
+ Different commercial ports of terminfo and curses support
+ different subsets of the XSI Curses standard and (in some
cases) different extension sets. Here is a summary, accu-
rate as of October 1995:
<STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
ties.
- <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
+ <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
extended string capability (<STRONG>set_pglen</STRONG>).
- <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
- minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
- numerics with <STRONG>width_status_line</STRONG>; and the strings with
+ <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
+ minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
+ numerics with <STRONG>width_status_line</STRONG>; and the strings with
<STRONG>prtr_non</STRONG>.
- <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
+ <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func-
- tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
+ tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
<STRONG>label_off</STRONG>, plus some incompatible extensions in the string
table.
- <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
- through 63, plus a number of incompatible string table
+ <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
+ through 63, plus a number of incompatible string table
extensions.
- <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
+ <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
</PRE>
<STRONG>-r</STRONG> Force entry resolution (so there are no remaining
tc capabilities) even when doing translation to
- termcap format. This may be needed if you are pre-
- paring a termcap file for a termcap library (such
- as GNU termcap through version 1.3 or BSD termcap
- through 4.3BSD) that does not handle multiple tc
- capabilities per entry.
+ termcap format. This may be needed if you are
+ preparing a termcap file for a termcap library
+ (such as GNU termcap through version 1.3 or BSD
+ termcap through 4.3BSD) that does not handle multi-
+ ple tc capabilities per entry.
<STRONG>-s</STRONG> Summarize the compile by showing the directory into
which entries are written, and the number of
9 All values computed in construction of the hash ta-
ble
- If the debug level <EM>n</EM> is not given, it is taken to be one.
+ If the debug level <EM>n</EM> is not given, it is taken to be one.
All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capabil-
ity.
- When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
- entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
- from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
- created from <EM>file</EM> will be used first. If the environment
- variable <STRONG>TERMINFO</STRONG> is set, that directory is searched
+ When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
+ entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
+ from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
+ created from <EM>file</EM> will be used first. If the environment
+ variable <STRONG>TERMINFO</STRONG> is set, that directory is searched
instead of <STRONG>/usr/share/terminfo</STRONG>.) <STRONG>tic</STRONG> duplicates the capa-
- bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
- exception of those capabilities that explicitly are
+ bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
+ exception of those capabilities that explicitly are
defined in the current entry.
- When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a
- <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field, any canceled capabilities in
- <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
+ When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a
+ <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field, any canceled capabilities in
+ <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
- If the environment variable <STRONG>TERMINFO</STRONG> is set, the compiled
+ If the environment variable <STRONG>TERMINFO</STRONG> is set, the compiled
results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>.
Total compiled entries cannot exceed 4096 bytes. The name
- field cannot exceed 512 bytes. Terminal names exceeding
- the maximum alias length (32 characters on systems with
+ field cannot exceed 512 bytes. Terminal names exceeding
+ the maximum alias length (32 characters on systems with
long filenames, 14 characters otherwise) will be truncated
- to the maximum alias length and a warning message will be
+ to the maximum alias length and a warning message will be
printed.
</PRE>
<H2>COMPATIBILITY</H2><PRE>
- There is some evidence that historic <STRONG>tic</STRONG> implementations
- treated description fields with no whitespace in them as
- additional aliases or short names. This <STRONG>tic</STRONG> does not do
- that, but it does warn when description fields may be
- treated that way and check them for dangerous characters.
+ There is some evidence that historic <STRONG>tic</STRONG> implementations
+ treated description fields with no whitespace in them as
+ additional aliases or short names. This <STRONG>tic</STRONG> does not do
+ that, but it does warn when description fields may be
+ treated that way and check them for dangerous characters.
</PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
</PRE>
<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
be queried for the actual screen size.
<EM>capname</EM>
- indicates the capability from the <STRONG>terminfo</STRONG> data-
- base. When <STRONG>termcap</STRONG> support is compiled in, the
+ indicates the capability from the <STRONG>terminfo</STRONG>
+ database. When <STRONG>termcap</STRONG> support is compiled in, the
<STRONG>termcap</STRONG> name for the capability is also accepted.
<EM>parms</EM> If the capability is a string that takes parame-
table to decide which to pass as strings. Normally
<STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution.
If no parameters are given for the capability, <STRONG>tput</STRONG>
- writes the string without performing the substitu-
- tion.
+ writes the string without performing the
+ substitution.
<STRONG>-S</STRONG> allows more than one capability per invocation of
<STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from
<STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG>
Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode
sequence, and <STRONG>offbold</STRONG>, to end standout mode sequence,
- for the current terminal. This might be followed by
- a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG> <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG>
+ for the current terminal. This might be followed by
+ a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG> <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG>
<STRONG>${offbold}\c"</STRONG>
<STRONG>tput</STRONG> <STRONG>hc</STRONG>
- Set exit code to indicate if the current terminal is
+ Set exit code to indicate if the current terminal is
a hard copy terminal.
<STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
- Send the sequence to move the cursor to row 23, col-
+ Send the sequence to move the cursor to row 23, col-
umn 4.
<STRONG>tput</STRONG> <STRONG>cup</STRONG>
parameters substituted.
<STRONG>tput</STRONG> <STRONG>longname</STRONG>
- Print the long name from the <STRONG>terminfo</STRONG> database for
- the type of terminal specified in the environmental
+ Print the long name from the <STRONG>terminfo</STRONG> database for
+ the type of terminal specified in the environmental
variable <STRONG>TERM</STRONG>.
<STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<!</STRONG>
<STRONG>></STRONG> <STRONG>bold</STRONG>
<STRONG>></STRONG> <STRONG>!</STRONG>
- This example shows <STRONG>tput</STRONG> processing several capabili-
- ties in one invocation. It clears the screen, moves
- the cursor to position 10, 10 and turns on bold
- (extra bright) mode. The list is terminated by an
+ This example shows <STRONG>tput</STRONG> processing several capabili-
+ ties in one invocation. It clears the screen, moves
+ the cursor to position 10, 10 and turns on bold
+ (extra bright) mode. The list is terminated by an
exclamation mark (<STRONG>!</STRONG>) on a line by itself.
<STRONG>/usr/share/tabset/*</STRONG>
tab settings for some terminals, in a format appro-
- priate to be output to the terminal (escape
- sequences that set margins and tabs); for more
+ priate to be output to the terminal (escape
+ sequences that set margins and tabs); for more
information, see the "Tabs and Initialization" sec-
tion of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
</PRE>
<H2>EXIT CODES</H2><PRE>
If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> checks for errors from each
- line, and if any errors are found, will set the exit code
- to 4 plus the number of lines with errors. If no errors
- are found, the exit code is <STRONG>0</STRONG>. No indication of which
+ line, and if any errors are found, will set the exit code
+ to 4 plus the number of lines with errors. If no errors
+ are found, the exit code is <STRONG>0</STRONG>. No indication of which
line failed can be given so exit code <STRONG>1</STRONG> will never appear.
- Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation.
+ Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation.
If the <STRONG>-S</STRONG> option is not used, the exit code depends on the
type of <EM>capname</EM>:
<EM>boolean</EM>
- a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
+ a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
<EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
for this terminal <EM>type</EM> (the value of <EM>capname</EM>
<STRONG>tput</STRONG> prints the following error messages and sets the cor-
responding exit codes.
+
exit code error message
---------------------------------------------------------------------
<STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
<STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM>
<EM>name</EM> support. Other implementations of <STRONG>tput</STRONG> on SVr4-based
systems such as Solaris, IRIX64 and HPUX as well as others
- such as AIX and Tru64 provide support for <EM>capname</EM> oper-
- ands. A few platforms such as FreeBSD and NetBSD recog-
- nize termcap names rather than terminfo capability names
+ such as AIX and Tru64 provide support for <EM>capname</EM>
+ operands. A few platforms such as FreeBSD and NetBSD rec-
+ ognize termcap names rather than terminfo capability names
in their respective <STRONG>tput</STRONG> commands.
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
<STRONG>-r</STRONG> Print the terminal type to the standard error output.
- <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
+ <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
the environment variable <STRONG>TERM</STRONG> to the standard output.
- See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
+ See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
<STRONG>-V</STRONG> reports the version of ncurses which was used in this
program, and exits.
<STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, ter-
<STRONG><A HREF="minfo.5.html">minfo(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110212).
+ This describes <STRONG>ncurses</STRONG> version 5.8 (patch 20110226).
#!@SHELL@
-# $Id: run_tic.in,v 1.30 2011/02/21 01:05:37 tom Exp $
+# $Id: run_tic.in,v 1.32 2011/02/23 23:30:15 tom Exp $
##############################################################################
# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
# #
# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
+# Parent directory may not exist, which would confuse the install for hashed
+# database. Fix.
+PARENT=`echo "$TERMINFO" | sed -e 's%/[^/]*$%%'`
+if test -n "$PARENT"
+then
+ test -d $PARENT || mkdir -p $PARENT
+fi
+
# Remove the old terminfo stuff; we don't care if it existed before, and it
# would generate a lot of confusing error messages if we tried to overwrite it.
# We explicitly remove its contents rather than the directory itself, in case
/****************************************************************************
- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <tic.h>
-MODULE_ID("$Id: read_entry.c,v 1.107 2010/04/24 23:47:42 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.108 2011/02/26 15:36:06 tom Exp $")
#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
_nc_read_file_entry(const char *const filename, TERMTYPE *ptr)
/* return 1 if read, 0 if not found or garbled */
{
- int code, fd = -1;
+ FILE *fp = 0;
+ int code;
int limit;
char buffer[MAX_ENTRY_SIZE + 1];
if (_nc_access(filename, R_OK) < 0
- || (fd = open(filename, O_RDONLY | O_BINARY)) < 0) {
+ || (fp = fopen(filename, "rb")) == 0) {
T(("cannot open terminfo %s (errno=%d)", filename, errno));
code = TGETENT_NO;
} else {
- if ((limit = (int) read(fd, buffer, sizeof(buffer))) > 0) {
+ if ((limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp))
+ > 0) {
T(("read terminfo %s", filename));
if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) {
} else {
code = TGETENT_NO;
}
- close(fd);
+ fclose(fp);
}
return (code);
-------------------------------------------------------------------------------
--- Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. --
+-- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
-- copy of this software and associated documentation files (the --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README,v 1.43 2010/09/18 15:11:39 tom Exp $
+-- $Id: README,v 1.44 2011/02/26 00:09:25 tom Exp $
-------------------------------------------------------------------------------
The programs in this directory are designed to test your newest toy :-)
ttytype lib: ncurses
typeahead test: testcurs
typeahead_sp lib: ncurses
-unctrl test: ncurses redraw testcurs
+unctrl test: ncurses redraw test_add_wchstr test_addchstr testcurs
unctrl_sp lib: ncurses
unget_wch -
unget_wch_sp -