Import ncurses 5.6-20071222 snapshot onto the vender branch

This commit is contained in:
Rong-En Fan 2007-12-30 11:08:14 +00:00
parent 01b82453a3
commit 5ca44d1c91
206 changed files with 9901 additions and 5052 deletions

View File

@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: INSTALL,v 1.114 2006/12/17 19:58:19 tom Exp $
-- $Id: INSTALL,v 1.122 2007/12/01 19:37:47 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
@ -304,6 +304,11 @@ SUMMARY OF CONFIGURE OPTIONS:
return deceptive results, so you may have to override the configure
script. Or you may be building tic for a smaller machine.
--disable-big-strings
Disable compile-time optimization of predefined tables which puts
all of their strings into a very long string, to reduce relocation
overhead.
--disable-database
Use only built-in data. The ncurses libraries normally read terminfo
and termcap data from disk. You can configure ncurses to have a
@ -334,6 +339,16 @@ SUMMARY OF CONFIGURE OPTIONS:
For testing, compile-in code that frees memory that normally would not
be freed, to simplify analysis of memory-leaks.
Any implementation of curses must not free the memory associated with
a screen, since (even after calling endwin()), it must be available
for use in the next call to refresh(). There are also chunks of
memory held for performance reasons. That makes it hard to analyze
curses applications for memory leaks. To work around this, build
a debugging version of the ncurses library which frees those chunks
which it can, and provides the _nc_free_and_exit() function to free
the remainder on exit. The ncurses utility and test programs use this
feature, e.g., via the ExitProgram() macro.
--disable-lp64
The header files will ignore use of the _LP64 symbol to make chtype
and mmask_t types 32 bits (they may be long on 64-bit hosts, for
@ -358,6 +373,13 @@ SUMMARY OF CONFIGURE OPTIONS:
rather than the include directory. This makes it simpler to avoid
compile-time conflicts with other versions of curses.h
--disable-relink
If --enable-rpath is given, the generated makefiles normally will
rebuild the libraries during install. Use this option to simply
copy whatever the linked produced.
This option is ignored if --enable-rpath is not given.
--disable-root-environ
Compile with environment restriction, so certain environment variables
are not available when running as root, or via a setuid/setgid
@ -476,12 +498,22 @@ SUMMARY OF CONFIGURE OPTIONS:
may not be accurate, or that your stty settings have disabled the use
of tabs.
--enable-mixed-case
Controls whether the filesystem on which the terminfo database resides
supports mixed-case filenames (normal for UNIX, but not on other
systems). If you do not specify this option, the configure script
checks the current filesystem.
--enable-no-padding
Compile-in support for the $NCURSES_NO_PADDING environment variable,
which allows you to suppress the effect of non-mandatory padding in
terminfo entries. This is the default, unless you have disabled the
extended functions.
--enable-reentrant
Compile experimental configuration which improves reentrant use of the
library by reducing global and static variables.
--enable-rpath
Use rpath option when generating shared libraries, and (with some
restrictions) when linking the corresponding programs. This originally
@ -495,6 +527,9 @@ SUMMARY OF CONFIGURE OPTIONS:
environment variable, they do not work with setuid applications since
the LD_LIBRARY_PATH variable would be unset in that situation.
This option does not apply to --with-libtool, since libtool makes
extra assumptions about rpath.
--enable-safe-sprintf
Compile with experimental safe-sprintf code. You may consider using
this if you are building ncurses for a system that has neither
@ -659,10 +694,16 @@ SUMMARY OF CONFIGURE OPTIONS:
See also --without-dlsym
--with-hashed-db
--with-hashed-db[=XXX]
Use a hashed database for storing terminfo data rather than storing
each compiled entry in a separate binary file within a directory
tree.
In particular, this uses the Berkeley database 1.8.5 interface, as
provided by that and its successors db 2, 3, and 4. The actual
interface is slightly different in the successor versions of the
Berkeley database. The database should have been configured using
"--enable-compat185".
If you use this option for configuring ncurses, tic will only be able
to write entries in the hashed database. infocmp can still read
@ -674,6 +715,12 @@ SUMMARY OF CONFIGURE OPTIONS:
You cannot have a directory containing both hashed-database and
filesystem-based terminfo entries.
Use the parameter value to give the install-prefix used for the
datbase, e.g.,
--with-hashed-db=/usr/local/BigBase
to find the corresponding include- and lib-directories under the
given directory.
See also the --enable-getcap option.
--with-install-prefix=XXX
@ -833,6 +880,15 @@ SUMMARY OF CONFIGURE OPTIONS:
Specify a search-list of termcap files which will be compiled into the
ncurses library (default: /etc/termcap:/usr/share/misc/termcap)
--with-ticlib[=XXX]
When building the ncurses library, build a separate library for
the modules that are used only by the utility programs. Normally
those would be bundled with the termlib or ncurses libraries.
If an option value is given, that overrides the name of the tic
library. As in termlib, there is no ABI difference between the
"wide" libticw.so and libtic.so
--with-trace
Configure the trace() function as part of the all models of the ncurses
library. Normally it is part of the debug (libncurses_g) library only.

View File

@ -4,6 +4,7 @@
./Ada95/README
./Ada95/TODO
./Ada95/gen/Makefile.in
./Ada95/gen/adacurses-config.in
./Ada95/gen/gen.c
./Ada95/gen/html.m4
./Ada95/gen/normal.m4
@ -20,6 +21,7 @@
./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
./Ada95/gen/terminal_interface-curses-panels.ads.m4
./Ada95/gen/terminal_interface-curses-trace.ads.m4
./Ada95/gen/terminal_interface-curses.adb.m4
./Ada95/gen/terminal_interface-curses.ads.m4
./Ada95/samples/Makefile.in
./Ada95/samples/README
@ -163,7 +165,6 @@
./Ada95/src/terminal_interface-curses-text_io.adb
./Ada95/src/terminal_interface-curses-text_io.ads
./Ada95/src/terminal_interface-curses-trace.adb_p
./Ada95/src/terminal_interface-curses.adb
./Ada95/src/terminal_interface.ads
./INSTALL
./MANIFEST
@ -553,8 +554,10 @@
./man/curs_instr.3x
./man/curs_inwstr.3x
./man/curs_kernel.3x
./man/curs_legacy.3x
./man/curs_mouse.3x
./man/curs_move.3x
./man/curs_opaque.3x
./man/curs_outopts.3x
./man/curs_overlay.3x
./man/curs_pad.3x
@ -709,7 +712,8 @@
./mk-0th.awk
./mk-1st.awk
./mk-2nd.awk
./mkinstalldirs
./mk-hdr.awk
./mkdirs.sh
./ncurses/Makefile.in
./ncurses/README
./ncurses/README.IZ
@ -799,6 +803,7 @@
./ncurses/base/safe_sprintf.c
./ncurses/base/sigaction.c
./ncurses/base/tries.c
./ncurses/base/use_window.c
./ncurses/base/version.c
./ncurses/base/vsscanf.c
./ncurses/base/wresize.c
@ -808,6 +813,8 @@
./ncurses/llib-lncursesw
./ncurses/modules
./ncurses/tinfo/MKcaptab.awk
./ncurses/tinfo/MKcaptab.sh
./ncurses/tinfo/MKcodes.awk
./ncurses/tinfo/MKfallback.sh
./ncurses/tinfo/MKkeys_list.sh
./ncurses/tinfo/MKnames.awk
@ -824,6 +831,7 @@
./ncurses/tinfo/comp_scan.c
./ncurses/tinfo/db_iterator.c
./ncurses/tinfo/doalloc.c
./ncurses/tinfo/entries.c
./ncurses/tinfo/free_ttype.c
./ncurses/tinfo/getenv_num.c
./ncurses/tinfo/hashed_db.c
@ -856,6 +864,7 @@
./ncurses/tinfo/setbuf.c
./ncurses/tinfo/strings.c
./ncurses/tinfo/trim_sgr0.c
./ncurses/tinfo/use_screen.c
./ncurses/tinfo/write_entry.c
./ncurses/trace/README
./ncurses/trace/lib_trace.c
@ -891,6 +900,7 @@
./ncurses/widechar/lib_in_wchnstr.c
./ncurses/widechar/lib_ins_wch.c
./ncurses/widechar/lib_inwstr.c
./ncurses/widechar/lib_key_name.c
./ncurses/widechar/lib_pecho_wchar.c
./ncurses/widechar/lib_slk_wset.c
./ncurses/widechar/lib_unget_wch.c
@ -934,29 +944,6 @@
./progs/toe.c
./progs/tput.c
./progs/tset.c
./tack/COPYING
./tack/HISTORY
./tack/Makefile.in
./tack/README
./tack/ansi.c
./tack/charset.c
./tack/color.c
./tack/control.c
./tack/crum.c
./tack/edit.c
./tack/fun.c
./tack/init.c
./tack/menu.c
./tack/modes.c
./tack/modules
./tack/output.c
./tack/pad.c
./tack/scan.c
./tack/sync.c
./tack/sysdep.c
./tack/tack.1
./tack/tack.c
./tack/tack.h
./tar-copy.sh
./test/Makefile.in
./test/README
@ -981,6 +968,7 @@
./test/demo_termcap.c
./test/ditto.c
./test/dots.c
./test/dots_mvcur.c
./test/echochar.c
./test/edit_field.c
./test/edit_field.h
@ -992,8 +980,11 @@
./test/gdc.c
./test/hanoi.c
./test/hashtest.c
./test/inch_wide.c
./test/inchs.c
./test/ins_wide.c
./test/inserts.c
./test/key_names.c
./test/keynames.c
./test/knight.c
./test/linux-color.dat
@ -1010,8 +1001,15 @@
./test/rain.c
./test/redraw.c
./test/savescreen.c
./test/savescreen.sh
./test/tclock.c
./test/test.priv.h
./test/test_arrays.c
./test/test_get_wstr.c
./test/test_getstr.c
./test/test_instr.c
./test/test_inwstr.c
./test/test_opaque.c
./test/testaddch.c
./test/testcurs.c
./test/testscanw.c

View File

@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. --
-- Copyright (c) 1998-2006,2007 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 --
@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: NEWS,v 1.1056 2006/12/17 20:36:26 tom Exp $
-- $Id: NEWS,v 1.1188 2007/12/22 23:56:08 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -45,9 +45,512 @@ See the AUTHORS file for the corresponding full names.
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
20071222
+ continue implementing support for threading demo by adding mutex
for delwin().
20071215
+ add several functions to C++ binding which wrap C functions that
pass a WINDOW* parameter (request by Chris Lee).
20071201
+ add note about configure options needed for Berkeley database to the
INSTALL file.
+ improve checks for version of Berkeley database libraries.
+ amend fix for rpath to not modify LDFLAGS if the platform has no
applicable transformation (report by Christian Ebert, cf: 20071124).
20071124
+ modify configure option --with-hashed-db to accept a parameter which
is the install-prefix of a given Berkeley Database (prompted by
pierre4d2 comments).
+ 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 (report by Alfred Fung).
+ remove unneeded window-parameter from C++ binding for wresize (report
by Chris Lee).
20071117
+ modify the support for filesystems which do not support mixed-case to
generate 2-character (hexadecimal) codes for the lower-level of the
filesystem terminfo database (request by Michail Vidiassov).
+ add configure option --enable-mixed-case, to allow overriding the
configure script's check if the filesystem supports mixed-case
filenames.
+ add wresize() to C++ binding (request by Chris Lee).
+ define NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS in curses.h to make
it simpler to tell if the extended functions and/or colors are
declared.
20071103
+ update memory-leak checks for changes to names.c and codes.c
+ correct acsc strings in h19, z100 (patch by Benjamin C W Sittler).
20071020
+ continue implementing support for threading demo by adding mutex
for use_window().
+ add mrxvt terminfo entry, add/fix xterm building blocks for modified
cursor keys -TD
+ compile with FreeBSD "contemporary" TTY interface (patch by
Rong-En Fan).
20071013
+ modify makefile rules to allow clear, tput and tset to be built
without libtic. The other programs (infocmp, tic and toe) rely on
that library.
+ add/modify null-pointer checks in several functions for SP and/or
the WINDOW* parameter (report by Thorben Krueger).
+ fixes for field_buffer() in formw library (see Redhat Bugzilla
#310071, patches by Miroslav Lichvar).
+ improve performance of NCURSES_CHAR_EQ code (patch by Miroslav
Lichvar).
+ update/improve mlterm and rxvt terminfo entries, e.g., for
the modified cursor- and keypad-keys -TD
20071006
+ add code to curses.priv.h ifdef'd with NCURSES_CHAR_EQ, which
changes the CharEq() macro to an inline function to allow comparing
cchar_t struct's without comparing gaps in a possibly unpacked
memory layout (report by Miroslav Lichvar).
20070929
+ add new functions to lib_trace.c to setup mutex's for the _tracef()
calls within the ncurses library.
+ for the reentrant model, move _nc_tputs_trace and _nc_outchars into
the SCREEN.
+ start modifying test/worm.c to provide threading demo (incomplete).
+ separated ifdef's for some BSD-related symbols in tset.c, to make
it compile on LynxOS (report by Greg Gemmer).
20070915
+ modify Ada95/gen/Makefile to use shlib script, to simplify building
shared-library configuration on platforms lacking rpath support.
+ build-fix for Ada95/src/Makefile to reflect changed dependency for
the terminal-interface-curses-aux.adb file which is now generated.
+ restructuring test/worm.c, for use_window() example.
20070908
+ add use_window() and use_screen() functions, to develop into support
for threaded library (incomplete).
+ fix typos in man/curs_opaque.3x which kept the install script from
creating symbolic links to two aliases created in 20070818 (report by
Rong-En Fan).
20070901
+ remove a spurious newline from output of html.m4, which caused links
for Ada95 html to be incorrect for the files generated using m4.
+ start investigating mutex's for SCREEN manipulation (incomplete).
+ minor cleanup of codes.c/names.c for --enable-const
+ expand/revise "Routine and Argument Names" section of ncurses manpage
to address report by David Givens in newsgroup discussion.
+ fix interaction between --without-progs/--with-termcap configure
options (report by Michail Vidiassov).
+ fix typo in "--disable-relink" option (report by Michail Vidiassov).
20070825
+ fix a sign-extension bug in infocmp's repair_acsc() function
(cf: 971004).
+ fix old configure script bug which prevented "--disable-warnings"
option from working (patch by Mike Frysinger).
20070818
+ add 9term terminal description (request by Juhapekka Tolvanen) -TD
+ modify comp_hash.c's string output to avoid misinterpreting a null
"\0" followed by a digit.
+ modify MKnames.awk and MKcodes.awk to support big-strings.
This only applies to the cases (broken linker, reentrant) where
the corresponding arrays are accessed via wrapper functions.
+ split MKnames.awk into two scripts, eliminating the shell redirection
which complicated the make process and also the bogus timestamp file
which was introduced to fix "make -j".
+ add test/test_opaque.c, test/test_arrays.c
+ add wgetscrreg() and wgetparent() for applications that may need it
when NCURSES_OPAQUE is defined (prompted by Bryan Christ).
20070812
+ amend treatment of infocmp "-r" option to retain the 1023-byte limit
unless "-T" is given (cf: 981017).
+ modify comp_captab.c generation to use big-strings.
+ make _nc_capalias_table and _nc_infoalias_table private accessed via
_nc_get_alias_table() since the tables are used only within the tic
library.
+ modify configure script to skip Intel compiler in CF_C_INLINE.
+ make _nc_info_hash_table and _nc_cap_hash_table private accessed via
_nc_get_hash_table() since the tables are used only within the tic
library.
20070728
+ make _nc_capalias_table and _nc_infoalias_table private, accessed via
_nc_get_alias_table() since they are used only by parse_entry.c
+ make _nc_key_names private since it is used only by lib_keyname.c
+ add --disable-big-strings configure option to control whether
unctrl.c is generated using the big-string optimization - which may
use strings longer than supported by a given compiler.
+ reduce relocation tables for tic, infocmp by changing type of
internal hash tables to short, and make those private symbols.
+ eliminate large fixed arrays from progs/infocmp.c
20070721
+ change winnstr() to stop at the end of the line (cf: 970315).
+ add test/test_get_wstr.c
+ add test/test_getstr.c
+ add test/test_inwstr.c
+ add test/test_instr.c
20070716
+ restore a call to obtain screen-size in _nc_setupterm(), which
is used in tput and other non-screen applications via setupterm()
(Debian #433357, reported by Florent Bayle, Christian Ohm,
cf: 20070310).
20070714
+ add test/savescreen.c test-program
+ add check to trace-file open, if the given name is a directory, add
".log" to the name and try again.
+ add konsole-256color entry -TD
+ add extra gcc warning options from xterm.
+ minor fixes for ncurses/hashmap test-program.
+ modify configure script to quiet c++ build with libtool when the
--disable-echo option is used.
+ modify configure script to disable ada95 if libtool is selected,
writing a warning message (addresses FreeBSD ports/114493).
+ update config.guess, config.sub
20070707
+ add continuous-move "M" to demo_panels to help test refresh changes.
+ improve fix for refresh of window on top of multi-column characters,
taking into account some split characters on left/right window
boundaries.
20070630
+ add "widec" row to _tracedump() output to help diagnose remaining
problems with multi-column characters.
+ partial fix for refresh of window on top of multi-column characters
which are partly overwritten (report by Sadrul H Chowdhury).
+ ignore A_CHARTEXT bits in vidattr() and vid_attr(), in case
multi-column extension bits are passed there.
+ add setlocale() call to demo_panels.c, needed for wide-characters.
+ add some output flags to _nc_trace_ttymode to help diagnose a bug
report by Larry Virden, i.e., ONLCR, OCRNL, ONOCR and ONLRET,
20070623
+ add test/demo_panels.c
+ implement opaque version of setsyx() and getsyx().
20070612
+ corrected xterm+pcf2 terminfo modifiers for F1-F4, to match xterm
#226 -TD
+ split-out key_name() from MKkeyname.awk since it now depends upon
wunctrl() which is not in libtinfo (report by Rong-En Fan).
20070609
+ add test/key_name.c
+ add stdscr cases to test/inchs.c and test_inch_wide.c
+ update test/configure
+ correct formatting of DEL (0x7f) in _nc_vischar().
+ null-terminate result of wunctrl().
+ add null-pointer check in key_name() (report by Andreas Krennmair,
cf: 20020901).
20070602
+ adapt mouse-handling code from menu library in form-library
(discussion with Clive Nicolson).
+ add a modification of test/dots.c, i.e., test/dots_mvcur.c to
illustrate how to use mvcur().
+ modify wide-character flavor of SetAttr() to preserve the
WidecExt() value stored in the .attr field, e.g., in case it
is overwritten by chgat (report by Aleksi Torhamo).
+ correct buffer-size for _nc_viswbuf2n() (report by Aleksi Torhamo).
+ build-fixes for Solaris 2.6 and 2.7 (patch by Peter O'Gorman).
20070526
+ 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() (prompted by LinuxBase #1604).
+ document some portability issues in man/curs_util.3x
+ add a shadow copy of TTY buffer to _nc_prescreen to fix applications
broken by moving that data into SCREEN (cf: 20061230).
20070512
+ add 'O' (wide-character panel test) in ncurses.c to demonstrate a
problem reported by Sadrul H Chowdhury with repainting parts of
a fullwidth cell.
+ modify slk_init() so that if there are preceding calls to
ripoffline(), those affect the available lines for soft-keys (adapted
from patch by Clive Nicolson).
+ document some portability issues in man/curs_getyx.3x
20070505
+ fix a bug in Ada95/samples/ncurses which caused a variable to
become uninitialized in the "b" test.
+ fix Ada95/gen/Makefile.in adahtml rule to account for recent
movement of files, fix a few incorrect manpage references in the
generated html.
+ add Ada95 binding to _nc_freeall() as Curses_Free_All to help with
memory-checking.
+ correct some functions in Ada95 binding which were using return value
from C where none was returned: idcok(), immedok() and wtimeout().
+ amend recent changes for Ada95 binding to make it build with
Cygwin's linker, e.g., with configure options
--enable-broken-linker --with-ticlib
20070428
+ add a configure check for gcc's options for inlining, use that to
quiet a warning message where gcc's default behavior changed from
3.x to 4.x.
+ improve warning message when checking if GPM is linked to curses
library by not warning if its use of "wgetch" is via a weak symbol.
+ add loader options when building with static libraries to ensure that
an installed shared library for ncurses does not conflict. This is
reported as problem with Tru64, but could affect other platforms
(report Martin Mokrejs, analysis by Tim Mooney).
+ fix build on cygwin after recent ticlib/termlib changes, i.e.,
+ adjust TINFO_SUFFIX value to work with cygwin's dll naming
+ revert a change from 20070303 which commented out dependency of
SHLIB_LIST in form/menu/panel/c++ libraries.
+ fix initialization of ripoff stack pointer (cf: 20070421).
20070421
+ move most static variables into structures _nc_globals and
_nc_prescreen, to simplify storage.
+ add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
type for data manipulated by signal handlers (prompted by comments
in mailing.openbsd.bugs newsgroup).
+ modify CF_WITH_LIBTOOL to allow one to pass options such as -static
to the libtool create- and link-operations.
20070414
+ fix whitespace in curs_opaque.3x which caused a spurious ';' in
the installed aliases (report by Peter Santoro).
+ fix configure script to not try to generate adacurses-config when
Ada95 tree is not built.
20070407
+ add man/curs_legacy.3x, man/curs_opaque.3x
+ fix acs_map binding for Ada95 when --enable-reentrant is used.
+ add adacurses-config to the Ada95 install, based on version from
FreeBSD port, in turn by Juergen Pfeifer in 2000 (prompted by
comment on comp.lang.ada newsgroup).
+ fix includes in c++ binding to build with Intel compiler
(cf: 20061209).
+ update install rule in Ada95 to use mkdirs.sh
> other fixes prompted by inspection for Coverity report:
+ modify ifdef's for c++ binding to use try/catch/throw statements
+ add a null-pointer check in tack/ansi.c request_cfss()
+ fix a memory leak in ncurses/base/wresize.c
+ corrected check for valid memu/meml capabilities in
progs/dump_entry.c when handling V_HPUX case.
> fixes based on Coverity report:
+ remove dead code in test/bs.c
+ remove dead code in test/demo_defkey.c
+ remove an unused assignment in progs/infocmp.c
+ fix a limit check in tack/ansi.c tools_charset()
+ fix tack/ansi.c tools_status() to perform the VT320/VT420
tests in request_cfss(). The function had exited too soon.
+ fix a memory leak in tic.c's make_namelist()
+ fix a couple of places in tack/output.c which did not check for EOF.
+ fix a loop-condition in test/bs.c
+ add index checks in lib_color.c for color palettes
+ add index checks in progs/dump_entry.c for version_filter() handling
of V_BSD case.
+ fix a possible null-pointer dereference in copywin()
+ fix a possible null-pointer dereference in waddchnstr()
+ add a null-pointer check in _nc_expand_try()
+ add a null-pointer check in tic.c's make_namelist()
+ add a null-pointer check in _nc_expand_try()
+ add null-pointer checks in test/cardfile.c
+ fix a double-free in ncurses/tinfo/trim_sgr0.c
+ fix a double-free in ncurses/base/wresize.c
+ add try/catch block to c++/cursesmain.cc
20070331
+ modify Ada95 binding to build with --enable-reentrant by wrapping
global variables (bug: acs_map does not yet work).
+ modify Ada95 binding to use the new access-functions, allowing it
to build/run when NCURSES_OPAQUE is set.
+ add access-functions and macros to return properties of the WINDOW
structure, e.g., when NCURSES_OPAQUE is set.
+ improved install-sh's quoting.
+ use mkdirs.sh rather than mkinstalldirs, e.g., to use fixes from
other programs.
20070324
+ eliminate part of the direct use of WINDOW data from Ada95 interface.
+ fix substitutions for termlib filename to make configure option
--enable-reentrant work with --with-termlib.
+ change a constructor for NCursesWindow to allow compiling with
NCURSES_OPAQUE set, since we cannot pass a reference to
an opaque pointer.
20070317
+ ignore --with-chtype=unsigned since unsigned is always added to
the type in curses.h; do the same for --with-mmask-t.
+ change warning regarding --enable-ext-colors and wide-character
in the configure script to an error.
+ tweak error message in CF_WITH_LIBTOOL to distinguish other programs
such as Darwin's libtool program (report by Michail Vidiassov)
+ modify edit_man.sh to allow for multiple substitutions per line.
+ set locale in misc/ncurses-config.in since it uses a range
+ change permissions libncurses++.a install (report by Michail
Vidiassov).
+ corrected length of temporary buffer in wide-character version
of set_field_buffer() (related to report by Bryan Christ).
20070311
+ fix mk-1st.awk script install_shlib() function, broken in 20070224
changes for cygwin (report by Michail Vidiassov).
20070310
+ increase size of array in _nc_visbuf2n() to make "tic -v" work
properly in its similar_sgr() function (report/analysis by Peter
Santoro).
+ add --enable-reentrant configure option for ongoing changes to
implement a reentrant version of ncurses:
+ libraries are suffixed with "t"
+ wrap several global variables (curscr, newscr, stdscr, ttytype,
COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES and TABSIZE) as
functions returning values stored in SCREEN or cur_term.
+ move some initialization (LINES, COLS) from lib_setup.c,
i.e., setupterm() to _nc_setupscreen(), i.e., newterm().
20070303
+ regenerated html documentation.
+ add NCURSES_OPAQUE symbol to curses.h, will use to make structs
opaque in selected configurations.
+ move the chunk in lib_acs.c which resets acs capabilities when
running on a terminal whose locale interferes with those into
_nc_setupscreen(), so the libtinfo/libtinfow files can be made
identical (requested by Miroslav Lichvar).
+ do not use configure variable SHLIB_LIBS for building libraries
outside the ncurses directory, since that symbol is customized
only for that directory, and using it introduces an unneeded
dependency on libdl (requested by Miroslav Lichvar).
+ 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 (report by Jeff
Chua).
+ revised section "Using NCURSES under XTERM" in ncurses-intro.html
(prompted by newsgroup comment by Nick Guenther).
20070224
+ change internal return codes of _nc_wgetch() to check for cases
where KEY_CODE_YES should be returned, e.g., if a KEY_RESIZE was
ungetch'd, and read by wget_wch().
+ fix static-library build broken in 20070217 changes to remove "-ldl"
(report by Miroslav Lichvar).
+ change makefile/scripts for cygwin to allow building termlib.
+ use Form_Hook in manpages to match form.h
+ use Menu_Hook in manpages, as well as a few places in menu.h
+ correct form- and menu-manpages to use specific Field_Options,
Menu_Options and Item_Options types.
+ correct prototype for _tracechar() in manpage (cf: 20011229).
+ correct prototype for wunctrl() in manpage.
20070217
+ fixes for $(TICS_LIST) in ncurses/Makefile (report by Miroslav
Lichvar).
+ modify relinking of shared libraries to apply only when rpath is
enabled, and add --disable-relink option which can be used to
disable the feature altogether (reports by Michail Vidiassov,
Adam J Richter).
+ fix --with-termlib option for wide-character configuration, stripping
the "w" suffix in one place (report by Miroslav Lichvar).
+ remove "-ldl" from some library lists to reduce dependencies in
programs (report by Miroslav Lichvar).
+ correct description of --enable-signed-char in configure --help
(report by Michail Vidiassov).
+ add pattern for GNU/kFreeBSD configuration to CF_XOPEN_SOURCE,
which matches an earlier change to CF_SHARED_OPTS, from xterm #224
fixes.
+ remove "${DESTDIR}" from -install_name option used for linking
shared libraries on Darwin (report by Michail Vidiassov).
20070210
+ add test/inchs.c, test_inch_wide.c, to test win_wchnstr().
+ remove libdl from library list for termlib (report by Miroslav
Lichvar).
+ fix configure.in to allow --without-progs --with-termlib (patch by
Miroslav Lichvar).
+ modify win_wchnstr() to ensure that only a base cell is returned
for each multi-column character (prompted by report by Wei Kong
regarding change in mvwin_wch() cf: 20041023).
20070203
+ modify fix_wchnstr() in form library to strip attributes (and color)
from the cchar_t array (field cells) read from a field's window.
Otherwise, when copying the field cells back to the window, the
associated color overrides the field's background color (report by
Ricardo Cantu).
+ improve tracing for form library, showing created forms, fields, etc.
+ ignore --enable-rpath configure option if --with-shared was omitted.
+ add _nc_leaks_tinfo(), _nc_free_tic(), _nc_free_tinfo() entrypoints
to allow leak-checking when both tic- and tinfo-libraries are built.
+ drop CF_CPP_VSCAN_FUNC macro from configure script, since C++ binding
no longer relies on it.
+ disallow combining configure script options --with-ticlib and
--enable-termcap (report by Rong-En Fan).
+ remove tack from ncurses tree.
20070128
+ fix typo in configure script that broke --with-termlib option
(report by Rong-En Fan).
20070127
+ improve fix for FreeBSD gnu/98975, to allow for null pointer passed
to tgetent() (report by Rong-en Fan).
+ update tack/HISTORY and tack/README to tell how to build it after
it is removed from the ncurses tree.
+ fix configure check for libtool's version to trim blank lines
(report by sci-fi@hush.ai).
+ review/eliminate other original-file artifacts in cursesw.cc, making
its license consistent with ncurses.
+ use ncurses vw_scanw() rather than reading into a fixed buffer in
the c++ binding for scanw() methods (prompted by report by Nuno Dias).
+ eliminate fixed-buffer vsprintf() calls in c++ binding.
20070120
+ add _nc_leaks_tic() to separate leak-checking of tic library from
term/ncurses libraries, and thereby eliminate a library dependency.
+ fix test/mk-test.awk to ignore blank lines.
+ correct paths in include/headers, for --srcdir (patch by Miroslav
Lichvar).
20070113
+ add a break-statement in misc/shlib to ensure that it exits on the
_first_ matched directory (report by Paul Novak).
+ add tack/configure, which can be used to build tack outside the
ncurses build-tree.
+ add --with-ticlib option, to build/install the tic-support functions
in a separate library (suggested by Miroslav Lichvar).
20070106
+ change MKunctrl.awk to reduce relocation table for unctrl.o
+ change MKkeyname.awk to reduce relocation table for keyname.o
(patch by Miroslav Lichvar).
20061230
+ modify configure check for libtool's version to trim blank lines
(report by sci-fi@hush.ai).
+ modify some modules to allow them to be reentrant if _REENTRANT is
defined: lib_baudrate.c, resizeterm.c (local data only)
+ eliminate static data from some modules: add_tries.c, hardscroll.c,
lib_ttyflags.c, lib_twait.c
+ improve manpage install to add aliases for the transformed program
names, e.g., from --program-prefix.
+ used linklint to verify links in the HTML documentation, made fixes
to manpages as needed.
+ fix a typo in curs_mouse.3x (report by William McBrine).
+ fix install-rule for ncurses5-config to make the bin-directory.
20061223
+ modify configure script to omit the tic (terminfo compiler) support
from ncurses library if --without-progs option is given.
+ modify install rule for ncurses5-config to do this via "install.libs"
+ modify shared-library rules to allow FreeBSD 3.x to use rpath.
+ update config.guess, config.sub
20061217 5.6 release for upload to ftp.gnu.org
20061217
20061217
+ add ifdef's for <wctype.h> for HPUX, which has the corresponding
definitions in <wchar.h>.
+ revert the va_copy() change from 20061202, since it was neither
@ -62,7 +565,7 @@ it is not possible to add this information.
+ modify configure --with-gpm option to allow it to accept a parameter,
i.e., the name of the dynamic GPM library to load via dlopen()
(requested by Bryan Henderson).
+ add configure option --with-valgrind (from vile).
+ add configure option --with-valgrind, changes from vile.
+ modify configure script AC_TRY_RUN and AC_TRY_LINK checks to use
'return' in preference to 'exit()'.
@ -1524,7 +2027,8 @@ it is not possible to add this information.
20031108
+ add DJGPP to special case of DOS-style drive letters potentially
appearing in TERMCAP environment variable.
+ fix some spelling in comments (reports by jmc, Jonathon Gray).
+ fix some spelling in comments (reports by Jason McIntyre, Jonathon
Gray).
+ update config.guess, config.sub
20031101
@ -1814,7 +2318,7 @@ it is not possible to add this information.
"--srcdir" work (report by Warren L Dodge).
+ correct missing definition of $(CC) in Ada95/gen/Makefile.in
(reported by Warren L Dodge <warrend@mdhost.cse.tek.com>).
+ fix typos and whitespace in manpages (patch by jmc
+ fix typos and whitespace in manpages (patch by Jason McIntyre
<jmc@prioris.mini.pw.edu.pl>).
20030503
@ -3449,7 +3953,7 @@ it is not possible to add this information.
20000923
+ modify rs2 capability in xterm-r6 and similar where cursor
save/restore bracketed the sequence for resetting video attributes.
save/restore bracketed the sequence for resetting video attributes.
The cursor restore would undo that (report by John Hawkinson
<jhawk@MIT.EDU> (see NetBSD misc/11052)).
+ using parameter check added to tic, corrected 27 typos in
@ -4266,7 +4770,7 @@ it is not possible to add this information.
<bledp@voila.fr>)).
+ change renaming of dft_fgbg.3x to use_default_colors.3ncurses in
man_db.renames, since Debian is not concerned with 14-character
filename limitation (from Debian bug report by Josip Rodin
filename limitation (Debian bug report by Josip Rodin
<joy@cibalia.gkvk.hr>).
+ corrected scoansi terminfo entry by testing with scoterm and console.
+ revert change from 990614 to terminal_interface-curses-forms.ads.m4,
@ -5309,7 +5813,7 @@ it is not possible to add this information.
980321
+ revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t
declared (from Adam J. Richter <adam@yggdrasil.com>)
declared (from Adam J Richter <adam@yggdrasil.com>)
+ remove spurious curs_set() call from leaveok() (J T Conklin).
+ corrected handling leaveok() in doupdate() (patch by Alexander V.
Lukyanov).

View File

@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. --
-- Copyright (c) 1998-2006,2007 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 --
@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: TO-DO,v 1.48 2006/10/28 19:49:16 tom Exp $
-- $Id: TO-DO,v 1.49 2007/02/03 16:29:17 tom Exp $
-------------------------------------------------------------------------------
SHORT-TERM TO-DO ITEMS:
@ -58,9 +58,6 @@ Known Problems:
+ The window classes defined in the c++ subdirectory need documentation. Some
C++ programmer could earn a lot of good karma by doing this...
+ The resizeterm() function does not handle ripped-off lines such as that done
for the slk_XXX functions.
+ vid_attr() should support the set_a_attributes (sgr1) string, but does not.
There appear to be no terminals that require that functionality.
@ -75,19 +72,19 @@ Portability (or lack thereof):
ncurses/tty/lib_tstp.c .
+ In theory, vwprintw and vwscanf are supposed to use the older varargs.h
interface for handling variadic argument lists. Linux doesn't have
varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So these
functions use stdargs instead. This is unlikely to be a problem unless
you're building ncurses on a System V old enough to only have varargs.h.
(Solaris 2.5.1 uses the stdarg.h binding as well).
interface for handling variadic argument lists (and are deprecated by X/Open
for that reason). Linux doesn't have varargs.h, it has the newer
X/Open-standard stdargs.h equivalent. So these functions use stdargs
instead. This is unlikely to be a problem unless you're building ncurses on
a System V old enough to only have varargs.h. (Solaris 2.5.1 used the
stdarg.h binding as well).
+ If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to have
a native vsscanf(3) in its library, vwscanw() will not work. You lose. (It
should work on any System V, however). If you want to fix this, add an
implementation to ncurses/vsscanf.c.
+ The C++ binding fails to build with a few C++ compilers, mainly with
configure script problems with vsscanf().
+ The C++ binding fails to build with a few C++ compilers.
+ terminfo.5 does not format with the SunOS (and most other platform's) tbl
utility because it relies on a diversion for each table entry. Get the
@ -106,7 +103,7 @@ LONGER-TERM TO-DO ITEMS:
1. Extended COSE conformance
There is an XPG4 standard recently released which describes a superset
There is an XPG4 standard released in 1996 which describes a superset
of the SVr4 API. The library is BASE conformant with this standard.
We would like to make ncurses fully conformant at the EXTENDED level
supporting internationalization.

View File

@ -1,5 +1,5 @@
dnl***************************************************************************
dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
dnl copy of this software and associated documentation files (the *
@ -28,7 +28,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
dnl $Id: aclocal.m4,v 1.407 2006/12/17 16:12:38 tom Exp $
dnl $Id: aclocal.m4,v 1.442 2007/12/01 20:02:42 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
@ -166,6 +166,99 @@ fi
AC_SUBST(EXTRA_CPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_ADD_INCDIR version: 8 updated: 2007/07/30 19:22:58
dnl -------------
dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
dnl the include-path).
AC_DEFUN([CF_ADD_INCDIR],
[
if test -n "$1" ; then
for cf_add_incdir in $1
do
while test $cf_add_incdir != /usr/include
do
if test -d $cf_add_incdir
then
cf_have_incdir=no
if test -n "$CFLAGS$CPPFLAGS" ; then
# a loop is needed to ensure we can add subdirs of existing dirs
for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
cf_have_incdir=yes; break
fi
done
fi
if test "$cf_have_incdir" = no ; then
if test "$cf_add_incdir" = /usr/local/include ; then
if test "$GCC" = yes
then
cf_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
AC_TRY_COMPILE([#include <stdio.h>],
[printf("Hello")],
[],
[cf_have_incdir=yes])
CPPFLAGS=$cf_save_CPPFLAGS
fi
fi
fi
if test "$cf_have_incdir" = no ; then
AC_VERBOSE(adding $cf_add_incdir to include-path)
ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
test "$cf_top_incdir" = "$cf_add_incdir" && break
cf_add_incdir="$cf_top_incdir"
else
break
fi
fi
done
done
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_ADD_LIBDIR version: 5 updated: 2007/07/30 19:12:03
dnl -------------
dnl Adds to the library-path
dnl
dnl Some machines have trouble with multiple -L options.
dnl
dnl $1 is the (list of) directory(s) to add
dnl $2 is the optional name of the variable to update (default LDFLAGS)
dnl
AC_DEFUN([CF_ADD_LIBDIR],
[
if test -n "$1" ; then
for cf_add_libdir in $1
do
if test $cf_add_libdir = /usr/lib ; then
:
elif test -d $cf_add_libdir
then
cf_have_libdir=no
if test -n "$LDFLAGS$LIBS" ; then
# a loop is needed to ensure we can add subdirs of existing dirs
for cf_test_libdir in $LDFLAGS $LIBS ; do
if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
cf_have_libdir=yes; break
fi
done
fi
if test "$cf_have_libdir" = no ; then
AC_VERBOSE(adding $cf_add_libdir to library-path)
ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
fi
fi
done
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
@ -612,6 +705,50 @@ fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
dnl -------------------
dnl Check if GPM is already linked with curses. If so - and if the linkage
dnl is not "weak" - warn about this because it can create problems linking
dnl applications with ncurses.
AC_DEFUN([CF_CHECK_GPM_WGETCH],[
AC_CHECK_LIB(gpm,Gpm_Wgetch,[
AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
cf_cv_check_gpm_wgetch=unknown
if test "$cross_compiling" != yes ; then
cat >conftest.$ac_ext <<CF_EOF
#include <gpm.h>
int main()
{
Gpm_Wgetch();
${cf_cv_main_return:-return}(0);
}
CF_EOF
cf_save_LIBS="$LIBS"
# This only works if we can look at the symbol table. If a shared
# library is stripped for install, we cannot use that. So we're forced
# to rely on the static library, noting that some packagers may not
# include it.
LIBS="-static -lgpm -dynamic $LIBS"
if AC_TRY_EVAL(ac_compile) ; then
if AC_TRY_EVAL(ac_link) ; then
cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
fi
fi
rm -f conftest*
LIBS="$cf_save_LIBS"
fi
])
if test "$cf_cv_check_gpm_wgetch" != yes ; then
AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
fi
])])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
dnl -----------------
dnl Check if the C++ compiler accepts duplicate parameter initialization. This
@ -703,82 +840,36 @@ fi
test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
dnl -----------------
dnl Check if the g++ compiler supports vscan function (not a standard feature).
AC_DEFUN([CF_CPP_VSCAN_FUNC],
[
if test -n "$CXX"; then
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_CHECK_HEADERS(strstream.h)
AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[
for cf_vscan_func in strstream strstream_cast stdio
do
case $cf_vscan_func in #(vi
stdio) cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
strstream) cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
esac
AC_TRY_LINK([
#include <stdio.h>
#include <stdarg.h>
#define $cf_vscan_defs 1
#if defined(USE_STDIO_VSCAN)
#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
#include <strstream.h>
#endif
int scanw(const char* fmt, ...)
{
int result = -1;
char buf[BUFSIZ];
va_list args;
va_start(args, fmt);
#if defined(USE_STDIO_VSCAN)
if (::vsscanf(buf, fmt, args) != -1)
result = 0;
#elif defined(USE_STRSTREAM_VSCAN)
strstreambuf ss(buf, sizeof(buf));
if (ss.vscan(fmt, args) != -1)
result = 0;
#elif defined(USE_STRSTREAM_VSCAN_CAST)
strstreambuf ss(buf, sizeof(buf));
if (ss.vscan(fmt, (_IO_va_list)args) != -1)
result = 0;
#else
#error case $cf_vscan_func failed
#endif
va_end(args);
return result;
}
],[int tmp, foo = scanw("%d", &tmp)],
[cf_cv_cpp_vscan_func=$cf_vscan_func; break],
[cf_cv_cpp_vscan_func=no])
test "$cf_cv_cpp_vscan_func" != no && break
done
])
AC_LANG_RESTORE
dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
dnl -----------
dnl Check if the C compiler supports "inline".
dnl $1 is the name of a shell variable to set if inline is supported
dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
AC_DEFUN([CF_C_INLINE],[
AC_C_INLINE
$1=
if test "$ac_cv_c_inline" != no ; then
$1=inline
if test "$INTEL_COMPILER" = yes
then
:
elif test "$GCC" = yes
then
AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
cf_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
AC_TRY_COMPILE([inline int foo(void) { return 1; }],
[${cf_cv_main_return:-return} foo()],
[cf_cv_gcc_inline=yes],
[cf_cv_gcc_inline=no])
CFLAGS=$cf_save_CFLAGS
])
if test "$cf_cv_gcc_inline" = yes ; then
CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
fi
fi
fi
case $cf_cv_cpp_vscan_func in #(vi
stdio) #(vi
AC_DEFINE(CPP_HAS_VSCAN_FUNC)
AC_DEFINE(USE_STDIO_VSCAN)
;;
strstream)
AC_DEFINE(CPP_HAS_VSCAN_FUNC)
AC_DEFINE(USE_STRSTREAM_VSCAN)
;;
strstream_cast)
AC_DEFINE(CPP_HAS_VSCAN_FUNC)
AC_DEFINE(USE_STRSTREAM_VSCAN_CAST)
;;
esac
AC_SUBST($1)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
@ -1070,7 +1161,7 @@ esac
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28
dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
dnl -----------------
dnl Test for availability of useful gcc __attribute__ directives to quiet
dnl compiler warnings. Though useful, not all are supported -- and contrary
@ -1097,7 +1188,7 @@ if test "$GCC" = yes
then
AC_CHECKING([for $CC __attribute__ directives])
cat > conftest.$ac_ext <<EOF
#line __oline__ "configure"
#line __oline__ "${as_me-configure}"
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@ -1159,7 +1250,7 @@ if test "$GCC" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
dnl ---------------
dnl Check if the compiler supports useful warning options. There's a few that
dnl we don't use, simply because they're too noisy:
@ -1184,7 +1275,7 @@ AC_REQUIRE([CF_GCC_VERSION])
CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
cat > conftest.$ac_ext <<EOF
#line __oline__ "configure"
#line __oline__ "${as_me-configure}"
int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
EOF
@ -1205,7 +1296,7 @@ then
AC_CHECKING([for $CC warning options])
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="-Wall"
for cf_opt in $1 \
for cf_opt in \
wd1419 \
wd1682 \
wd1683 \
@ -1561,11 +1652,24 @@ AC_LANG_RESTORE
AC_SUBST(EXTRA_CXXFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_HASHED_DB version: 1 updated: 2006/08/19 09:16:14
dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
dnl ------------
dnl Look for an instance of the Berkeley hashed database.
dnl
dnl $1 = optional parameter, to specify install-prefix for the database.
AC_DEFUN([CF_HASHED_DB],
[
ifelse([$1],,,[
case $1 in #(vi
yes|*able*) #(vi
;;
*)
if test -d "$1" ; then
CF_ADD_INCDIR($1/include)
CF_ADD_LIBDIR($1/lib)
fi
esac
])
AC_CHECK_HEADER(db.h,[
CF_HASHED_DB_VERSION
if test "$cf_cv_hashed_db_version" = unknown ; then
@ -1583,7 +1687,7 @@ fi
])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_HASHED_DB_LIBS version: 6 updated: 2006/12/16 12:33:30
dnl CF_HASHED_DB_LIBS version: 7 updated: 2007/12/01 15:01:37
dnl -----------------
dnl Given that we have the header and version for hashed database, find the
dnl library information.
@ -1591,7 +1695,7 @@ AC_DEFUN([CF_HASHED_DB_LIBS],
[
AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
cf_cv_hashed_db_libs=unknown
for cf_db_libs in db$cf_cv_hashed_db_version db ''
for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
do
cf_save_libs="$LIBS"
if test -n "$cf_db_libs"; then
@ -1655,7 +1759,7 @@ done
])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_HASHED_DB_VERSION version: 2 updated: 2006/08/19 15:12:49
dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
dnl --------------------
dnl Given that we have the header file for hashed database, find the version
dnl information.
@ -1664,7 +1768,7 @@ AC_DEFUN([CF_HASHED_DB_VERSION],
AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
cf_cv_hashed_db_version=unknown
for cf_db_version in 1 2 3 4
for cf_db_version in 1 2 3 4 5
do
CF_MSG_LOG(checking for db version $cf_db_version)
AC_TRY_COMPILE([
@ -1778,7 +1882,7 @@ AC_MSG_RESULT($cf_cv_have_isascii)
test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_LARGEFILE version: 6 updated: 2006/09/23 19:07:52
dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
dnl ------------
dnl Add checks for large file support.
AC_DEFUN([CF_LARGEFILE],[
@ -1796,6 +1900,7 @@ ifdef([AC_FUNC_FSEEKO],[
# the config.h
test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
AC_TRY_COMPILE([
@ -1816,6 +1921,48 @@ ifdef([AC_FUNC_FSEEKO],[
])
])
dnl ---------------------------------------------------------------------------
dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27
dnl -----------------
dnl Check for compiler/linker flags used to temporarily force usage of static
dnl libraries. This depends on the compiler and platform. Use this to help
dnl ensure that the linker picks up a given library based on its position in
dnl the list of linker options and libraries.
AC_DEFUN([CF_LDFLAGS_STATIC],[
if test "$GCC" = yes ; then
LDFLAGS_STATIC=-static
LDFLAGS_SHARED=-dynamic
else
case $cf_cv_system_name in #(
aix[[45]]*) #( from ld manpage
LDFLAGS_STATIC=-bstatic
LDFLAGS_SHARED=-bdynamic
;;
hpux*) #( from ld manpage for hpux10.20, hpux11.11
# We could also use just "archive" and "shared".
LDFLAGS_STATIC=-Wl,-a,archive_shared
LDFLAGS_SHARED=-Wl,-a,shared_archive
;;
irix*) #( from ld manpage IRIX64
LDFLAGS_STATIC=-Bstatic
LDFLAGS_SHARED=-Bdynamic
;;
osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
# alternative "-oldstyle_liblookup" (not in cc manpage)
LDFLAGS_STATIC=-noso
LDFLAGS_SHARED=-so_archive
;;
solaris2*)
LDFLAGS_STATIC=-Bstatic
LDFLAGS_SHARED=-Bdynamic
;;
esac
fi
AC_SUBST(LDFLAGS_STATIC)
AC_SUBST(LDFLAGS_SHARED)
])
dnl ---------------------------------------------------------------------------
dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
dnl ----------
dnl Check for libutf8
@ -1852,11 +1999,11 @@ ifelse($1,,,[$1=$LIB_PREFIX])
AC_SUBST(LIB_PREFIX)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_LIB_RULES version: 40 updated: 2006/10/14 15:23:15
dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
dnl ------------
dnl Append definitions and rules for the given models to the subdirectory
dnl Makefiles, and the recursion rule for the top-level Makefile. If the
dnl subdirectory is a library-source directory, modify the LIBRARIES list in
dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
dnl the corresponding makefile to list the models that we'll generate.
dnl
dnl For shared libraries, make a list of symbolic links to construct when
@ -1875,7 +2022,6 @@ do
continue
elif test -f $srcdir/$cf_dir/modules; then
IMPORT_LIB=
SHARED_LIB=
LIBS_TO_MAKE=
for cf_item in $cf_LIST_MODELS
@ -1922,9 +2068,7 @@ do
# use autodetected ${cf_prefix} for import lib and static lib, but
# use 'cyg' prefix for shared lib.
if test $cf_cv_shlib_version = cygdll ; then
SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll"
IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a"
LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}"
LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
continue
fi
fi
@ -1933,17 +2077,34 @@ do
if test $cf_dir = ncurses ; then
cf_subsets="$LIB_SUBSETS"
cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
if test "$cf_termlib" != "$cf_subsets" ; then
cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
fi
cf_r_parts="$cf_subsets"
while test -n "$cf_r_parts"
do
cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
if test "$cf_l_parts" != "$cf_r_parts" ; then
case $cf_l_parts in #(vi
*termlib*) #(vi
cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
;;
*ticlib*)
cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
;;
*)
break
;;
esac
LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
else
break
fi
done
else
cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
fi
sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
-e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
-e "s%@SHARED_LIB@%$SHARED_LIB%" \
$cf_dir/Makefile >$cf_dir/Makefile.out
mv $cf_dir/Makefile.out $cf_dir/Makefile
@ -1968,13 +2129,20 @@ do
case $cf_subset in
*base*)
;;
termlib*)
*termlib*)
cf_libname=$TINFO_LIB_SUFFIX
if test -n "${DFT_ARG_SUFFIX}" ; then
# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
fi
;;
;;
ticlib*)
cf_libname=$TICS_LIB_SUFFIX
if test -n "${DFT_ARG_SUFFIX}" ; then
# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
fi
;;
esac
fi
@ -2015,8 +2183,11 @@ do
prefix=$cf_prefix \
suffix=$cf_suffix \
subset=$cf_subset \
TermlibRoot=$TINFO_NAME \
TermlibSuffix=$TINFO_SUFFIX \
ShlibVer=$cf_cv_shlib_version \
ShlibVerInfix=$cf_cv_shlib_version_infix \
ReLink=${cf_cv_do_relink-no} \
DoLinks=$cf_cv_do_symlinks \
rmSoLocs=$cf_cv_rm_so_locs \
ldconfig="$LDCONFIG" \
@ -2103,8 +2274,8 @@ done
cat >> Makefile <<CF_EOF
install.data \\
uninstall.data ::
install.libs uninstall.libs \\
install.data uninstall.data ::
$MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
install.man \\
@ -2113,7 +2284,7 @@ uninstall.man ::
distclean ::
rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
rm -f headers.sh headers.sed
rm -f headers.sh headers.sed mk_shared_lib.sh
rm -rf \${DIRS_TO_MAKE}
CF_EOF
@ -2224,41 +2395,10 @@ do
fi
if test -f $srcdir/$cf_dir/headers; then
cat >>$cf_dir/Makefile <<CF_EOF
\${DESTDIR}\${includedir} :
sh \${srcdir}/../mkinstalldirs \[$]@
install \\
install.libs \\
install.includes :: \${AUTO_SRC} \${DESTDIR}\${includedir} \\
CF_EOF
j=""
for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
do
test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
j=$i
done
echo " $j" >>$cf_dir/Makefile
for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
do
echo " @ (cd \${DESTDIR}\${includedir} && rm -f `basename $i`) ; ../headers.sh \${INSTALL_DATA} \${DESTDIR}\${includedir} \${srcdir} $i" >>$cf_dir/Makefile
test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h && \${LN_S} curses.h ncurses.h)" >>$cf_dir/Makefile
done
cat >>$cf_dir/Makefile <<CF_EOF
uninstall \\
uninstall.libs \\
uninstall.includes ::
CF_EOF
for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
do
i=`basename $i`
echo " -@ (cd \${DESTDIR}\${includedir} && rm -f $i)" >>$cf_dir/Makefile
test $i = curses.h && echo " -@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h)" >>$cf_dir/Makefile
done
$AWK -f $srcdir/mk-hdr.awk \
subset="$LIB_SUBSETS" \
compat="$WITH_CURSES_H" \
$srcdir/$cf_dir/headers >>$cf_dir/Makefile
fi
if test -f $srcdir/$cf_dir/modules; then
@ -2776,7 +2916,7 @@ AC_ARG_WITH(manpage-tbl,
AC_MSG_RESULT($MANPAGE_TBL)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_MAN_PAGES version: 31 updated: 2006/12/09 12:27:08
dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
dnl ------------
dnl Try to determine if the man-pages on the system are compressed, and if
dnl so, what format is used. Use this information to construct a script that
@ -2826,6 +2966,7 @@ case "$MANPAGE_FORMAT" in #(vi
esac
cf_edit_man=./edit_man.sh
cf_man_alias=`pwd`/man_alias.sed
cat >$cf_edit_man <<CF_EOF
#! /bin/sh
@ -2841,7 +2982,7 @@ NCURSES_PATCH="$NCURSES_PATCH"
NCURSES_OSPEED="$NCURSES_OSPEED"
TERMINFO="$TERMINFO"
MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
INSTALL="$INSTALL"
INSTALL_DATA="$INSTALL_DATA"
@ -2889,6 +3030,32 @@ case \$i in #(vi
\$MKDIRS \$cf_subdir\$section
fi
fi
# replace variables in man page
if test ! -f $cf_man_alias ; then
cat >>$cf_man_alias <<-CF_EOF2
s,@DATADIR@,\$datadir,g
s,@TERMINFO@,\$TERMINFO,g
s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
CF_EOF
ifelse($1,,,[
for cf_name in $1
do
cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
cf_name=`echo $cf_name|sed "$program_transform_name"`
cat >>$cf_edit_man <<-CF_EOF
s,@$cf_NAME@,$cf_name,
CF_EOF
done
])
cat >>$cf_edit_man <<CF_EOF
CF_EOF2
echo "...made $cf_man_alias"
fi
aliases=
cf_source=\`basename \$i\`
inalias=\$cf_source
@ -2901,7 +3068,7 @@ CF_EOF
if test "$MANPAGE_ALIASES" != no ; then
cat >>$cf_edit_man <<CF_EOF
aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
CF_EOF
fi
@ -2922,36 +3089,13 @@ cat >>$cf_edit_man <<CF_EOF
cf_target="\$cf_source"
fi
cf_target="\$cf_subdir\${section}/\${cf_target}"
CF_EOF
fi
# replace variables in man page
ifelse($1,,,[
for cf_name in $1
do
cat >>$cf_edit_man <<CF_EOF
prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
sed -f $cf_man_alias \\
CF_EOF
done
])
cat >>$cf_edit_man <<CF_EOF
sed -e "s,@DATADIR@,\$datadir," \\
-e "s,@TERMINFO@,\$TERMINFO," \\
-e "s,@NCURSES_MAJOR@,\$NCURSES_MAJOR," \\
-e "s,@NCURSES_MINOR@,\$NCURSES_MINOR," \\
-e "s,@NCURSES_PATCH@,\$NCURSES_PATCH," \\
-e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
CF_EOF
ifelse($1,,,[
for cf_name in $1
do
cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
cat >>$cf_edit_man <<CF_EOF
-e "s,@$cf_NAME@,\$prog_$cf_name," \\
CF_EOF
done
])
if test -f $MANPAGE_RENAMES ; then
cat >>$cf_edit_man <<CF_EOF
@ -3012,6 +3156,7 @@ cat >>$cf_edit_man <<CF_EOF
if test \$verb = installing ; then
echo \$verb \$cf_target
\$INSTALL_DATA \$TMP \$cf_target
test -d \$cf_subdir\${section} &&
test -n "\$aliases" && (
cd \$cf_subdir\${section} && (
cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
@ -3053,8 +3198,11 @@ cat >>$cf_edit_man <<CF_EOF
)
)
elif test \$verb = removing ; then
echo \$verb \$cf_target
rm -f \$cf_target
test -f \$cf_target && (
echo \$verb \$cf_target
rm -f \$cf_target
)
test -d \$cf_subdir\${section} &&
test -n "\$aliases" && (
cd \$cf_subdir\${section} && (
for cf_alias in \$aliases
@ -3192,12 +3340,12 @@ if test "$cf_cv_func_mkstemp" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
dnl ----------
dnl Write a debug message to config.log, along with the line number in the
dnl configure script.
AC_DEFUN([CF_MSG_LOG],[
echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
@ -3680,7 +3828,73 @@ $1=`echo "$2" | \
-e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_SHARED_OPTS version: 41 updated: 2006/12/09 12:32:00
dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
dnl -------------
dnl Remove the given library from the symbol
dnl
dnl $1 = target (which could be the same as the source variable)
dnl $2 = source (including '$')
dnl $3 = library to remove
define([CF_REMOVE_LIB],
[
# remove $3 library from $2
$1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_RPATH_HACK version: 3 updated: 2007/12/01 11:14:13
dnl -------------
AC_DEFUN([CF_RPATH_HACK],
[
AC_REQUIRE([CF_SHARED_OPTS])
AC_MSG_CHECKING(for updated LDFLAGS)
if test -n "$LDFLAGS" ; then
AC_MSG_RESULT(maybe)
CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
case "$EXTRA_LDFLAGS" in #(vi
-Wl,-rpath,*) #(vi
cf_rpath_hack="-Wl,-rpath,"
;;
-R\ *)
cf_rpath_hack="-R "
;;
-R*)
cf_rpath_hack="-R"
;;
*)
cf_rpath_hack=
;;
esac
if test -n "$cf_rpath_hack" ; then
cf_rpath_dst=
for cf_rpath_src in $LDFLAGS
do
CF_VERBOSE(Filtering $cf_rpath_src)
case $cf_rpath_src in #(vi
-L*) #(vi
if test "$cf_rpath_hack" = "-R " ; then
cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
else
cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
fi
CF_VERBOSE(...Filter $cf_rpath_tmp)
EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
;;
*)
cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
;;
esac
done
LDFLAGS=$cf_rpath_dst
CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
fi
else
AC_MSG_RESULT(no)
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_SHARED_OPTS version: 46 updated: 2007/02/24 18:58:09
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
@ -3757,14 +3971,27 @@ AC_DEFUN([CF_SHARED_OPTS],
;;
cygwin*)
CC_SHARED_OPTS=
MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}'
MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
cf_cv_shlib_version=cygdll
cf_cv_shlib_version_infix=cygdll
cat >mk_shared_lib.sh <<-CF_EOF
#!/bin/sh
SHARED_LIB=\[$]1
IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
shift
cat <<-EOF
Linking shared library
** SHARED_LIB \[$]SHARED_LIB
** IMPORT_LIB \[$]IMPORT_LIB
EOF
exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
CF_EOF
chmod +x mk_shared_lib.sh
;;
darwin*)
EXTRA_CFLAGS="-no-cpp-precomp"
CC_SHARED_OPTS="-dynamic"
MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
cf_cv_shlib_version_infix=yes
AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
@ -3818,11 +4045,11 @@ AC_DEFUN([CF_SHARED_OPTS],
CF_SHARED_SONAME
MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]'
;;
openbsd2*)
openbsd[[2-9]].*)
CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]'
;;
openbsd*|freebsd[[23]]*)
openbsd*|freebsd[[12]].*)
CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
@ -4043,6 +4270,41 @@ done
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
dnl ---------------
dnl signal handler, but there are some gcc depedencies in that recommendation.
dnl Try anyway.
AC_DEFUN([CF_SIG_ATOMIC_T],
[
AC_MSG_CHECKING(for signal global datatype)
AC_CACHE_VAL(cf_cv_sig_atomic_t,[
for cf_type in \
"volatile sig_atomic_t" \
"sig_atomic_t" \
"int"
do
AC_TRY_COMPILE([
#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
extern $cf_type x;
$cf_type x;
static void handler(int sig)
{
x = 5;
}],
[signal(SIGINT, handler);
x = 1],
[cf_cv_sig_atomic_t=$cf_type],
[cf_cv_sig_atomic_t=no])
test "$cf_cv_sig_atomic_t" != no && break
done
])
AC_MSG_RESULT($cf_cv_sig_atomic_t)
test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
dnl -------------
dnl Check for definitions & structures needed for window size-changing
@ -4503,11 +4765,12 @@ AC_DEFUN([CF_UPPER],
$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
dnl ----------
dnl Use AC_VERBOSE w/o the warnings
AC_DEFUN([CF_VERBOSE],
[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
CF_MSG_LOG([$1])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
@ -4643,7 +4906,7 @@ if test "$with_gpm" != no ; then
fi
])
dnl ---------------------------------------------------------------------------
dnl CF_WITH_LIBTOOL version: 10 updated: 2006/10/14 15:23:15
dnl CF_WITH_LIBTOOL version: 18 updated: 2007/04/08 20:02:38
dnl ---------------
dnl Provide a configure option to incorporate libtool. Define several useful
dnl symbols for the makefile rules.
@ -4692,7 +4955,7 @@ LIB_PREP="$RANLIB"
# doing:
LIB_CLEAN=
LIB_COMPILE=
LIB_LINK=
LIB_LINK='${CC}'
LIB_INSTALL=
LIB_UNINSTALL=
@ -4718,12 +4981,12 @@ ifdef([AC_PROG_LIBTOOL],[
AC_MSG_ERROR(Cannot find libtool)
fi
])dnl
LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
LIB_OBJECT='${OBJECTS}.o=.lo)'
LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
LIB_OBJECT='${OBJECTS:.o=.lo}'
LIB_SUFFIX=.la
LIB_CLEAN='${LIBTOOL} --mode=clean'
LIB_COMPILE='${LIBTOOL} --mode=compile'
LIB_LINK='${LIBTOOL} --mode=link'
LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
LIB_INSTALL='${LIBTOOL} --mode=install'
LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
LIB_PREP=:
@ -4734,10 +4997,10 @@ ifdef([AC_PROG_LIBTOOL],[
# Save the version in a cache variable - this is not entirely a good
# thing, but the version string from libtool is very ugly, and for
# bug reports it might be useful to have the original string.
cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
AC_MSG_RESULT($cf_cv_libtool_version)
if test -z "$cf_cv_libtool_version" ; then
AC_MSG_ERROR(This is not libtool)
AC_MSG_ERROR(This is not GNU libtool)
fi
# special hack to add --tag option for C++ compiler
@ -4758,6 +5021,7 @@ test -z "$LIBTOOL" && ECHO_LT=
AC_SUBST(LIBTOOL)
AC_SUBST(LIBTOOL_CXX)
AC_SUBST(LIBTOOL_OPTS)
AC_SUBST(LIB_CREATE)
AC_SUBST(LIB_OBJECT)
@ -4772,7 +5036,7 @@ AC_SUBST(LIB_UNINSTALL)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_WITH_PATH version: 7 updated: 2006/08/03 15:20:08
dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
dnl ------------
dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
dnl defaulting to yes/no.
@ -4786,7 +5050,9 @@ dnl
AC_DEFUN([CF_WITH_PATH],
[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
if ifelse($5,,true,[test -n "$5"]) ; then
CF_PATH_SYNTAX(withval)
fi
$3="$withval"
AC_SUBST($3)dnl
])dnl
@ -4896,7 +5162,7 @@ CF_NO_LEAKS_OPTION(valgrind,
[USE_VALGRIND])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09
dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
dnl ---------------
dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
dnl or adapt to the vendor's definitions to get equivalent functionality,
@ -4930,7 +5196,7 @@ hpux*) #(vi
irix[[56]].*) #(vi
CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
;;
linux*|gnu*) #(vi
linux*|gnu*|k*bsd*-gnu) #(vi
CF_GNU_SOURCE
;;
mirbsd*) #(vi

View File

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
timestamp='2006-07-02'
timestamp='2007-05-17'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -161,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
@ -329,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:SunOS:5.*:*)
i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
@ -780,7 +781,7 @@ EOF
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
i*:MINGW*:*)
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
@ -790,12 +791,15 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
x86:Interix*:[3456]*)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
EM64T:Interix*:[3456]*)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
*:Interix*:[3456]*)
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
EM64T | authenticamd)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
@ -950,6 +954,9 @@ EOF
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
exit ;;
xtensa:Linux:*:*)
echo xtensa-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
@ -1208,6 +1215,15 @@ EOF
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
SX-7:SUPER-UX:*:*)
echo sx7-nec-superux${UNAME_RELEASE}
exit ;;
SX-8:SUPER-UX:*:*)
echo sx8-nec-superux${UNAME_RELEASE}
exit ;;
SX-8R:SUPER-UX:*:*)
echo sx8r-nec-superux${UNAME_RELEASE}
exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;

View File

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
timestamp='2006-08-14'
timestamp='2007-06-28'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@ -245,12 +245,12 @@ case $basic_machine in
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore \
| maxq | mb | microblaze | mcore | mep \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@ -276,6 +276,7 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| score \
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
@ -323,7 +324,7 @@ case $basic_machine in
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
@ -474,8 +475,8 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
cr16c)
basic_machine=cr16c-unknown
cr16)
basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
@ -682,6 +683,10 @@ case $basic_machine in
basic_machine=i386-pc
os=-mingw32
;;
mingw32ce)
basic_machine=arm-unknown
os=-mingw32ce
;;
miniframe)
basic_machine=m68000-convergent
;;
@ -924,6 +929,9 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
sh5el)
basic_machine=sh5le-unknown
;;
sh64)
basic_machine=sh64-unknown
;;
@ -1218,7 +1226,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers*)
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@ -1370,6 +1378,9 @@ else
# system, and we'll never get to this point.
case $basic_machine in
score-*)
os=-elf
;;
spu-*)
os=-elf
;;
@ -1410,6 +1421,9 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
mep-*)
os=-elf
;;
mips*-cisco)
os=-elf
;;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
dnl***************************************************************************
dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
dnl copy of this software and associated documentation files (the *
@ -28,14 +28,14 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
dnl $Id: configure.in,v 1.383 2006/12/17 01:26:06 tom Exp $
dnl $Id: configure.in,v 1.429 2007/11/24 22:42:43 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl See http://invisible-island.net/autoconf/ for additional information.
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.13.20020210)
AC_REVISION($Revision: 1.383 $)
AC_REVISION($Revision: 1.429 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
@ -150,13 +150,28 @@ CF_PROG_INSTALL
CF_PROG_LINT
AC_PROG_LN_S
AC_SYS_LONG_FILE_NAMES
AC_MSG_CHECKING(if we should assume mixed-case filenames)
AC_ARG_ENABLE(mixed-case,
[ --enable-mixed-case tic should assume mixed-case filenames],
[enable_mixedcase=$enableval],
[enable_mixedcase=auto])
AC_MSG_RESULT($enable_mixedcase)
if test "$enable_mixedcase" = "auto" ; then
CF_MIXEDCASE_FILENAMES
else
cf_cv_mixedcase=$enable_mixedcase
if test "$enable_mixedcase" = "yes" ; then
AC_DEFINE(MIXEDCASE_FILENAMES)
fi
fi
# do this after mixed-case option (tags/TAGS is not as important as tic).
AC_PROG_MAKE_SET
CF_MAKE_TAGS
CF_MAKEFLAGS
AC_SYS_LONG_FILE_NAMES
CF_MIXEDCASE_FILENAMES
dnl These are standard among *NIX systems, but not when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, ':')
AC_CHECK_TOOL(LD, ld, ld)
@ -255,6 +270,9 @@ CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
AC_SUBST(DFT_LWR_MODEL)dnl the default model ("normal")
AC_SUBST(DFT_UPR_MODEL)dnl the default model ("NORMAL")
TICS_NAME=tic
AC_SUBST(TICS_NAME)
TINFO_NAME=tinfo
AC_SUBST(TINFO_NAME)
@ -280,6 +298,13 @@ AC_ARG_WITH(termlib,
[with_termlib=no])
AC_MSG_RESULT($with_termlib)
AC_MSG_CHECKING(if you want to build a separate tic library)
AC_ARG_WITH(ticlib,
[ --with-ticlib generate separate tic library],
[with_ticlib=$withval],
[with_ticlib=no])
AC_MSG_RESULT($with_ticlib)
### Checks for special libraries, must be done up-front.
SHLIB_LIST=""
CF_WITH_GPM
@ -304,9 +329,7 @@ if test "$with_gpm" != no ; then
SHLIB_LIST="-lgpm $SHLIB_LIST"
fi
AC_DEFINE(HAVE_LIBGPM)
AC_CHECK_LIB(gpm,Gpm_Wgetch,[
AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
])
CF_CHECK_GPM_WGETCH
fi
CF_WITH_SYSMOUSE
@ -336,12 +359,22 @@ esac
AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
AC_MSG_RESULT($LD_MODEL)
case $DFT_LWR_MODEL in
shared)
AC_MSG_CHECKING(if rpath option should be used)
AC_ARG_ENABLE(rpath,
[ --enable-rpath use rpath option when generating shared libraries],
[cf_cv_ld_rpath=$enableval],
[cf_cv_ld_rpath=no])
AC_MSG_RESULT($cf_cv_ld_rpath)
AC_MSG_CHECKING(if shared libraries should be relinked during install)
AC_ARG_ENABLE(relink,
[ --disable-relink relink shared libraries during install],
[cf_cv_do_relink=$enableval],
[cf_cv_do_relink=yes])
AC_MSG_RESULT($cf_cv_do_relink)
;;
esac
CF_SHARED_OPTS
if test "$CC_SHARED_OPTS" = "unknown"; then
@ -470,6 +503,19 @@ int main() {
AC_MSG_RESULT($with_big_core)
test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
### ISO C only guarantees 512-char strings, we have tables which load faster
### when constructed using "big" strings.
AC_MSG_CHECKING(if big-strings option selected)
AC_ARG_ENABLE(big-strings,
[ --disable-big-strings assume compiler has only standard-size strings],
[with_big_strings=no],
[with_big_strings=yes])
AC_MSG_RESULT($with_big_strings)
USE_BIG_STRINGS=0
test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
AC_SUBST(USE_BIG_STRINGS)
### use option --enable-termcap to compile in the termcap fallback support
AC_MSG_CHECKING(if you want termcap-fallback support)
AC_ARG_ENABLE(termcap,
@ -487,6 +533,10 @@ if test "$with_termcap" != "yes" ; then
AC_DEFINE(PURE_TERMINFO)
else
if test "$with_ticlib" != no ; then
AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
fi
AC_DEFINE(USE_TERMCAP)
AC_MSG_CHECKING(for list of termcap files)
CF_WITH_PATHLIST(termpath,
@ -683,7 +733,7 @@ AC_SUBST(cf_cv_enable_lp64)
CF_LARGEFILE
### use option --disable-tparm-varargs to make tparm() conform to X/Open
### use option --disable-tparm-varargs to make tparm() conform to X/Open
AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
AC_ARG_ENABLE(tparm-varargs,
[ --disable-tparm-varargs compile tparm() without varargs interface],
@ -802,7 +852,7 @@ else
fi
AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
AC_ARG_ENABLE(signed-char,
[ --enable-signed-char compile with SIGWINCH handler],
[ --enable-signed-char compile using signed Boolean's in term.h],
[with_signed_char=$enableval],
[with_signed_char=no])
AC_MSG_RESULT($with_signed_char)
@ -895,7 +945,7 @@ AC_MSG_RESULT($with_ext_colors)
NCURSES_EXT_COLORS=0
if test "$with_ext_colors" = yes ; then
if test "$with_widec" != yes ; then
AC_MSG_WARN(This option applies only to wide-character library)
AC_MSG_ERROR(This option applies only to wide-character library)
else
# cannot be ABI 5 since it changes sizeof(cchar_t)
CF_NCURSES_ABI_6
@ -919,6 +969,33 @@ if test "$with_ext_mouse" = yes ; then
fi
AC_SUBST(NCURSES_MOUSE_VERSION)
# Reentrant code has to be opaque; there's little advantage to making ncurses
# opaque outside of that, so there is no --enable-opaque option.
AC_MSG_CHECKING(if you want experimental reentrant code)
AC_ARG_ENABLE(reentrant,
[ --enable-reentrant compile with experimental reentrant code],
[with_reentrant=$enableval],
[with_reentrant=no])
AC_MSG_RESULT($with_reentrant)
if test "$with_reentrant" = yes ; then
cf_cv_enable_reentrant=1
cf_cv_enable_opaque="NCURSES_INTERNALS"
NCURSES_OPAQUE=1
NCURSES_SIZE_T=int
LIB_SUFFIX="t${LIB_SUFFIX}"
AC_DEFINE(USE_REENTRANT)
CF_NCURSES_ABI_6
else
cf_cv_enable_reentrant=0
cf_cv_enable_opaque="NCURSES_OPAQUE"
NCURSES_OPAQUE=0
NCURSES_SIZE_T=short
fi
AC_SUBST(cf_cv_enable_reentrant)
AC_SUBST(cf_cv_enable_opaque)
AC_SUBST(NCURSES_OPAQUE)
AC_SUBST(NCURSES_SIZE_T)
AC_MSG_CHECKING(if you want experimental safe-sprintf code)
AC_ARG_ENABLE(safe-sprintf,
[ --enable-safe-sprintf compile with experimental safe-sprintf code],
@ -961,6 +1038,7 @@ if test "$with_echo" = yes; then
else
ECHO_LINK='@ echo linking $@ ... ;'
test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
fi
AC_MSG_RESULT($with_echo)
AC_SUBST(ECHO_LINK)
@ -972,9 +1050,9 @@ AC_ARG_ENABLE(warnings,
[with_warnings=$enableval])
AC_MSG_RESULT($with_warnings)
if test -n "$with_warnings"; then
if test "x$with_warnings" = "xyes"; then
ADAFLAGS="$ADAFLAGS -gnatg"
CF_GCC_WARNINGS
CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
if test "$cf_with_cxx" = yes ; then
CF_GXX_WARNINGS(Wno-unused)
fi
@ -1088,26 +1166,21 @@ CF_SYS_TIME_SELECT
### checks for compiler characteristics
AC_LANG_C
AC_C_CONST
AC_C_INLINE
NCURSES_INLINE=
if test "$ac_cv_c_inline" != no ; then
AC_DEFINE(CC_HAS_INLINE_FUNCS)
NCURSES_INLINE=inline
fi
AC_SUBST(NCURSES_INLINE)
CF_C_INLINE(NCURSES_INLINE,1200)
CF_SIG_ATOMIC_T
if test $NCURSES_CHTYPE = auto ; then
CF_TYPEOF_CHTYPE
else
cf_cv_typeof_chtype=$NCURSES_CHTYPE
fi
test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
AC_SUBST(cf_cv_typeof_chtype)
CF_UNSIGNED_LITERALS
cf_cv_1UL="1"
test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L"
AC_SUBST(cf_cv_1UL)
if test $NCURSES_MMASK_T = auto ; then
@ -1115,6 +1188,7 @@ if test $NCURSES_MMASK_T = auto ; then
else
cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
fi
test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
AC_SUBST(cf_cv_typeof_mmask_t)
### Checks for external-data
@ -1170,7 +1244,7 @@ CF_FUNC_POLL
if test "$with_hashed_db" != no ; then
AC_DEFINE(USE_HASHED_DB)
CF_HASHED_DB
CF_HASHED_DB($with_hashed_db)
fi
dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
@ -1200,14 +1274,13 @@ if test -n "$CXX" ; then
;;
esac
AC_CHECK_HEADERS(typeinfo)
AC_CHECK_HEADERS(iostream typeinfo)
CF_BOOL_DECL
CF_BOOL_SIZE
CF_ETIP_DEFINES
CF_CPP_PARAM_INIT
CF_CPP_STATIC_CAST
CF_CPP_VSCAN_FUNC
CXX_AR='$(AR)'
CXX_AR_OPTS='$(AR_OPTS)'
@ -1284,9 +1357,22 @@ AC_SUBST(USE_CXX_BOOL)
CF_HELP_MESSAGE(Ada95 Binding Options:)
dnl If the Ada95 source-tree is present, add that to the build unless it will
dnl not work, or was not requested.
if test -f "${srcdir}/Ada95/Makefile.in" ; then
dnl libtool does not know anything about GNAT, though a change made in 1998
dnl provided for it "someday". Disable the ada subtree if we are using
dnl libtool -TD 20070714
if test "$cf_with_ada" != "no" ; then
if test "$with_libtool" != "no"; then
AC_MSG_WARN(libtool does not support Ada - disabling feature)
cf_with_ada=no
fi
fi
dnl Check for availability of GNU Ada Translator (GNAT).
dnl At the moment we support no other Ada95 compiler.
if test -f "${srcdir}/Ada95/Makefile.in" ; then
if test "$cf_with_ada" != "no" ; then
cf_ada_make=gnatmake
AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
@ -1369,22 +1455,44 @@ end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no])
fi
fi
else
cf_with_ada=no
fi
### Construct the library-subsets, if any, from this set of keywords:
### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
### Construct the ncurses library-subsets, if any, from this set of keywords:
### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
###
### ticlib modules may be a separate library, otherwise contained in termlib.
### termlib modules may be a separate library, otherwise contained in ncurses.
###
### The of "+" or " " between the tokens controls the way the script
### chooses to split module lists into libraries.
###
### (see CF_LIB_RULES).
AC_MSG_CHECKING(for library subsets)
LIB_SUBSETS=
if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
LIB_SUBSETS="${LIB_SUBSETS}ticlib"
if test "$with_ticlib" != no ; then
LIB_SUBSETS="${LIB_SUBSETS} "
else
LIB_SUBSETS="${LIB_SUBSETS}+"
fi
fi
LIB_SUBSETS="${LIB_SUBSETS}termlib"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
if test "$with_termlib" != no ; then
LIB_SUBSETS="termlib"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
LIB_SUBSETS="${LIB_SUBSETS} "
else
LIB_SUBSETS="termlib+"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
LIB_SUBSETS="${LIB_SUBSETS}+"
fi
LIB_SUBSETS="${LIB_SUBSETS}base"
test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
AC_MSG_RESULT($LIB_SUBSETS)
### Construct the list of include-directories to be generated
@ -1399,10 +1507,12 @@ AC_MSG_RESULT($DFT_ARG_SUFFIX)
AC_MSG_CHECKING(default library-dependency suffix)
CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
DFT_LIB_SUFFIX=$DFT_DEP_SUFFIX
if test $DFT_LWR_MODEL = shared ; then
case $cf_cv_system_name in #(vi
cygwin*)
DFT_DEP_SUFFIX=".dll.a"
DFT_LIB_SUFFIX=".dll"
;;
esac
fi
@ -1426,16 +1536,53 @@ AC_MSG_RESULT($CXX_LIB_SUFFIX)
AC_SUBST(CXX_LIB_SUFFIX)
fi
# do not want -ldl in build except as needed for -lncurses dependency
if test "$with_dlsym" = yes ; then
if test $DFT_LWR_MODEL = shared || \
test $DFT_LWR_MODEL = libtool ; then
CF_REMOVE_LIB(LIBS,$LIBS,dl)
fi
fi
### Set up low-level terminfo dependencies for makefiles.
TINFO_LIST="$SHLIB_LIST"
# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
# do not need libdl
TICS_LIST=
if test "$with_dlsym" = yes ; then
CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
fi
if test "$with_ticlib" != no ; then
if test "$with_ticlib" != yes ; then
TICS_NAME=$with_ticlib
TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TICS_LIB_SUFFIX="${with_ticlib}"
else
TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
fi
TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
else
TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
fi
AC_SUBST(TICS_ARG_SUFFIX)
AC_SUBST(TICS_DEP_SUFFIX)
AC_SUBST(TICS_LIB_SUFFIX)
AC_SUBST(TICS_ARGS)
if test "$with_termlib" != no ; then
if test "$with_termlib" != yes ; then
TINFO_NAME=$with_termlib
TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
TINFO_LIB_SUFFIX="${with_termlib}"
else
TINFO_SUFFIX=${DFT_LIB_SUFFIX}
TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
@ -1450,21 +1597,48 @@ if test "$with_termlib" != no ; then
else
TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
fi
else
# the next lines are needed for linking libtic over libncurses
TINFO_NAME=${LIB_NAME}
TINFO_SUFFIX=${DFT_LIB_SUFFIX}
TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
fi
if test "$DFT_LWR_MODEL" = shared ; then
case $cf_cv_system_name in #(vi
cygwin*)
# "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
TINFO_SUFFIX=.dll
;;
esac
fi
AC_SUBST(TINFO_ARG_SUFFIX)
AC_SUBST(TINFO_DEP_SUFFIX)
AC_SUBST(TINFO_LIB_SUFFIX)
AC_SUBST(TINFO_ARGS)
if test "$with_dlsym" = yes ; then
CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
fi
# needed for Ada95
TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
AC_SUBST(TINFO_ARGS2)
case $DFT_LWR_MODEL in
normal|debug|profile)
CF_LDFLAGS_STATIC
;;
esac
AC_MSG_CHECKING(where we will install curses.h)
test "$with_overwrite" = no && \
test "x$includedir" = 'x${prefix}/include' && \
@ -1481,9 +1655,14 @@ fi
fi
AC_SUBST(WITH_OVERWRITE)
AC_SUBST(TICS_LIST)
AC_SUBST(TINFO_LIST)
AC_SUBST(SHLIB_LIST)
# used to separate tack out of the tree
NCURSES_TREE=
AC_SUBST(NCURSES_TREE)
### predefined stuff for the test programs
AC_DEFINE(HAVE_SLK_COLOR)
@ -1491,6 +1670,11 @@ AC_DEFINE(HAVE_SLK_COLOR)
### with the appropriate compile-rules.
CF_SRC_MODULES($modules_to_build)
if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
fi
CF_DIRS_TO_MAKE
AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
@ -1500,6 +1684,11 @@ AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${
### Now that we're done running tests, add the compiler-warnings, if any
CF_ADD_CFLAGS($EXTRA_CFLAGS)
### If we're building with rpath, try to link non-standard libs that way too.
if test "$DFT_LWR_MODEL" = "shared"; then
CF_RPATH_HACK
fi
### Define substitutions for header files to avoid name-pollution
CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
@ -1540,13 +1729,19 @@ TERMINFO="$TERMINFO"
TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
TINFO_NAME="$TINFO_NAME"
TINFO_SUFFIX="$TINFO_SUFFIX"
TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
TICS_NAME="$TICS_NAME"
WITH_CURSES_H="$with_curses_h"
WITH_ECHO="$with_echo"
WITH_OVERWRITE="$with_overwrite"
cf_LIST_MODELS="$cf_list_models"
cf_cv_abi_version="$cf_cv_abi_version"
cf_cv_do_relink="$cf_cv_do_relink"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
cf_cv_enable_lp64="$cf_cv_enable_lp64"
cf_cv_enable_opaque="$cf_cv_enable_opaque"
cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
cf_cv_rel_version="$cf_cv_rel_version"

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.567 2006/12/17 19:58:35 tom Exp $
# $Id: dist.mk,v 1.620 2007/12/22 20:41:31 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@ -37,7 +37,7 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 5
NCURSES_MINOR = 6
NCURSES_PATCH = 20061217
NCURSES_PATCH = 20071222
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
@ -106,6 +106,7 @@ manhtml:
fi ;\
done
# change some things to make weblint happy:
@cat man_alias.sed >> subst.tmp
@echo 's/<B>/<STRONG>/g' >> subst.tmp
@echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp
@echo 's/<I>/<EM>/g' >> subst.tmp

View File

@ -261,7 +261,7 @@ Library Overview
lib_tracedmp.c lib_tracemse.c trace_buf.c
It is rather unlikely you will ever need to change these, unless you
want to introduce a new debug trace level for some reasoon.
want to introduce a new debug trace level for some reason.
There is another group of files that do direct I/O via tputs(),
computations on the terminal capabilities, or queries to the OS

View File

@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<!--
$Id: ncurses-intro.html,v 1.41 2005/12/24 15:47:05 tom Exp $
$Id: ncurses-intro.html,v 1.43 2007/03/03 19:31:50 tom Exp $
****************************************************************************
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -914,15 +914,14 @@ Here is some sample code for shellout:
<H3><A NAME="xterm">Using NCURSES under XTERM</A></H3>
A resize operation in X sends SIGWINCH to the application running under xterm.
The <CODE>ncurses</CODE> library provides an experimental signal
handler, but in general does not catch this signal, because it cannot
know how you want the screen re-painted. You will usually have to write the
SIGWINCH handler yourself. Ncurses can give you some help. <P>
A resize operation in X sends <CODE>SIGWINCH</CODE> to the application running
under xterm.
The easiest way to code your SIGWINCH handler is to have it do an
<CODE>endwin</CODE>, followed by an <CODE>refresh</CODE> and a screen repaint you code
yourself. The <CODE>refresh</CODE> will pick up the new screen size from the
The easiest way to handle <CODE>SIGWINCH</CODE>
is to do an <CODE>endwin</CODE>,
followed by an <CODE>refresh</CODE> and a screen repaint you code
yourself.
The <CODE>refresh</CODE> will pick up the new screen size from the
xterm's environment. <P>
That is the standard way, of course (it even works with some vendor's curses
@ -934,8 +933,17 @@ not resize subwindows which must be shrunk.
are limited to the new screen dimensions, and pads <CODE>stdscr</CODE>
with blanks if the screen is larger. <P>
Finally, ncurses can be configured to provide its own SIGWINCH handler,
based on <CODE>resizeterm</CODE>.
The <CODE>ncurses</CODE> library provides a SIGWINCH signal handler,
which pushes a <CODE>KEY_RESIZE</CODE> via the wgetch() calls.
When <CODE>ncurses</CODE> returns that code,
it calls <code>resizeterm</CODE>
to update the size of the standard screen's window, repainting that
(filling with blanks or truncating as needed).
It also resizes other windows,
but its effect may be less satisfactory because it cannot
know how you want the screen re-painted.
You will usually have to write special-purpose code to handle
<CODE>KEY_RESIZE</CODE> yourself.
<H3><A NAME="screens">Handling Multiple Terminal Screens</A></H3>
@ -2184,7 +2192,7 @@ These requests treat the list as cyclic; that is, <CODE>REQ_NEXT_PAGE</CODE>
from the last page goes to the first, and <CODE>REQ_PREV_PAGE</CODE> from
the first page goes to the last.
<H3><A NAME="#ffield">Inter-Field Navigation Requests</A></H3>
<H3><A NAME="ffield">Inter-Field Navigation Requests</A></H3>
These requests handle navigation between fields on the same page.
@ -2238,7 +2246,7 @@ of B and C to the right of B. A <CODE>REQ_MOVE_RIGHT</CODE> from A will
go to B only if A, B, and C <EM>all</EM> share the same first line;
otherwise it will skip over B to C.
<H3><A NAME="#fifield">Intra-Field Navigation Requests</A></H3>
<H3><A NAME="fifield">Intra-Field Navigation Requests</A></H3>
These requests drive movement of the edit cursor within the currently
selected field.

View File

@ -174,7 +174,7 @@ Scope of This Document
The ncurses package was originated by Pavel Curtis. The original
maintainer of this package is Zeyd Ben-Halim <zmbenhal@netcom.com>.
Eric S. Raymond <esr@snark.thyrsus.com> wrote many of the new features
in versions after 1.8.1 and wrote most of this introduction. Jürgen
in versions after 1.8.1 and wrote most of this introduction. Juergen
Pfeifer wrote all of the menu and forms code as well as the Ada95
binding. Ongoing work is being done by Thomas Dickey (maintainer).
Contact the current maintainers at bug-ncurses@gnu.org.
@ -798,15 +798,9 @@ Hints, Tips, and Tricks
Using NCURSES under XTERM
A resize operation in X sends SIGWINCH to the application running
under xterm. The ncurses library provides an experimental signal
handler, but in general does not catch this signal, because it cannot
know how you want the screen re-painted. You will usually have to
write the SIGWINCH handler yourself. Ncurses can give you some help.
The easiest way to code your SIGWINCH handler is to have it do an
endwin, followed by an refresh and a screen repaint you code yourself.
The refresh will pick up the new screen size from the xterm's
environment.
under xterm. The easiest way to handle SIGWINCH is to do an endwin,
followed by an refresh and a screen repaint you code yourself. The
refresh will pick up the new screen size from the xterm's environment.
That is the standard way, of course (it even works with some vendor's
curses implementations). Its drawback is that it clears the screen to
@ -816,8 +810,13 @@ Hints, Tips, and Tricks
limited to the new screen dimensions, and pads stdscr with blanks if
the screen is larger.
Finally, ncurses can be configured to provide its own SIGWINCH
handler, based on resizeterm.
The ncurses library provides a SIGWINCH signal handler, which pushes a
KEY_RESIZE via the wgetch() calls. When ncurses returns that code, it
calls resizeterm to update the size of the standard screen's window,
repainting that (filling with blanks or truncating as needed). It also
resizes other windows, but its effect may be less satisfactory because
it cannot know how you want the screen re-painted. You will usually
have to write special-purpose code to handle KEY_RESIZE yourself.
Handling Multiple Terminal Screens
@ -889,11 +888,11 @@ Compatibility with Older Versions
To understand why this is a problem, remember that screen updates are
calculated between two representations of the entire display. The
documentation says that when you refresh a window, it is first copied
to the virtual screen, and then changes are calculated to update
the physical screen (and applied to the terminal). But "copied to" is
not very specific, and subtle differences in how copying works can
produce different behaviors in the case where two overlapping windows
are each being refreshed at unpredictable intervals.
to the virtual screen, and then changes are calculated to update the
physical screen (and applied to the terminal). But "copied to" is not
very specific, and subtle differences in how copying works can produce
different behaviors in the case where two overlapping windows are each
being refreshed at unpredictable intervals.
What happens to the overlapping region depends on what wnoutrefresh()
does with its argument -- what portions of the argument window it

View File

@ -1,6 +1,6 @@
# $Id: Makefile.in,v 1.42 2006/10/14 20:40:36 tom Exp $
# $Id: Makefile.in,v 1.47 2007/04/28 14:56:11 tom Exp $
##############################################################################
# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -27,7 +27,7 @@
# authorization. #
##############################################################################
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
# Author: Thomas E. Dickey 1996-on
#
# Makefile for form source code.
#
@ -91,7 +91,7 @@ CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
LINK = $(LIBTOOL_LINK) $(CC)
LINK = $(LIBTOOL_LINK)
LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
SHLIB_DIRS = -L../lib
@ -106,8 +106,6 @@ ABI_VERSION = @cf_cv_abi_version@
RANLIB = @LIB_PREP@
IMPORT_LIB = @IMPORT_LIB@
SHARED_LIB = @SHARED_LIB@
LIBRARIES = @LIBS_TO_MAKE@
LINT = @LINT@
@ -126,7 +124,7 @@ sources : $(AUTO_SRC)
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) :
sh $(srcdir)/../mkinstalldirs $@
sh $(srcdir)/../mkdirs.sh $@
# make copies to simplify include-paths while still keeping form's include
# file in this directory.

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* Copyright (c) 1998-2005,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fld_def.c,v 1.33 2005/04/16 17:31:17 tom Exp $")
MODULE_ID("$Id: fld_def.c,v 1.36 2007/10/13 19:29:58 tom Exp $")
/* this can't be readonly */
static FIELD default_field =
@ -93,7 +93,7 @@ _nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
assert(err != 0 && ap != (va_list *)0);
if ((typ->status & _LINKED_TYPE) != 0)
{
p = (TypeArgument *)malloc(sizeof(TypeArgument));
p = typeMalloc(TypeArgument, 1);
if (p != 0)
{
@ -141,7 +141,7 @@ _nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
assert(err != 0 && argp != 0);
if ((typ->status & _LINKED_TYPE) != 0)
{
p = (TypeArgument *)malloc(sizeof(TypeArgument));
p = typeMalloc(TypeArgument, 1);
if (p != 0)
{
@ -289,8 +289,9 @@ new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
nrow >= 0 &&
nbuf >= 0 &&
((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
(New_Field = (FIELD *)malloc(sizeof(FIELD))) != 0)
(New_Field = typeMalloc(FIELD, 1)) != 0)
{
T((T_CREATE("field %p"), New_Field));
*New_Field = default_field;
New_Field->rows = rows;
New_Field->cols = cols;
@ -304,7 +305,7 @@ new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
#if USE_WIDEC_SUPPORT
New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
New_Field->expanded = (char **)calloc(1 + (unsigned)rows, sizeof(char *));
New_Field->expanded = typeCalloc(char *, 1 + (unsigned)nbuf);
#endif
if (_nc_Copy_Type(New_Field, &default_field))

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* Copyright (c) 1998-2004,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fld_dup.c,v 1.10 2004/12/25 22:24:10 tom Exp $")
MODULE_ID("$Id: fld_dup.c,v 1.12 2007/10/13 19:30:21 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
@ -56,8 +56,9 @@ dup_field(FIELD *field, int frow, int fcol)
T((T_CALLED("dup_field(%p,%d,%d)"), field, frow, fcol));
if (field && (frow >= 0) && (fcol >= 0) &&
((err = E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
(New_Field = (FIELD *)malloc(sizeof(FIELD))))
(New_Field = typeMalloc(FIELD, 1)))
{
T((T_CREATE("field %p"), New_Field));
*New_Field = *_nc_Default_Field;
New_Field->frow = frow;
New_Field->fcol = fcol;

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* Copyright (c) 1998-2004,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fld_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
MODULE_ID("$Id: fld_ftlink.c,v 1.13 2007/10/13 19:30:35 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
@ -56,10 +56,11 @@ link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2)
T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
if (type1 && type2)
{
nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
nftyp = typeMalloc(FIELDTYPE, 1);
if (nftyp)
{
T((T_CREATE("fieldtype %p"), nftyp));
*nftyp = *_nc_Default_FieldType;
nftyp->status |= _LINKED_TYPE;
if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* Copyright (c) 1998-2004,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fld_link.c,v 1.9 2004/12/25 22:24:10 tom Exp $")
MODULE_ID("$Id: fld_link.c,v 1.11 2007/10/13 19:30:43 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
@ -57,8 +57,9 @@ link_field(FIELD *field, int frow, int fcol)
T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
if (field && (frow >= 0) && (fcol >= 0) &&
((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
(New_Field = (FIELD *)malloc(sizeof(FIELD))))
(New_Field = typeMalloc(FIELD, 1)))
{
T((T_CREATE("field %p"), New_Field));
*New_Field = *_nc_Default_Field;
New_Field->frow = frow;
New_Field->fcol = fcol;

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* Copyright (c) 1998-2004,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fld_newftyp.c,v 1.13 2004/12/25 22:24:10 tom Exp $")
MODULE_ID("$Id: fld_newftyp.c,v 1.15 2007/10/13 19:30:55 tom Exp $")
static FIELDTYPE const default_fieldtype =
{
@ -76,10 +76,11 @@ new_fieldtype(bool (*const field_check) (FIELD *, const void *),
T((T_CALLED("new_fieldtype(%p,%p)"), field_check, char_check));
if ((field_check) || (char_check))
{
nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
nftyp = typeMalloc(FIELDTYPE, 1);
if (nftyp)
{
T((T_CREATE("fieldtype %p"), nftyp));
*nftyp = default_fieldtype;
nftyp->fcheck = field_check;
nftyp->ccheck = char_check;

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: frm_def.c,v 1.20 2006/11/04 16:57:15 tom Exp $")
MODULE_ID("$Id: frm_def.c,v 1.22 2007/10/13 19:31:17 tom Exp $")
/* this can't be readonly */
static FORM default_form =
@ -186,8 +186,9 @@ Connect_Fields(FORM *form, FIELD **fields)
RETURN(E_BAD_ARGUMENT);
/* allocate page structures */
if ((pg = (_PAGE *) malloc(page_nr * sizeof(_PAGE))) != (_PAGE *) 0)
if ((pg = typeMalloc(_PAGE, page_nr)) != (_PAGE *) 0)
{
T((T_CREATE("_PAGE %p"), pg));
form->page = pg;
}
else
@ -290,11 +291,12 @@ new_form(FIELD **fields)
{
int err = E_SYSTEM_ERROR;
FORM *form = (FORM *)malloc(sizeof(FORM));
FORM *form = typeMalloc(FORM, 1);
T((T_CALLED("new_form(%p)"), fields));
if (form)
{
T((T_CREATE("form %p"), form));
*form = *_nc_Default_Form;
if ((err = Associate_Fields(form, fields)) != E_OK)
{

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -32,7 +32,7 @@
#include "form.priv.h"
MODULE_ID("$Id: frm_driver.c,v 1.76 2006/11/04 18:45:35 tom Exp $")
MODULE_ID("$Id: frm_driver.c,v 1.85 2007/11/24 21:32:53 tom Exp $")
/*----------------------------------------------------------------------------
This is the core module of the form library. It contains the majority
@ -262,7 +262,19 @@ wins_wchnstr(WINDOW *w, cchar_t *s, int n)
static int
fix_wchnstr(WINDOW *w, cchar_t *s, int n)
{
int x;
win_wchnstr(w, s, n);
/*
* This function is used to extract the text only from the window.
* Strip attributes and color from the string so they will not be added
* back when copying the string to the window.
*/
for (x = 0; x < n; ++x)
{
RemAttr(s[x], A_ATTRIBUTES);
SetPair(s[x], 0);
}
return n;
}
@ -651,6 +663,7 @@ Field_Grown(FIELD *field, int amount)
result = TRUE; /* allow sharing of recovery on failure */
T((T_CREATE("fieldcell %p"), newbuf));
field->buf = newbuf;
for (i = 0; i <= field->nbuf; i++)
{
@ -724,6 +737,34 @@ Field_Grown(FIELD *field, int amount)
return (result);
}
#ifdef NCURSES_MOUSE_VERSION
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : int Field_encloses(FIELD *field, int ry, int rx)
|
| Description : Check if the given coordinates lie within the given field.
|
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid form pointer
| E_SYSTEM_ERROR - form has no current field or
| field-window
+--------------------------------------------------------------------------*/
static int
Field_encloses(FIELD *field, int ry, int rx)
{
T((T_CALLED("Field_encloses(%p)"), field));
if (field != 0
&& field->frow <= ry
&& (field->frow + field->rows) > ry
&& field->fcol <= rx
&& (field->fcol + field->cols) > rx)
{
RETURN(E_OK);
}
RETURN(E_INVALID_FIELD);
}
#endif
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : int _nc_Position_Form_Cursor(FORM * form)
@ -4149,6 +4190,83 @@ form_driver(FORM *form, int c)
res = (BI->cmd) (form);
}
}
#ifdef NCURSES_MOUSE_VERSION
else if (KEY_MOUSE == c)
{
MEVENT event;
WINDOW *win = form->win ? form->win : stdscr;
WINDOW *sub = form->sub ? form->sub : win;
getmouse(&event);
if ((event.bstate & (BUTTON1_CLICKED |
BUTTON1_DOUBLE_CLICKED |
BUTTON1_TRIPLE_CLICKED))
&& wenclose(win, event.y, event.x))
{ /* we react only if the click was in the userwin, that means
* inside the form display area or at the decoration window.
*/
int ry = event.y, rx = event.x; /* screen coordinates */
res = E_REQUEST_DENIED;
if (mouse_trafo(&ry, &rx, FALSE))
{ /* rx, ry are now "curses" coordinates */
if (ry < sub->_begy)
{ /* we clicked above the display region; this is
* interpreted as "scroll up" request
*/
if (event.bstate & BUTTON1_CLICKED)
res = form_driver(form, REQ_PREV_FIELD);
else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
res = form_driver(form, REQ_PREV_PAGE);
else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
res = form_driver(form, REQ_FIRST_FIELD);
}
else if (ry > sub->_begy + sub->_maxy)
{ /* we clicked below the display region; this is
* interpreted as "scroll down" request
*/
if (event.bstate & BUTTON1_CLICKED)
res = form_driver(form, REQ_NEXT_FIELD);
else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
res = form_driver(form, REQ_NEXT_PAGE);
else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
res = form_driver(form, REQ_LAST_FIELD);
}
else if (wenclose(sub, event.y, event.x))
{ /* Inside the area we try to find the hit item */
int i;
ry = event.y;
rx = event.x;
if (wmouse_trafo(sub, &ry, &rx, FALSE))
{
int min_field = form->page[form->curpage].pmin;
int max_field = form->page[form->curpage].pmax;
for (i = min_field; i <= max_field; ++i)
{
FIELD *field = form->field[i];
if (Field_Is_Selectable(field)
&& Field_encloses(field, ry, rx) == E_OK)
{
res = _nc_Set_Current_Field(form, field);
if (res == E_OK)
res = _nc_Position_Form_Cursor(form);
if (res == E_OK
&& (event.bstate & BUTTON1_DOUBLE_CLICKED))
res = E_UNKNOWN_COMMAND;
break;
}
}
}
}
}
}
else
res = E_REQUEST_DENIED;
}
#endif /* NCURSES_MOUSE_VERSION */
else if (!(c & (~(int)MAX_REGULAR_CHARACTER)))
{
/*
@ -4261,7 +4379,7 @@ set_field_buffer(FIELD *field, int buffer, const char *value)
wclear(field->working);
mvwaddstr(field->working, 0, 0, value);
if ((widevalue = (FIELD_CELL *)calloc(len, sizeof(FIELD_CELL))) == 0)
if ((widevalue = typeCalloc(FIELD_CELL, len + 1)) == 0)
{
RETURN(E_SYSTEM_ERROR);
}
@ -4341,10 +4459,7 @@ field_buffer(const FIELD *field, int buffer)
init_mb(state);
next = _nc_wcrtomb(0, data[n].chars[0], &state);
if (!isEILSEQ(next))
{
if (next != 0)
need += next;
}
need += next;
}
}
@ -4358,7 +4473,7 @@ field_buffer(const FIELD *field, int buffer)
{
wclear(field->working);
mvwadd_wchnstr(field->working, 0, 0, data, size);
mvwinnstr(field->working, 0, 0, result, (int)need + 1);
mvwinnstr(field->working, 0, 0, result, (int)need);
}
#else
result = Address_Of_Nth_Buffer(field, buffer);

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -34,7 +34,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fty_alnum.c,v 1.19 2006/04/22 21:33:05 tom Exp $")
MODULE_ID("$Id: fty_alnum.c,v 1.21 2007/10/13 19:31:52 tom Exp $")
#define thisARG alnumARG
@ -55,10 +55,13 @@ thisARG;
static void *
Make_This_Type(va_list *ap)
{
thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
thisARG *argp = typeMalloc(thisARG, 1);
if (argp)
argp->width = va_arg(*ap, int);
{
T((T_CREATE("thisARG %p"), argp));
argp->width = va_arg(*ap, int);
}
return ((void *)argp);
}
@ -75,10 +78,13 @@ static void *
Copy_This_Type(const void *argp)
{
const thisARG *ap = (const thisARG *)argp;
thisARG *result = (thisARG *) malloc(sizeof(thisARG));
thisARG *result = typeMalloc(thisARG, 1);
if (result)
*result = *ap;
{
T((T_CREATE("thisARG %p"), result));
*result = *ap;
}
return ((void *)result);
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -34,7 +34,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fty_alpha.c,v 1.21 2006/04/22 21:33:05 tom Exp $")
MODULE_ID("$Id: fty_alpha.c,v 1.23 2007/10/13 19:32:09 tom Exp $")
#define thisARG alphaARG
@ -55,10 +55,13 @@ thisARG;
static void *
Make_This_Type(va_list *ap)
{
thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
thisARG *argp = typeMalloc(thisARG, 1);
if (argp)
argp->width = va_arg(*ap, int);
{
T((T_CREATE("thisARG %p"), argp));
argp->width = va_arg(*ap, int);
}
return ((void *)argp);
}
@ -75,10 +78,13 @@ static void *
Copy_This_Type(const void *argp)
{
const thisARG *ap = (const thisARG *)argp;
thisARG *result = (thisARG *) malloc(sizeof(thisARG));
thisARG *result = typeMalloc(thisARG, 1);
if (result)
*result = *ap;
{
T((T_CREATE("thisARG %p"), result));
*result = *ap;
}
return ((void *)result);
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -34,7 +34,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fty_enum.c,v 1.20 2006/04/22 21:33:05 tom Exp $")
MODULE_ID("$Id: fty_enum.c,v 1.22 2007/10/13 19:32:26 tom Exp $")
typedef struct
{
@ -56,7 +56,7 @@ enumARG;
static void *
Make_Enum_Type(va_list *ap)
{
enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
enumARG *argp = typeMalloc(enumARG, 1);
if (argp)
{
@ -64,6 +64,7 @@ Make_Enum_Type(va_list *ap)
char **kp = (char **)0;
int ccase, cunique;
T((T_CREATE("enumARG %p"), argp));
argp->kwds = va_arg(*ap, char **);
ccase = va_arg(*ap, int);
cunique = va_arg(*ap, int);
@ -96,10 +97,13 @@ Copy_Enum_Type(const void *argp)
{
const enumARG *ap = (const enumARG *)argp;
result = (enumARG *)malloc(sizeof(enumARG));
result = typeMalloc(enumARG, 1);
if (result)
*result = *ap;
{
T((T_CREATE("enumARG %p"), result));
*result = *ap;
}
}
return (void *)result;
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -34,7 +34,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fty_int.c,v 1.20 2006/04/22 21:33:05 tom Exp $")
MODULE_ID("$Id: fty_int.c,v 1.22 2007/10/13 19:32:40 tom Exp $")
#if USE_WIDEC_SUPPORT
#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
@ -63,10 +63,11 @@ thisARG;
static void *
Make_This_Type(va_list *ap)
{
thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
thisARG *argp = typeMalloc(thisARG, 1);
if (argp)
{
T((T_CREATE("thisARG %p"), argp));
argp->precision = va_arg(*ap, int);
argp->low = va_arg(*ap, long);
argp->high = va_arg(*ap, long);
@ -90,9 +91,12 @@ Copy_This_Type(const void *argp)
if (argp)
{
result = (thisARG *) malloc(sizeof(thisARG));
result = typeMalloc(thisARG, 1);
if (result)
*result = *ap;
{
T((T_CREATE("thisARG %p"), result));
*result = *ap;
}
}
return (void *)result;
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -34,7 +34,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fty_num.c,v 1.23 2006/04/22 21:33:05 tom Exp $")
MODULE_ID("$Id: fty_num.c,v 1.25 2007/10/13 19:32:54 tom Exp $")
#if HAVE_LOCALE_H
#include <locale.h>
@ -74,10 +74,11 @@ thisARG;
static void *
Make_This_Type(va_list *ap)
{
thisARG *argn = (thisARG *) malloc(sizeof(thisARG));
thisARG *argn = typeMalloc(thisARG, 1);
if (argn)
{
T((T_CREATE("thisARG %p"), argn));
argn->precision = va_arg(*ap, int);
argn->low = va_arg(*ap, double);
argn->high = va_arg(*ap, double);
@ -107,9 +108,12 @@ Copy_This_Type(const void *argp)
if (argp)
{
result = (thisARG *) malloc(sizeof(thisARG));
result = typeMalloc(thisARG, 1);
if (result)
*result = *ap;
{
T((T_CREATE("thisARG %p"), result));
*result = *ap;
}
}
return (void *)result;
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -34,7 +34,7 @@
#include "form.priv.h"
MODULE_ID("$Id: fty_regex.c,v 1.19 2006/04/22 21:33:05 tom Exp $")
MODULE_ID("$Id: fty_regex.c,v 1.21 2007/10/13 19:33:50 tom Exp $")
#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
#include <regex.h>
@ -105,15 +105,17 @@ Make_RegularExpression_Type(va_list *ap)
char *rx = va_arg(*ap, char *);
RegExp_Arg *preg;
preg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
preg = typeMalloc(RegExp_Arg, 1);
if (preg)
{
if (((preg->pRegExp = (regex_t *) malloc(sizeof(regex_t))) != 0)
T((T_CREATE("RegExp_Arg %p"), preg));
if (((preg->pRegExp = typeMalloc(regex_t, 1)) != 0)
&& !regcomp(preg->pRegExp, rx,
(REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
{
preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
T((T_CREATE("regex_t %p"), preg->pRegExp));
preg->refCount = typeMalloc(unsigned long, 1);
*(preg->refCount) = 1;
}
@ -130,20 +132,21 @@ Make_RegularExpression_Type(va_list *ap)
char *rx = va_arg(*ap, char *);
RegExp_Arg *pArg;
pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
pArg = typeMalloc(RegExp_Arg, 1);
if (pArg)
{
int blen = RX_INCREMENT;
T((T_CREATE("RegExp_Arg %p"), pArg));
pArg->compiled_expression = NULL;
pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
pArg->refCount = typeMalloc(unsigned long, 1);
*(pArg->refCount) = 1;
do
{
char *buf = (char *)malloc(blen);
char *buf = typeMalloc(char, blen);
if (buf)
{

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 1998 Free Software Foundation, Inc. #
# Copyright (c) 1998,2006 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"), #
@ -29,3 +29,4 @@
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
$(srcdir)/form.h
# vile:makemode

View File

@ -1,6 +1,6 @@
# $Id: modules,v 1.14 2004/12/25 23:29:22 tom Exp $
# $Id: modules,v 1.15 2006/12/24 00:52:58 tom Exp $
##############################################################################
# Copyright (c) 1998,2004 Free Software Foundation, Inc. #
# Copyright (c) 1998-2004,2006 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"), #
@ -27,7 +27,7 @@
# authorization. #
##############################################################################
#
# Author: Thomas E. Dickey
# Author: Thomas E. Dickey 1995-on
#
@ base
@ -72,3 +72,5 @@ fty_int lib $(srcdir) $(FORM_PRIV_H)
fty_ipv4 lib $(srcdir) $(FORM_PRIV_H)
fty_num lib $(srcdir) $(FORM_PRIV_H)
fty_regex lib $(srcdir) $(FORM_PRIV_H)
# vile:makemode

View File

@ -1,6 +1,7 @@
# vile:awkmode
BEGIN {
print "/****************************************************************************"
print " * Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *"
print " * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *"
print " * *"
print " * Permission is hereby granted, free of charge, to any person obtaining a *"
print " * copy of this software and associated documentation files (the *"
@ -33,7 +34,7 @@ BEGIN {
print "/* and: Thomas E. Dickey 1995-on */"
print "/****************************************************************************/"
print ""
print "/* $Id: MKterm.h.awk.in,v 1.47 2006/11/26 01:18:23 tom Exp $ */"
print "/* $Id: MKterm.h.awk.in,v 1.49 2007/08/18 11:44:26 tom Exp $ */"
print ""
print "/*"
print "** term.h -- Definition of struct term"
@ -229,26 +230,26 @@ END {
print ""
print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
print ""
print "#if BROKEN_LINKER"
print "#define boolnames _nc_boolnames()"
print "#define boolcodes _nc_boolcodes()"
print "#define boolfnames _nc_boolfnames()"
print "#define numnames _nc_numnames()"
print "#define numcodes _nc_numcodes()"
print "#define numfnames _nc_numfnames()"
print "#define strnames _nc_strnames()"
print "#define strcodes _nc_strcodes()"
print "#define strfnames _nc_strfnames()"
print "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
print ""
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolnames (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolcodes (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolfnames (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numnames (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numcodes (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numfnames (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strnames (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strcodes (void);"
print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strfnames (void);"
print "#define boolnames NCURSES_PUBLIC_VAR(boolnames())"
print "#define boolcodes NCURSES_PUBLIC_VAR(boolcodes())"
print "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
print "#define numnames NCURSES_PUBLIC_VAR(numnames())"
print "#define numcodes NCURSES_PUBLIC_VAR(numcodes())"
print "#define numfnames NCURSES_PUBLIC_VAR(numfnames())"
print "#define strnames NCURSES_PUBLIC_VAR(strnames())"
print "#define strcodes NCURSES_PUBLIC_VAR(strcodes())"
print "#define strfnames NCURSES_PUBLIC_VAR(strfnames())"
print ""
print "#else"
print ""
@ -291,10 +292,10 @@ END {
print "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
print ""
print "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* implemented */"
print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */"
print "#else"
print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* implemented */"
print "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* implemented */"
print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */"
print "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */"
print "#endif"
print ""
print "#endif /* __NCURSES_H */"

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -32,7 +32,7 @@
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
/* $Id: curses.h.in,v 1.167 2006/11/26 01:14:54 tom Exp $ */
/* $Id: curses.h.in,v 1.181 2007/11/18 00:32:03 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
@ -102,11 +102,18 @@
#undef NCURSES_COLOR_T
#define NCURSES_COLOR_T short
/*
* Definition used to make WINDOW and similar structs opaque.
*/
#ifndef @cf_cv_enable_opaque@
#define NCURSES_OPAQUE @NCURSES_OPAQUE@
#endif
/*
* The internal type used for window dimensions.
*/
#undef NCURSES_SIZE_T
#define NCURSES_SIZE_T short
#define NCURSES_SIZE_T @NCURSES_SIZE_T@
/*
* Control whether tparm() supports varargs or fixed-parameter list.
@ -137,7 +144,7 @@ typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
#include <stddef.h> /* we want wchar_t */
#endif /* _XOPEN_SOURCE_EXTENDED */
/* XSI and SVr4 specify that curses implements 'bool'. However, C++ may also
/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also
* implement it. If so, we must use the C++ compiler's type to avoid conflict
* with other interfaces.
*
@ -184,7 +191,7 @@ extern "C" {
#endif
/*
* XSI attributes. In the ncurses implementation, they are identical to the
* X/Open attributes. In the ncurses implementation, they are identical to the
* A_ attributes.
*/
#define WA_ATTRIBUTES A_ATTRIBUTES
@ -206,9 +213,6 @@ extern "C" {
#define WA_VERTICAL A_VERTICAL
/* colors */
extern NCURSES_EXPORT_VAR(int) COLORS;
extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
#define COLOR_BLACK 0
#define COLOR_RED 1
#define COLOR_GREEN 2
@ -220,8 +224,8 @@ extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
/* line graphics */
#if @BROKEN_LINKER@
extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@
NCURSES_WRAPPED_VAR(chtype*, acs_map);
#define acs_map (_nc_acs_map())
#else
extern NCURSES_EXPORT_VAR(chtype) acs_map[];
@ -346,6 +350,8 @@ typedef struct
attr_t attr;
wchar_t chars[CCHARW_MAX];
#if @NCURSES_EXT_COLORS@
#undef NCURSES_EXT_COLORS
#define NCURSES_EXT_COLORS @NCURSES_PATCH@
int ext_color; /* color pair, must be more than 16-bits */
#endif
}
@ -353,6 +359,7 @@ cchar_t;
#endif /* _XOPEN_SOURCE_EXTENDED */
#if !NCURSES_OPAQUE
struct ldat;
struct _win_st
@ -409,41 +416,7 @@ struct _win_st
#endif
#endif
};
extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
extern NCURSES_EXPORT_VAR(int) LINES;
extern NCURSES_EXPORT_VAR(int) COLS;
extern NCURSES_EXPORT_VAR(int) TABSIZE;
/*
* This global was an undocumented feature under AIX curses.
*/
extern NCURSES_EXPORT_VAR(int) ESCDELAY; /* ESC expire time in milliseconds */
/*
* These functions are extensions - not in XSI Curses.
*/
#if @NCURSES_EXT_FUNCS@
extern NCURSES_EXPORT(bool) is_term_resized (int, int);
extern NCURSES_EXPORT(char *) keybound (int, int);
extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) assume_default_colors (int, int);
extern NCURSES_EXPORT(int) define_key (const char *, int);
extern NCURSES_EXPORT(int) key_defined (const char *);
extern NCURSES_EXPORT(int) keyok (int, bool);
extern NCURSES_EXPORT(int) resize_term (int, int);
extern NCURSES_EXPORT(int) resizeterm (int, int);
extern NCURSES_EXPORT(int) use_default_colors (void);
extern NCURSES_EXPORT(int) use_extended_names (bool);
extern NCURSES_EXPORT(int) use_legacy_coding (int);
extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
extern NCURSES_EXPORT(void) nofilter(void);
#else
#define curses_version() NCURSES_VERSION
#endif
#endif /* NCURSES_OPAQUE */
/*
* This is an extension to support events...
@ -537,7 +510,7 @@ extern NCURSES_EXPORT(int) wgetnstr_events(WINDOW *,char *,int,_nc_eventlist *);
#endif
/*
* Function prototypes. This is the complete XSI Curses list of required
* Function prototypes. This is the complete X/Open Curses list of required
* functions. Those marked `generated' will have sources generated from the
* macro definitions later in this file, in order to satisfy XPG4.2
* requirements.
@ -741,7 +714,7 @@ extern NCURSES_EXPORT(int) standout (void); /* generated */
extern NCURSES_EXPORT(int) standend (void); /* generated */
extern NCURSES_EXPORT(int) start_color (void); /* implemented */
extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */
extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *,int,int,int,int); /* implemented */
extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */
extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */
extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */
extern NCURSES_EXPORT(char *) termname (void); /* implemented */
@ -825,17 +798,16 @@ extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *); /* implemented *
extern NCURSES_EXPORT(int) putp (const char *); /* implemented */
#if NCURSES_TPARM_VARARGS
extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* implemented */
extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */
#else
extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* implemented */
extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* implemented */
extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */
extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */
#endif
extern NCURSES_EXPORT_VAR(char) ttytype[]; /* needed for backward compatibility */
/*
* These functions are not in X/Open, but we use them in macro definitions:
*/
extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */
extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */
extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */
extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */
@ -846,12 +818,58 @@ extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */
extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
/*
* vid_attr() was implemented originally based on a draft of XSI curses.
* vid_attr() was implemented originally based on a draft of X/Open curses.
*/
#ifndef _XOPEN_SOURCE_EXTENDED
#define vid_attr(a,pair,opts) vidattr(a)
#endif
/*
* These functions are extensions - not in X/Open Curses.
*/
#undef NCURSES_EXT_FUNCS
#if @NCURSES_EXT_FUNCS@
#undef NCURSES_EXT_FUNCS
#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
typedef int (*NCURSES_CALLBACK)(WINDOW *, void *);
extern NCURSES_EXPORT(bool) is_term_resized (int, int);
extern NCURSES_EXPORT(char *) keybound (int, int);
extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) assume_default_colors (int, int);
extern NCURSES_EXPORT(int) define_key (const char *, int);
extern NCURSES_EXPORT(int) key_defined (const char *);
extern NCURSES_EXPORT(int) keyok (int, bool);
extern NCURSES_EXPORT(int) resize_term (int, int);
extern NCURSES_EXPORT(int) resizeterm (int, int);
extern NCURSES_EXPORT(int) use_default_colors (void);
extern NCURSES_EXPORT(int) use_extended_names (bool);
extern NCURSES_EXPORT(int) use_legacy_coding (int);
extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_CALLBACK, void *);
extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_CALLBACK, void *);
extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
extern NCURSES_EXPORT(void) nofilter(void);
/*
* These extensions provide access to information stored in the WINDOW even
* when NCURSES_OPAQUE is set:
*/
extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */
extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */
extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
#else
#define curses_version() NCURSES_VERSION
#endif
/* attributes */
#define NCURSES_ATTR_SHIFT 8
@ -892,11 +910,18 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win))
#define getparyx(win,y,x) (y = getpary(win), x = getparx(win))
#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
else getyx(newscr,(y),(x)); \
#define getsyx(y,x) do { if (is_leaveok(newscr)) \
(y) = (x) = -1; \
else \
getyx(newscr,(y), (x)); \
} while(0)
#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
#define setsyx(y,x) do { if ((y) == -1 && (x) == -1) \
leaveok(newscr, TRUE); \
else { \
leaveok(newscr, FALSE); \
wmove(newscr, (y), (x)); \
} \
} while(0)
#ifndef NCURSES_NOMACROS
@ -918,15 +943,17 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
#define gettmode()
/* It seems older SYSV curses versions define these */
#define getattrs(win) ((win)?(win)->_attrs:A_NORMAL)
#define getcurx(win) ((win)?(win)->_curx:ERR)
#define getcury(win) ((win)?(win)->_cury:ERR)
#define getbegx(win) ((win)?(win)->_begx:ERR)
#define getbegy(win) ((win)?(win)->_begy:ERR)
#define getmaxx(win) ((win)?((win)->_maxx + 1):ERR)
#define getmaxy(win) ((win)?((win)->_maxy + 1):ERR)
#define getparx(win) ((win)?(win)->_parx:ERR)
#define getpary(win) ((win)?(win)->_pary:ERR)
#if !NCURSES_OPAQUE
#define getattrs(win) ((win) ? (win)->_attrs : A_NORMAL)
#define getcurx(win) ((win) ? (win)->_curx : ERR)
#define getcury(win) ((win) ? (win)->_cury : ERR)
#define getbegx(win) ((win) ? (win)->_begx : ERR)
#define getbegy(win) ((win) ? (win)->_begy : ERR)
#define getmaxx(win) ((win) ? ((win)->_maxx + 1) : ERR)
#define getmaxy(win) ((win) ? ((win)->_maxy + 1) : ERR)
#define getparx(win) ((win) ? (win)->_parx : ERR)
#define getpary(win) ((win) ? (win)->_pary : ERR)
#endif /* NCURSES_OPAQUE */
#define wstandout(win) (wattrset(win,A_STANDOUT))
#define wstandend(win) (wattrset(win,A_NORMAL))
@ -934,12 +961,14 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
#if !NCURSES_OPAQUE
#if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
#define wattrset(win,at) ((win)->_color = PAIR_NUMBER(at), \
(win)->_attrs = (at))
#else
#define wattrset(win,at) ((win)->_attrs = (at))
#endif
#endif /* NCURSES_OPAQUE */
#define scroll(win) wscrl(win,1)
@ -956,7 +985,10 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
#define winchstr(w, s) winchnstr(w, s, -1)
#define winsstr(w, s) winsnstr(w, s, -1)
#if !NCURSES_OPAQUE
#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1)
#endif /* NCURSES_OPAQUE */
#define waddstr(win,str) waddnstr(win,str,-1)
#define waddchstr(win,str) waddchnstr(win,str,-1)
@ -1064,11 +1096,14 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
/*
* Some wide-character functions can be implemented without the extensions.
*/
#if !NCURSES_OPAQUE
#define getbkgd(win) ((win)->_bkgd)
#endif /* NCURSES_OPAQUE */
#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
#if !NCURSES_OPAQUE
#if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \
(win)->_color = (p), \
@ -1082,9 +1117,10 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
(void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
OK)
#endif
#endif /* NCURSES_OPAQUE */
/*
* XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
* X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
* varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to
* use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already
* use stdarg.h, so...
@ -1100,8 +1136,75 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
#endif
/*
* These macros are extensions - not in X/Open Curses.
*/
#if @NCURSES_EXT_FUNCS@
#if !NCURSES_OPAQUE
#define is_cleared(win) ((win)->_clear)
#define is_idcok(win) ((win)->_idcok)
#define is_idlok(win) ((win)->_idlok)
#define is_immedok(win) ((win)->_immed)
#define is_keypad(win) ((win)->_use_keypad)
#define is_leaveok(win) ((win)->_leaveok)
#define is_nodelay(win) ((win)->_delay == 0)
#define is_notimeout(win) ((win)->_notimeout)
#define is_scrollok(win) ((win)->_scroll)
#define is_syncok(win) ((win)->_sync)
#define wgetparent(win) ((win) ? (win)->_parent : 0)
#define wgetscrreg(win,t,b) ((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
#endif
#endif
#endif /* NCURSES_NOMACROS */
/*
* Public variables.
*
* Notes:
* a. ESCDELAY was an undocumented feature under AIX curses.
* It gives the ESC expire time in milliseconds.
* b. ttytype is needed for backward compatibility
*/
#if @cf_cv_enable_reentrant@
NCURSES_WRAPPED_VAR(WINDOW *, curscr);
NCURSES_WRAPPED_VAR(WINDOW *, newscr);
NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
NCURSES_WRAPPED_VAR(char *, ttytype);
NCURSES_WRAPPED_VAR(int, COLORS);
NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
NCURSES_WRAPPED_VAR(int, COLS);
NCURSES_WRAPPED_VAR(int, ESCDELAY);
NCURSES_WRAPPED_VAR(int, LINES);
NCURSES_WRAPPED_VAR(int, TABSIZE);
#define curscr NCURSES_PUBLIC_VAR(curscr())
#define newscr NCURSES_PUBLIC_VAR(newscr())
#define stdscr NCURSES_PUBLIC_VAR(stdscr())
#define ttytype NCURSES_PUBLIC_VAR(ttytype())
#define COLORS NCURSES_PUBLIC_VAR(COLORS())
#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
#define COLS NCURSES_PUBLIC_VAR(COLS())
#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY())
#define LINES NCURSES_PUBLIC_VAR(LINES())
#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE())
#else
extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
extern NCURSES_EXPORT_VAR(char) ttytype[];
extern NCURSES_EXPORT_VAR(int) COLORS;
extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
extern NCURSES_EXPORT_VAR(int) COLS;
extern NCURSES_EXPORT_VAR(int) ESCDELAY;
extern NCURSES_EXPORT_VAR(int) LINES;
extern NCURSES_EXPORT_VAR(int) TABSIZE;
#endif
/*
* Pseudo-character tokens outside ASCII range. The curses wgetch() function
* will return any given one of these only if the corresponding k- capability

View File

@ -1,8 +1,9 @@
/* $Id: curses.tail,v 1.15 2007/03/10 17:51:24 tom Exp $ */
/*
* vile:cmode:
* This file is part of ncurses, designed to be appended after curses.h.in
* (see that file for the relevant copyright).
*/
/* $Id: curses.tail,v 1.14 2006/05/27 16:28:29 tom Exp $ */
/* mouse interface */

View File

@ -1,11 +1,11 @@
/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
/*
* vile:cmode:
* This file is part of ncurses, designed to be appended after curses.h.in
* (see that file for the relevant copyright).
*/
#ifdef _XOPEN_SOURCE_EXTENDED
/* $Id: curses.wide,v 1.32 2006/05/27 19:44:23 tom Exp $ */
extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
@ -197,10 +197,13 @@ extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* imple
#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
#define win_wchstr(w,c) win_wchnstr(w,c,-1)
#define wins_wstr(w,t) wins_nwstr(w,t,-1)
#if !NCURSES_OPAQUE
#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
#endif
#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n)
#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s)

View File

@ -1,5 +1,6 @@
# $Id: headers,v 1.9 2007/01/20 19:57:04 Miroslav.Lichvar Exp $
##############################################################################
# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -26,10 +27,16 @@
# authorization. #
##############################################################################
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
# Author: Thomas E. Dickey 1996-on
#
term.h
curses.h
unctrl.h
termcap.h
$(srcdir)/ncurses_dll.h
@ ticlib
$(srcdir)/tic.h
$(srcdir)/term_entry.h
$(srcdir)/nc_tparm.h
# vile:makemode

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* Copyright (c) 1998-2005,2007 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 *
@ -29,7 +29,7 @@
/****************************************************************************
* Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
****************************************************************************/
/* $Id: nc_alloc.h,v 1.13 2005/01/16 00:27:35 tom Exp $ */
/* $Id: nc_alloc.h,v 1.15 2007/02/03 18:40:23 tom Exp $ */
#ifndef NC_ALLOC_included
#define NC_ALLOC_included 1
@ -67,8 +67,11 @@ extern "C" {
#define HAVE_NC_FREEALL 1
struct termtype;
extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN;
extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
extern NCURSES_EXPORT(void) _nc_free_tparm(void);
extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
#define ExitProgram(code) _nc_free_and_exit(code)
#endif
@ -87,6 +90,9 @@ extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
#endif
/* entries.c */
extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))

View File

@ -1,6 +1,6 @@
# $Id: ncurses_defs,v 1.30 2006/08/05 19:27:02 tom Exp $
# $Id: ncurses_defs,v 1.35 2007/10/06 21:18:16 tom Exp $
##############################################################################
# Copyright (c) 2000-2005,2006 Free Software Foundation, Inc. #
# Copyright (c) 2000-2006,2007 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"), #
@ -33,10 +33,8 @@
BROKEN_LINKER
BSD_TPUTS
CC_HAS_INLINE_FUNCS
CC_HAS_PROTOS
CPP_HAS_PARAM_INIT
CPP_HAS_VSCAN_FUNC
CURSES_ACS_ARRAY acs_map
CURSES_WACS_ARRAY _nc_wacs
DECL_ERRNO
@ -68,6 +66,7 @@ HAVE_GPM_H
HAVE_GPP_BUILTIN_H
HAVE_GXX_BUILTIN_H
HAVE_HAS_KEY
HAVE_IOSTREAM
HAVE_ISASCII
HAVE_ISSETUGID
HAVE_LANGINFO_CODESET
@ -159,6 +158,7 @@ HAVE_WORKING_POLL
HAVE_WRESIZE
HAVE__DOSCAN
MIXEDCASE_FILENAMES
NCURSES_CHAR_EQ
NCURSES_EXPANDED
NCURSES_EXT_COLORS
NCURSES_EXT_FUNCS
@ -189,12 +189,10 @@ USE_LINKS
USE_MY_MEMMOVE
USE_OK_BCOPY
USE_RCS_IDS
USE_REENTRANT
USE_SAFE_SPRINTF
USE_SCROLL_HINTS
USE_SIGWINCH
USE_STDIO_VSCAN
USE_STRSTREAM_VSCAN
USE_STRSTREAM_VSCAN_CAST
USE_SYMLINKS
USE_SYSMOUSE
USE_TERMCAP

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -25,7 +25,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************/
/* $Id: ncurses_dll.h,v 1.5 2006/04/22 22:07:51 tom Exp $ */
/* $Id: ncurses_dll.h,v 1.6 2007/03/10 19:21:49 tom Exp $ */
#ifndef NCURSES_DLL_H_incl
#define NCURSES_DLL_H_incl 1
@ -76,4 +76,11 @@
# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
#endif
/*
* For reentrant code, we map the various global variables into SCREEN by
* using functions to access them.
*/
#define NCURSES_PUBLIC_VAR(name) _nc_##name
#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
#endif /* NCURSES_DLL_H_incl */

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
* Copyright (c) 1998-2006,2007 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 *
@ -33,7 +33,7 @@
****************************************************************************/
/*
* $Id: tic.h,v 1.55 2006/08/19 14:17:49 tom Exp $
* $Id: tic.h,v 1.62 2007/08/11 16:12:43 tom Exp $
* tic.h - Global variables and structures for the terminfo
* compiler.
*/
@ -163,16 +163,6 @@ struct token
extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token;
/*
* List of keynames with their corresponding code.
*/
struct kn {
const char *name;
int code;
};
extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
/*
* Offsets to string capabilities, with the corresponding functionkey
* codes.
@ -185,11 +175,11 @@ struct tinfo_fkeys {
#if BROKEN_LINKER
#define _nc_tinfo_fkeys _nc_tinfo_fkeysf()
extern NCURSES_EXPORT(struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
extern NCURSES_EXPORT(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
#else
extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[];
#endif
@ -214,14 +204,9 @@ struct alias
const char *source;
};
extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[];
extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[];
extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool);
extern NCURSES_EXPORT(const short *) _nc_get_hash_table (bool);
extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool);
#define NOTFOUND ((struct name_table_entry *) 0)
@ -259,7 +244,7 @@ extern NCURSES_EXPORT(char *) _nc_rootname (char *);
/* comp_hash.c: name lookup */
extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
(const char *, const struct name_table_entry *const *);
(const char *, const short *);
extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry
(const char *, int, const struct name_table_entry *);

View File

@ -1,19 +1,37 @@
#! /bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
@ -56,7 +74,7 @@ dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
-c) instcmd=$cpprog
shift
continue;;
@ -79,7 +97,7 @@ while [ x"$1" != x ]; do
shift
continue;;
-s) stripcmd="$stripprog"
-s) stripcmd=$stripprog
shift
continue;;
@ -106,7 +124,7 @@ done
if [ x"$src" = x ]
then
echo "install: no input file specified"
echo "$0: no input file specified" >&2
exit 1
else
:
@ -116,7 +134,7 @@ if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
@ -128,17 +146,17 @@ else
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
if [ -f "$src" ] || [ -d "$src" ]
then
:
else
echo "install: $src does not exist"
echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
echo "$0: no destination specified" >&2
exit 1
else
:
@ -147,16 +165,16 @@ else
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
if [ -d "$dst" ]
then
dst="$dst"/`basename $src`
dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
@ -165,48 +183,48 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
IFS="${IFS-$defaultIFS}"
oIFS="${IFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
pathcomp=$pathcomp$1
shift
if [ ! -d "${pathcomp}" ] ;
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "${pathcomp}"
$mkdirprog "$pathcomp"
else
:
fi
pathcomp="${pathcomp}/"
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
$doit $instcmd "$dst" &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
dstfile=`basename "$dst"`
else
dstfile=`basename $dst $transformbasename |
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
@ -214,20 +232,24 @@ else
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
dstfile=`basename "$dst"`
else
:
fi
# Make a temp file name in the proper directory.
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
rmtmp=$dstdir/#rm.$$#
# Trap to clean up temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
@ -235,17 +257,38 @@ else
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
# Now remove or move aside any old file at destination location. We try this
# two ways since rm can't unlink itself on some systems and the destination
# file might be busy for other reasons. In this case, the final cleanup
# might fail but the new file should still install successfully.
{
if [ -f "$dstdir/$dstfile" ]
then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
{
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
# The final little trick to "correctly" pass the exit status to the exit trap.
exit 0
{
(exit 0); exit
}

View File

@ -1,6 +1,6 @@
# $Id: Makefile.in,v 1.39 2005/07/16 17:26:45 tom Exp $
# $Id: Makefile.in,v 1.41 2007/03/31 15:54:06 tom Exp $
##############################################################################
# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -52,7 +52,7 @@ depend :
tags :
$(DESTDIR)$(mandir) :
sh $(srcdir)/../mkinstalldirs $@
sh $(srcdir)/../mkdirs.sh $@
EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
@ -77,4 +77,4 @@ clean: mostlyclean
sh $(srcdir)/make_sed.sh @MANPAGE_RENAMES@ >../edit_man.sed
distclean realclean: clean
rm -f Makefile ../edit_man.*
rm -f Makefile ../edit_man.* ../man_alias.*

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,16 +27,16 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: captoinfo.1m,v 1.20 2006/05/13 15:14:01 tom Exp $
.TH captoinfo 1M ""
.\" $Id: captoinfo.1m,v 1.22 2007/06/02 20:40:07 tom Exp $
.TH @CAPTOINFO@ 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
\fB@CAPTOINFO@\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
.SH SYNOPSIS
\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
\fB@CAPTOINFO@\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
.SH DESCRIPTION
\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each
\fB@CAPTOINFO@\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each
one found, an equivalent \fBterminfo\fR description is written to standard
output. Termcap \fBtc\fR capabilities are translated directly to terminfo
\fBuse\fR capabilities.
@ -67,7 +67,7 @@ Compiled terminal description database.
.SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES
.PP
Some obsolete nonstandard capabilities will automatically be translated
into standard (SVr4/XSI Curses) terminfo capabilities by \fBcaptoinfo\fR.
into standard (SVr4/XSI Curses) terminfo capabilities by \fB@CAPTOINFO@\fR.
Whenever one of these automatic translations is done, the program
will issue an notification to stderr, inviting the user to check that
it has not mistakenly translated a completely unknown and random
@ -145,7 +145,7 @@ GG acs magic cookie count
.TE
.PP
If the single-line capabilities occur in an entry, they will automatically
be composed into an \fBacsc\fR string. The double-line capabilities and
be composed into an \fIacsc\fR string. The double-line capabilities and
\fBGG\fR are discarded with a warning message.
.PP
IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible
@ -164,17 +164,17 @@ font2 s2ds
font3 s3ds
.TE
.PP
Additionally, the AIX \fBbox1\fR capability will be automatically translated to
an \fBacsc\fR string.
Additionally, the AIX \fIbox1\fR capability will be automatically translated to
an \fIacsc\fR string.
.PP
Hewlett-Packard's terminfo library supports two nonstandard terminfo
capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
capabilities \fImeml\fR (memory lock) and \fImemu\fR (memory unlock).
These will be discarded with a warning message.
.SH NOTES
This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
This utility is actually a link to \fB@TIC@\fR(1M), running in \fI-I\fR mode.
You can use other \fB@TIC@\fR options such as \fB-f\fR and \fB-x\fR.
.PP
The trace option isn't identical to SVr4's. Under SVr4, instead of following
The trace option is not identical to SVr4's. Under SVr4, instead of following
the \fB-v\fR with a trace level n, you repeat it n times.
.SH SEE ALSO
\fB@INFOCMP@\fR(1M),

View File

@ -26,20 +26,20 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: clear.1,v 1.5 2006/07/01 21:55:09 tom Exp $
.TH clear 1 ""
.\" $Id: clear.1,v 1.6 2006/12/24 18:07:53 tom Exp $
.TH @CLEAR@ 1 ""
.ds n 5
.SH NAME
\fBclear\fR - clear the terminal screen
\fB@CLEAR@\fR - clear the terminal screen
.SH SYNOPSIS
\fBclear\fR
\fB@CLEAR@\fR
.br
.SH DESCRIPTION
\fBclear\fR clears your screen if this is possible. It looks in the
\fB@CLEAR@\fR clears your screen if this is possible. It looks in the
environment for the terminal type and then in the \fBterminfo\fR database to
figure out how to clear the screen.
.PP
\fBclear\fR ignores any command-line parameters that may be present.
\fB@CLEAR@\fR ignores any command-line parameters that may be present.
.SH SEE ALSO
\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
.PP

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_add_wch.3x,v 1.5 2006/12/02 17:02:35 tom Exp $
.\" $Id: curs_add_wch.3x,v 1.6 2006/12/24 15:22:22 tom Exp $
.TH curs_add_wch 3X ""
.SH NAME
\fBadd_wch\fP,
@ -82,7 +82,7 @@ and the rendition specified by \fIwch\fP is ignored.
-
If the character part of \fIwch\fP is
a tab, newline, backspace or other control character,
the window is updated and the cursor moves as if \fBaddch\fR(3X) were called.
the window is updated and the cursor moves as if \fBaddch\fR were called.
.PP
The \fBecho_wchar\fP
function is functionally equivalent to a call to
@ -122,7 +122,7 @@ Those are not currently implemented in \fBncurses\fP.
.PP
\fBcurses\fR(3X),
\fBcurs_addch\fR(3X),
\fBcurs_attr_get\fR(3X),
\fBcurs_attr\fR(3X),
\fBcurs_clear\fR(3X),
\fBcurs_outopts\fR(3X),
\fBcurs_refresh\fR(3X),

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,7 +27,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_addch.3x,v 1.25 2006/12/02 17:02:22 tom Exp $
.\" $Id: curs_addch.3x,v 1.27 2007/06/02 20:40:07 tom Exp $
.TH curs_addch 3X ""
.SH NAME
\fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
@ -87,7 +87,7 @@ their equivalents.
.SS Line Graphics
The following variables may be used to add line drawing characters to the
screen with routines of the \fBaddch\fR family. The default character listed
below is used if the \fBacsc\fR capability doesn't define a terminal-specific
below is used if the \fBacsc\fR capability does not define a terminal-specific
replacement for it.
The names are taken from VT100 nomenclature.
.PP
@ -168,7 +168,7 @@ This is true of other implementations, but is not documented.
\fBcurs_inch\fR(3X),
\fBcurs_outopts\fR(3X),
\fBcurs_refresh\fR(3X),
\fBputc\fR(3S).
\fBputc\fR(3).
.PP
Comparable functions in the wide-character (ncursesw) library are
described in

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,7 +27,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_attr.3x,v 1.30 2006/07/15 18:39:05 tom Exp $
.\" $Id: curs_attr.3x,v 1.31 2007/03/17 20:30:33 tom Exp $
.TH curs_attr 3X ""
.na
.hy 0
@ -253,6 +253,9 @@ This implementation returns an error
if the window pointer is null.
The \fBwcolor_set\fP function returns an error if the color pair parameter
is outside the range 0..COLOR_PAIRS-1.
This implementation also provides
\fBgetattrs\fR
for compatibility with older versions of curses.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_addch\fR(3X),

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_border.3x,v 1.18 2006/02/25 21:49:19 tom Exp $
.\" $Id: curs_border.3x,v 1.19 2007/02/24 16:15:38 tom Exp $
.TH curs_border 3X ""
.na
.hy 0
@ -64,9 +64,9 @@
.br
\fBint wvline(WINDOW *win, chtype ch, int n);\fR
.br
\fBmvhline(int y, int x, chtype ch, int n);\fR
\fBint mvhline(int y, int x, chtype ch, int n);\fR
.br
\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
\fBint mvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
.br
\fBint mvvline(int y, int x, chtype ch, int n);\fR
.br

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_deleteln.3x,v 1.10 2006/02/25 21:49:19 tom Exp $
.\" $Id: curs_deleteln.3x,v 1.11 2007/06/02 20:40:07 tom Exp $
.TH curs_deleteln 3X ""
.SH NAME
\fBdeleteln\fR,
@ -79,7 +79,7 @@ error conditions.
Note that all but \fBwinsdelln\fR may be macros.
.PP
These routines do not require a hardware line delete or insert feature in the
terminal. In fact, they won't use hardware line delete/insert unless
terminal. In fact, they will not use hardware line delete/insert unless
\fBidlok(..., TRUE)\fR has been set on the current window.
.SH SEE ALSO
\fBcurses\fR(3X)

View File

@ -28,7 +28,7 @@
.\"
.\" Author: Thomas E. Dickey 1999-on
.\"
.\" $Id: curs_extend.3x,v 1.15 2006/02/25 21:04:43 tom Exp $
.\" $Id: curs_extend.3x,v 1.17 2006/12/24 18:01:48 tom Exp $
.TH curs_extend 3X ""
.SH NAME
\fBcurses_version\fP,
@ -56,7 +56,7 @@ is able to use user-defined or nonstandard names
which may be compiled into the terminfo
description, i.e., via the terminfo or termcap interfaces.
Normally these names are available for use, since the essential decision
is made by using the \fB-x\fP option of \fItic\fP to compile
is made by using the \fB-x\fP option of \fB@TIC@\fP to compile
extended terminal definitions.
However you can disable this feature
to ensure compatibility with other implementations of curses.
@ -68,11 +68,11 @@ any code depending on them be conditioned using NCURSES_VERSION.
\fBcurs_getch\fR(3X),
\fBcurs_mouse\fR(3X),
\fBcurs_print\fR(3X),
\fBcurs_util\fR(3X),
\fBdefault_colors\fR(3X),
\fBdefine_key\fR(3X),
\fBkeybound\fR(3X),
\fBkeyok\fR(3X),
\fBnofilter\fR(3X),
\fBresizeterm\fR(3X),
\fBwresize\fR(3X).
.SH AUTHOR

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_getcchar.3x,v 1.8 2006/07/15 22:51:07 wcmbrine Exp $
.\" $Id: curs_getcchar.3x,v 1.10 2006/12/24 16:00:02 tom Exp $
.TH curs_getcchar 3X ""
.SH NAME
\fBgetcchar\fP,
@ -132,10 +132,10 @@ Otherwise, it returns \fBERR\fP.
.SH SEE ALSO
.PP
Functions:
\fBcurs_attr\fR(3X),
\fBcurs_color\fR(3X),
\fBcurses\fR(3X),
\fBwcwidth\fR(3X),
\fBcurs_attr_get\fR(3X),
\fBcan_change_color\fR(3X).
\fBwcwidth\fR(3).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_getyx.3x,v 1.13 2006/05/27 20:28:05 tom Exp $
.\" $Id: curs_getyx.3x,v 1.16 2007/05/12 16:34:49 tom Exp $
.TH curs_getyx 3X ""
.SH NAME
\fBgetyx\fR,
@ -69,7 +69,7 @@ The
\fBgetmaxyx\fR
macros are described in the XSI Curses standard, Issue 4.
.PP
This implementation also provides
This implementation also provides functions
\fBgetbegx\fR,
\fBgetbegy\fR,
\fBgetcurx\fR,
@ -79,10 +79,25 @@ This implementation also provides
\fBgetparx\fR and
\fBgetpary\fR
for compatibility with older versions of curses.
X/Open does not define a corresponding \fBgetcuryx\fP function,
though that would be needed to make references to the WINDOW structure opaque.
.PP
Although X/Open Curses does not address this,
many implementations provide members of the WINDOW structure
containing values corresponding to these macros.
For best portability, do not rely on using the data in WINDOW,
since some implementations make WINDOW opaque (do not allow
direct use of its members).
.PP
Besides the problem of opaque structures,
the data stored in like-named members may not have like-values in
different implementations.
For example, the WINDOW._maxx and WINDOW._maxy values in ncurses
have (at least since release 1.8.1) differed by one from some
other implementations.
The difference is hidden by means of the macro \fBgetmaxyx\fP.
.SH SEE ALSO
\fBcurses\fR(3X)
\fBcurses\fR(3X),
\fBcurs_legacy\fR(3X),
\fBcurs_opaque\fR(3X)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_insstr.3x,v 1.17 2006/02/25 21:49:19 tom Exp $
.\" $Id: curs_insstr.3x,v 1.18 2006/12/24 14:59:30 tom Exp $
.TH curs_insstr 3X ""
.SH NAME
\fBinsstr\fR,
@ -90,7 +90,7 @@ This is probably an error, since it makes this group of functions inconsistent.
Also, no implementation of curses documents this inconsistency.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBunctrl\fR(3X),
\fBcurs_util\fR(3X),
\fBcurs_clear\fR(3X),
\fBcurs_inch\fR(3X).
.\"#

View File

@ -0,0 +1,93 @@
.\"***************************************************************************
.\" Copyright (c) 2007 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"), to deal in the Software without restriction, including *
.\" without limitation the rights to use, copy, modify, merge, publish, *
.\" distribute, distribute with modifications, sublicense, and/or sell *
.\" copies of the Software, and to permit persons to whom the Software is *
.\" furnished to do so, subject to the following conditions: *
.\" *
.\" The above copyright notice and this permission notice shall be included *
.\" in all copies or substantial portions of the Software. *
.\" *
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
.\" *
.\" Except as contained in this notice, the name(s) of the above copyright *
.\" holders shall not be used in advertising or otherwise to promote the *
.\" sale, use or other dealings in this Software without prior written *
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_legacy.3x,v 1.1 2007/04/07 23:54:29 tom Exp $
.TH curs_legacy 3X ""
.SH NAME
\fBgetbegx\fR,
\fBgetbegy\fR,
\fBgetcurx\fR,
\fBgetcury\fR,
\fBgetmaxx\fR,
\fBgetmaxy\fR,
\fBgetparx\fR,
\fBgetpary\fR - get \fBcurses\fR cursor and window coordinates
.SH SYNOPSIS
\fB#include <curses.h>\fR
.sp
\fBint getbegx(WINDOW *win);\fR
.br
\fBint getbegy(WINDOW *win);\fR
.br
\fBint getcurx(WINDOW *win);\fR
.br
\fBint getcury(WINDOW *win);\fR
.br
\fBint getmaxx(WINDOW *win);\fR
.br
\fBint getmaxy(WINDOW *win);\fR
.br
\fBint getparx(WINDOW *win);\fR
.br
\fBint getpary(WINDOW *win);\fR
.br
.SH DESCRIPTION
The \fBgetbegy\fR and \fBgetbegx\fR functions return the same
data as \fBgetbegyx\fR.
.PP
The \fBgetcury\fR and \fBgetcurx\fR functions return the same
data as \fBgetyx\fR.
.PP
The \fBgetmaxy\fR and \fBgetmaxx\fR functions return the same
data as \fBgetmaxyx\fR.
.PP
The \fBgetpary\fR and \fBgetparx\fR functions return the same
data as \fBgetparyx\fR.
.SH RETURN VALUE
These functions return an integer,
or ERR if the window parameter is null.
.SH NOTES
All of these interfaces are provided as macros and functions.
The macros are suppressed (and only the functions provided)
when \fBNCURSES_OPAQUE\fR is defined.
The standard forms such as \fBgetyx\fP must be implemented as macros,
and (in this implementation) are defined in terms of the functions
described here,
to avoid reliance on internal details of the WINDOW structure.
.SH PORTABILITY
These functions were supported on Version 7, BSD or System V implementations.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_getyx\fR(3X),
\fBcurs_opaque\fR(3X)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End:

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2005,2006 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 *
@ -27,7 +27,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp $
.\" $Id: curs_mouse.3x,v 1.30 2006/12/30 23:43:34 tom Exp $
.TH curs_mouse 3X ""
.na
.hy 0
@ -158,22 +158,23 @@ if it is and FALSE otherwise.
It is useful for determining what subset of
the screen windows enclose the location of a mouse event.
.PP
The \fBwmouse_trafo\fR function transforms a given pair of coordinates from
stdscr-relative coordinates to screen-relative coordinates or vice versa.
The \fBwmouse_trafo\fR function transforms a given pair of coordinates
from stdscr-relative coordinates
to coordinates relative to the given window or vice versa.
Please remember, that stdscr-relative coordinates are not always identical
to screen-relative coordinates due to the mechanism to reserve lines on top
or bottom of the screen for other purposes (ripoff() call, see also slk_...
functions).
to window-relative coordinates due to the mechanism to reserve lines on top
or bottom of the screen for other purposes
(see the \fBripoffline()\fP and \fBslk_init\fR calls, for example).
If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers
\fBpY, pX\fR must reference the coordinates of a location inside the window
\fBwin\fR.
They are converted to screen-relative coordinates and returned
\fBpY, pX\fR must reference the coordinates of a location
inside the window \fBwin\fR.
They are converted to window-relative coordinates and returned
through the pointers.
If the conversion was successful, the function returns \fBTRUE\fR.
If one of the parameters was NULL or the location is
not inside the window, \fBFALSE\fR is returned.
If \fBto_screen\fR is
\fBFALSE\fR, the pointers \fBpY, pX\fR must reference screen-relative
\fBFALSE\fR, the pointers \fBpY, pX\fR must reference window-relative
coordinates.
They are converted to stdscr-relative coordinates if the
window \fBwin\fR encloses this point.
@ -184,6 +185,10 @@ Please notice, that the referenced coordinates
are only replaced by the converted coordinates if the transformation was
successful.
.PP
The \fBmouse_trafo\fR function performs the same translation
as \fBwmouse_trafo\fR,
using stdscr for \fBwin\fR.
.PP
The \fBmouseinterval\fR function sets the maximum time (in thousands of a
second) that can elapse between press and release events for them to
be recognized as a click.
@ -259,7 +264,7 @@ OS/2 EMX
.RE
If you are using an unsupported configuration,
mouse events will not be visible to
\fBncurses\fR(3X) (and the \fBwmousemask\fR function will always
\fBncurses\fR(3X) (and the \fBmousemask\fR function will always
return \fB0\fR).
.PP
If the terminfo entry contains a \fBXM\fR string,
@ -276,14 +281,17 @@ for use with touch screens (which may be pressure-sensitive) or with
3D-mice/trackballs/power gloves.
.SH BUGS
Mouse events under xterm will not in fact be ignored during cooked mode,
if they have been enabled by \fBwmousemask\fR.
if they have been enabled by \fBmousemask\fR.
Instead, the xterm mouse
report sequence will appear in the string read.
.PP
Mouse events under xterm will not be detected correctly in a window with
its keypad bit off, since they are interpreted as a variety of function key.
Your terminfo description must have \fBkmous\fR set to "\\E[M" (the beginning
of the response from xterm for mouse clicks).
Your terminfo description should have \fBkmous\fR set to "\\E[M"
(the beginning of the response from xterm for mouse clicks).
Other values for \fBkmous\fR are permitted,
but under the same assumption,
i.e., it is the beginning of the response.
.PP
Because there are no standard terminal responses that would serve to identify
terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
@ -291,7 +299,9 @@ if your $TERM environment variable contains "xterm",
or \fBkmous\fR is defined in
the terminal description, then the terminal may send mouse events.
.SH SEE ALSO
\fBcurses\fR(3X).
\fBcurses\fR(3X),
\fBcurs_kernel\fR(3X),
\fBcurs_slk\fR(3X).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -0,0 +1,133 @@
.\"***************************************************************************
.\" Copyright (c) 2007 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"), to deal in the Software without restriction, including *
.\" without limitation the rights to use, copy, modify, merge, publish, *
.\" distribute, distribute with modifications, sublicense, and/or sell *
.\" copies of the Software, and to permit persons to whom the Software is *
.\" furnished to do so, subject to the following conditions: *
.\" *
.\" The above copyright notice and this permission notice shall be included *
.\" in all copies or substantial portions of the Software. *
.\" *
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
.\" *
.\" Except as contained in this notice, the name(s) of the above copyright *
.\" holders shall not be used in advertising or otherwise to promote the *
.\" sale, use or other dealings in this Software without prior written *
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_opaque.3x,v 1.6 2007/09/08 18:49:13 tom Exp $
.TH curs_opaque 3X ""
.na
.hy 0
.SH NAME
\fBis_cleared\fR,
\fBis_idlok\fR,
\fBis_idcok\fR,
\fBis_immedok\fR,
\fBis_keypad\fR,
\fBis_leaveok\fR,
\fBis_nodelay\fR,
\fBis_timeout\fR,
\fBis_scrollok\fR,
\fBis_syncok\fR - \fBcurses\fR window properties
.ad
.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.sp
\fBbool is_cleared(const WINDOW *win);\fR
.br
\fBbool is_idcok(const WINDOW *win);\fR
.br
\fBbool is_idlok(const WINDOW *win);\fR
.br
\fBbool is_immedok(const WINDOW *win);\fR
.br
\fBbool is_keypad(const WINDOW *win);\fR
.br
\fBbool is_leaveok(const WINDOW *win);\fR
.br
\fBbool is_nodelay(const WINDOW *win);\fR
.br
\fBbool is_notimeout(const WINDOW *win);\fR
.br
\fBbool is_scrollok(const WINDOW *win);\fR
.br
\fBbool is_syncok(const WINDOW *win);\fR
.br
\fBWINDOW * wgetparent(const WINDOW *win);\fR
.br
\fBint wgetscrreg(const WINDOW *win, int *top, int *bottom);\fR
.br
.SH DESCRIPTION
This implementation provides functions which return properties
set in the WINDOW structure, allowing it to be ``opaque'' if
the symbol \fBNCURSES_OPAQUE\fR is defined:
.TP 5
\fBis_cleared\fR
returns the value set in \fBclearok\fR
.TP 5
\fBis_idcok\fR
returns the value set in \fBidcok\fR
.TP 5
\fBis_idlok\fR
returns the value set in \fBidlok\fR
.TP 5
\fBis_immedok\fR
returns the value set in \fBimmedok\fR
.TP 5
\fBis_keypad\fR
returns the value set in \fBkeypad\fR
.TP 5
\fBis_leaveok\fR
returns the value set in \fBleaveok\fR
.TP 5
\fBis_nodelay\fR
returns the value set in \fBnodelay\fR
.TP 5
\fBis_notimeout\fR
returns the value set in \fBnotimeout\fR
.TP 5
\fBis_scrollok\fR
returns the value set in \fBscrollok\fR
.TP 5
\fBis_syncok\fR
returns the value set in \fBsyncok\fR
.TP 5
\fBwgetparent\fR
returns the parent WINDOW pointer for subwindows,
or NULL for windows having no parent.
.TP 5
\fBwgetscrreg\fR
returns the top and bottom rows for the scrolling margin as set in \fBwsetscrreg\fP.
.SH RETURN VALUE
These functions all return TRUE or FALSE, except as noted.
.SH NOTES
Both a macro and a function are provided for each name.
.SH PORTABILITY
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 extensions
be conditioned using NCURSES_VERSION.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_inopts\fR(3X),
\fBcurs_outopts\fR(3X),
\fBcurs_window\fR(3X)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End:

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2005,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp $
.\" $Id: curs_outopts.3x,v 1.21 2007/06/02 20:40:07 tom Exp $
.TH curs_outopts 3X ""
.na
.hy 0
@ -91,7 +91,7 @@ This option should be enabled only if the
application needs insert/delete line, for example, for a screen editor.
It is
disabled by default because insert/delete line tends to be visually annoying
when used in applications where it isn't really needed.
when used in applications where it is not really needed.
If insert/delete line
cannot be used, \fBcurses\fR redraws the changed portions of all lines.
.PP

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_printw.3x,v 1.16 2006/02/25 21:49:19 tom Exp $
.\" $Id: curs_printw.3x,v 1.17 2006/12/24 16:05:17 tom Exp $
.TH curs_printw 3X ""
.na
.hy 0
@ -55,12 +55,12 @@
.br
.SH DESCRIPTION
The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
routines are analogous to \fBprintf\fR [see \fBprintf\fR(3S)]. In
routines are analogous to \fBprintf\fR [see \fBprintf\fR(3)]. In
effect, the string that would be output by \fBprintf\fR is output
instead as though \fBwaddstr\fR were used on the given window.
.PP
The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous
to \fBvprintf\fR [see \fBprintf\fR(3S)]
to \fBvprintf\fR [see \fBprintf\fR(3)]
and perform a \fBwprintw\fR using a variable argument list.
The third argument is a \fBva_list\fR, a pointer to a
list of arguments, as defined in \fB<stdarg.h>\fR.
@ -85,7 +85,7 @@ cannot be used in the same file as \fB<stdarg.h>\fR.
This implementation uses \fB<stdarg.h>\fR for both, because that header
is included in \fB<curses.h\fR>.
.SH SEE ALSO
\fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR
\fBcurses\fR(3X), \fBprintf\fR(3), \fBvprintf(3)\fR
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_scanw.3x,v 1.13 2006/02/25 21:42:22 tom Exp $
.\" $Id: curs_scanw.3x,v 1.14 2006/12/24 16:05:49 tom Exp $
.TH curs_scanw 3X ""
.SH NAME
\fBscanw\fR,
@ -50,7 +50,7 @@
\fBint vwscanw(WINDOW *win, char *fmt, va_list varglist);\fR
.SH DESCRIPTION
The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
\fBscanf\fR [see \fBscanf\fR(3S)]. The effect of these routines is as though
\fBscanf\fR [see \fBscanf\fR(3)]. The effect of these routines is as though
\fBwgetstr\fR were called on the window, and the resulting line used as input
for \fBsscanf\fR(3). Fields which do not map to a variable in the \fIfmt\fR
field are lost.
@ -88,7 +88,7 @@ since the OK value (zero) is likely to be misleading.
One possible way to get useful results would be to use a "%n" conversion
at the end of the format string to ensure that something was processed.
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S)
\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_scr_dump.3x,v 1.6 2006/02/25 21:49:19 tom Exp $
.\" $Id: curs_scr_dump.3x,v 1.7 2006/12/24 16:05:49 tom Exp $
.TH curs_scr_dump 3X ""
.na
.hy 0
@ -93,7 +93,7 @@ considered invalid "if the time-stamp of the tty is old" but do not define
"old".
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
\fBcurs_util\fR(3X), \fBsystem\fR(3S)
\fBcurs_util\fR(3X), \fBsystem\fR(3)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_slk.3x,v 1.15 2006/02/25 21:49:19 tom Exp $
.\" $Id: curs_slk.3x,v 1.16 2007/06/02 20:40:07 tom Exp $
.TH curs_slk 3X ""
.na
.hy 0
@ -95,7 +95,7 @@ labels of up to eight characters each. In addition to this, the ncurses
implementation supports a mode where it simulates 12 labels of up to five
characters each. This is most common for todays PC like enduser devices.
Please note that ncurses simulates this mode by taking over up to two lines at
the bottom of the screen, it doesn't try to use any hardware support for this
the bottom of the screen, it does not try to use any hardware support for this
mode.
.PP
The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2003,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_termattrs.3x,v 1.9 2003/12/27 18:37:47 tom Exp $
.\" $Id: curs_termattrs.3x,v 1.10 2007/06/02 20:40:07 tom Exp $
.TH curs_termattrs 3X ""
.SH NAME
\fBbaudrate\fR,
@ -101,7 +101,7 @@ overwritten by each call to \fBnewterm\fR and is not restored by
\fBnewterm\fR if \fBlongname\fR is going to be used with multiple
terminals.
.PP
If a given terminal doesn't support a video attribute that an
If a given terminal does not support a video attribute that an
application program is trying to use, \fBcurses\fR may substitute a
different video attribute for it.
The \fBtermattrs\fR and \fBterm_attrs\fR functions

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_termcap.3x,v 1.20 2006/02/25 21:50:01 tom Exp $
.\" $Id: curs_termcap.3x,v 1.22 2007/06/02 20:40:07 tom Exp $
.TH curs_termcap 3X ""
.ds n 5
.SH NAME
@ -122,7 +122,7 @@ Routines that return pointers return \fBNULL\fR on error.
.SH BUGS
If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string,
be aware that it will be returned in terminfo notation, not the older and
not-quite-compatible termcap notation. This won't cause problems if all
not-quite-compatible termcap notation. This will not cause problems if all
you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
terminfo-style strings as terminfo.
(The \fBtgoto\fR function, if configured to support termcap, will check
@ -158,7 +158,7 @@ e.g., not distinguishing between input and output.
In particular, some applications are reported to declare and/or
modify \fBospeed\fR.
.SH SEE ALSO
\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S).
\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1999-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1999-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_terminfo.3x,v 1.24 2006/11/04 21:50:03 tom Exp $
.\" $Id: curs_terminfo.3x,v 1.28 2007/05/26 20:09:06 tom Exp $
.TH curs_terminfo 3X ""
.ds n 5
.na
@ -64,7 +64,7 @@
.br
\fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR
.br
\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
\fBint restartterm(char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
.br
\fBchar *tparm(char *\fR\fIstr\fR\fB, ...);\fR
.br
@ -99,16 +99,22 @@ recommended.
Initially, \fBsetupterm\fR should be called. Note that
\fBsetupterm\fR is automatically called by \fBinitscr\fR and
\fBnewterm\fR. This defines the set of terminal-dependent variables
[listed in \fBterminfo\fR(\*n)]. The \fBterminfo\fR variables
[listed in \fBterminfo\fR(\*n)].
The \fBterminfo\fR variables
\fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
follows: If \fBuse_env(FALSE)\fR has been called, values for
follows:
.RS
.PP
If \fBuse_env(FALSE)\fR has been called, values for
\fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
.PP
Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
exist, their values are used. If these environment variables do not
exist and the program is running in a window, the current window size
is used. Otherwise, if the environment variables do not exist, the
values for \fBlines\fR and \fBcolumns\fR specified in the
\fBterminfo\fR database are used.
.RE
.PP
The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
order) to get the definitions for these strings, numbers, and flags.
@ -183,7 +189,8 @@ except that it is called after restoring memory to a previous state (for
example, when reloading a game saved as a core image dump). It assumes that
the windows and the input and output options are the same as when memory was
saved, but the terminal type and baud rate may be different. Accordingly,
it saves various tty state bits, does a setupterm, and then restores the bits.
it saves various tty state bits, calls \fBsetupterm\fP,
and then restores the bits.
.PP
The \fBtparm\fR routine instantiates the string \fIstr\fR with
parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR
@ -288,6 +295,9 @@ The function \fBsetterm\fR is not described in the XSI Curses standard and must
be considered non-portable. All other functions are as described in the XSI
curses standard.
.PP
\fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
This is not part of X/Open Curses, but is assumed by some applications.
.PP
In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
returns \fBOK\fR or \fBERR\fR. We have chosen to implement the XSI Curses
semantics.
@ -309,7 +319,7 @@ the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR.
So though it is documented as a terminfo function,
\fBmvcur\fR is really a curses function which is not well specified.
.PP
XSI states that the old location must be given.
XSI states that the old location must be given for \fBmvcur\fP.
This implementation allows the caller to use -1's for the old ordinates.
In that case, the old location is unknown.
.PP
@ -317,7 +327,7 @@ Extended terminal capability names, e.g., as defined by \fBtic\ -x\fP,
are not stored in the arrays described in this section.
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X),
\fBputc\fR(3S), \fBterminfo\fR(\*n)
\fBputc\fR(3), \fBterminfo\fR(\*n)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 2000-2002,2005 Free Software Foundation, Inc. *
.\" Copyright (c) 2000-2005,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp $
.\" $Id: curs_trace.3x,v 1.8 2007/02/24 17:33:49 tom Exp $
.TH curs_trace 3X ""
.na
.hy 0
@ -56,7 +56,7 @@
.br
\fBchar *_nc_tracebits(void);\fR
.br
\fBchar *_tracechar(const unsigned char ch);\fR
\fBchar *_tracechar(int);\fR
.br
\fBchar *_tracechtype(chtype ch);\fR
.br

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: curs_util.3x,v 1.21 2006/08/26 14:17:48 tom Exp $
.\" $Id: curs_util.3x,v 1.25 2007/05/26 21:44:42 tom Exp $
.TH curs_util 3X ""
.na
.hy 0
@ -49,7 +49,7 @@
.sp
\fBchar *unctrl(chtype c);\fR
.br
\fBchar *wunctrl(cchar_t *c);\fR
\fBwchar_t *wunctrl(cchar_t *c);\fR
.br
\fBchar *keyname(int c);\fR
.br
@ -146,6 +146,29 @@ returns an error if the associated \fBfwrite\fP calls return an error.
The XSI Curses standard, Issue 4 describes these functions.
It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
unsuccessful, but does not define any error conditions.
This implementation checks for three cases:
.RS
.TP 5
-
the parameter is a 7-bit US-ASCII code.
This is the case that X/Open Curses documented.
.TP 5
-
the parameter is in the range 128-159, i.e., a C1 control code.
If \fBuse_legacy_coding\fP has been called with a \fB2\fP parameter,
\fBunctrl\fP returns the parameter, i.e., a one-character string with
the parameter as the first character.
Otherwise, it returns ``~@'', ``~A'', etc., analogous to ``^@'', ``^A'', C0 controls.
.IP
X/Open Curses does not document whether \fBunctrl\fP can be called before
initializing curses.
This implementation permits that,
and returns the ``~@'', etc., values in that case.
.TP 5
-
parameter values outside the 0 to 255 range.
\fBunctrl\fP returns a null pointer.
.RE
.PP
The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest
terms. The description here is adapted from the XSI Curses standard (which
@ -157,13 +180,24 @@ showing C1 controls from the upper-128 codes with a `~' prefix rather than `^'.
Other implementations have different conventions.
For example, they may show both sets of control characters with `^',
and strip the parameter to 7 bits.
Or they may ignore C1 controls and treat all of the upper-1280 codes as
Or they may ignore C1 controls and treat all of the upper-128 codes as
printable.
This implementation uses 8 bits but does not modify the string to reflect
locale.
The \fBuse_legacy_coding\fP function allows the caller to
change the output of \fBunctrl\fP.
.PP
Likewise, the \fBmeta\fP function allows the caller to change the
output of \fBkeyname\fP, i.e.,
it determines whether to use the `M-' prefix
for ``meta'' keys (codes in the range 128 to 255).
Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after
curses is initialized.
X/Open Curses does not document the treatment of codes 128 to 159.
When treating them as ``meta'' keys
(or if \fBkeyname\fP is called before initializing curses),
this implementation returns strings ``M-^@'', ``M-^A'', etc.
.PP
The \fBkeyname\fP function may return the names of user-defined
string capabilities which are defined in the terminfo entry via the \fB-x\fP
option of \fBtic\fP.
@ -178,11 +212,12 @@ It was not supported on Version 7, BSD or System V implementations.
It is recommended that any code depending on ncurses extensions
be conditioned using NCURSES_VERSION.
.SH SEE ALSO
\fBuse_legacy_coding\fR(3),
\fBlegacy_coding\fR(3X),
\fBcurses\fR(3X),
\fBcurs_initscr\fR(3X),
\fBcurs_kernel\fR(3X),
\fBcurs_scr_dump\fR(3X).
\fBcurs_scr_dump\fR(3X),
\fBlegacy_coding\fR(3X).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:

View File

@ -28,7 +28,7 @@
.\"
.\" Author: Thomas E. Dickey 1997,1999,2000,2005
.\"
.\" $Id: default_colors.3x,v 1.19 2006/02/25 21:49:19 tom Exp $
.\" $Id: default_colors.3x,v 1.20 2006/12/24 15:02:53 tom Exp $
.TH default_colors 3X ""
.SH NAME
\fBuse_default_colors\fR,
@ -104,9 +104,8 @@ the \fIorig_pair\fP or \fIorig_colors\fP capability.
If the \fIinitialize_pair\fP capability is found, this causes an
error as well.
.SH NOTES
Associated with this extension, the \fBinit_pair\fR(3X) function accepts
negative arguments to specify default foreground or background
colors.
Associated with this extension, the \fBinit_pair\fR function accepts
negative arguments to specify default foreground or background colors.
.PP
The \fIuse_default_colors()\fP function was added to support \fIded\fP.
This is a full-screen application which uses curses to manage only part

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: form_driver.3x,v 1.12 2006/11/04 18:51:00 tom Exp $
.\" $Id: form_driver.3x,v 1.15 2007/06/02 22:56:49 tom Exp $
.TH form_driver 3X ""
.SH NAME
\fBform_driver\fR - command-processing loop of the form system
@ -38,7 +38,7 @@ int form_driver(FORM *form, int c);
.SH DESCRIPTION
Once a form has been posted (displayed), you should funnel input events to it
through \fBform_driver\fR. This routine has two major input cases; either
the input is a form navigation request or it's a printable ASCII character.
the input is a form navigation request or it is a printable ASCII character.
The form driver requests are as follows:
.TP 5
REQ_NEXT_PAGE
@ -221,6 +221,57 @@ Display previous field choice.
If the second argument is a printable ASCII character, the driver places it
in the current position in the current field. If it is one of the forms
requests listed above, that request is executed.
.SS MOUSE HANDLING
.PP
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 form display
area or the decoration window) are handled.
.PP
If you click above the display region of the form:
.RS
.TP
a REQ_PREV_FIELD is generated for a single click,
.TP
a REQ_PREV_PAGE is generated for a double-click and
.TP
a REQ_FIRST_FIELD is generated for a triple-click.
.RE
.PP
If you click below the display region of the form:
.RS
.TP
a REQ_NEXT_FIELD is generated for a single click,
.TP
a REQ_NEXT_PAGE is generated for a double-click and
.TP
a REQ_LAST_FIELD is generated for a triple-click.
.RE
.PP
If you click at an field inside the display area of the form:
.RS
.TP 3
-
the form cursor is positioned to that field.
.TP 3
-
If you double-click a field,
the form cursor is positioned to that field
and \fBE_UNKNOWN_COMMAND\fR is returned.
This return value makes sense,
because a double click usually means that an field-specific action should
be returned.
It is exactly the purpose of this return value to signal that an
application specific command should be executed.
.TP 3
-
If a translation
into a request was done, \fBform_driver\fR returns the result of this request.
.RE
.PP
If you clicked outside the user window or the mouse event couldn't be translated
into a form request an \fBE_REQUEST_DENIED\fR is returned.
.SS APPLICATION-DEFINED COMMANDS
.PP
If the second argument is neither printable ASCII nor one of the above
pre-defined form requests, the driver assumes it is an application-specific

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,7 +27,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: form_field_new.3x,v 1.14 2006/11/04 17:12:00 tom Exp $
.\" $Id: form_field_new.3x,v 1.16 2007/06/02 20:40:07 tom Exp $
.TH form_field_new 3X ""
.SH NAME
\fBform_field_new\fR - create and destroy form fields
@ -93,8 +93,8 @@ These routines emulate the System V forms library. They were not supported on
Version 7 or BSD versions.
.PP
It may be unwise to count on the set of attributes copied by
\fBdup_field\fR(3X) being portable; the System V forms library documents are
not very explicit about what gets copied and what doesn't.
\fBdup_field\fR being portable; the System V forms library documents are
not very explicit about what gets copied and what does not.
.SH AUTHORS
Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
S. Raymond.

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,20 +27,20 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: form_field_opts.3x,v 1.12 2006/11/04 17:12:00 tom Exp $
.\" $Id: form_field_opts.3x,v 1.13 2007/02/24 17:34:27 tom Exp $
.TH form_field_opts 3X ""
.SH NAME
\fBform_field_opts\fR - set and get field options
.SH SYNOPSIS
\fB#include <form.h>\fR
.br
int set_field_opts(FIELD *field, OPTIONS opts);
int set_field_opts(FIELD *field, Field_Options opts);
.br
int field_opts_on(FIELD *field, OPTIONS opts);
int field_opts_on(FIELD *field, Field_Options opts);
.br
int field_opts_off(FIELD *field, OPTIONS opts);
int field_opts_off(FIELD *field, Field_Options opts);
.br
OPTIONS field_opts(const FIELD *field);
Field_Options field_opts(const FIELD *field);
.br
.SH DESCRIPTION
The function \fBset_field_opts\fR sets all the given field's option bits (field

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: form_field_validation.3x,v 1.15 2006/11/04 17:14:19 tom Exp $
.\" $Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp $
.TH form_field_validation 3X ""
.SH NAME
\fBform_field_validation\fR - data type validation for fields
@ -99,7 +99,7 @@ For details of the precision handling see \fBprintf's\fR man-page.
TYPE_REGEXP
Regular expression data. Requires a regular expression \fB(char *)\fR third argument;
the data is valid if the regular expression matches it. Regular expressions
are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice
are in the format of \fBregcomp\fR and \fBregexec\fR. Please notice
that the regular expression must match the whole field. If you have for
example an eight character wide field, a regular expression "^[0-9]*$" always
means that you have to fill all eight positions with digits. If you want to

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,28 +27,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: form_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
.\" $Id: form_hook.3x,v 1.9 2007/02/24 17:34:18 tom Exp $
.TH form_hook 3X ""
.SH NAME
\fBform_hook\fR - set hooks for automatic invocation by applications
.SH SYNOPSIS
\fB#include <form.h>\fR
.br
int set_field_init(FORM *form, void (*func)(FORM *));
int set_field_init(FORM *form, Form_Hook func);
.br
void (*)(FORM *) field_init(const FORM *form);
Form_Hook field_init(const FORM *form);
.br
int set_field_term(FORM *form, void (*func)(FORM *));
int set_field_term(FORM *form, Form_Hook func);
.br
void (*)(FORM *) field_term(const FORM *form);
Form_Hook field_term(const FORM *form);
.br
int set_form_init(FORM *form, void (*func)(FORM *));
int set_form_init(FORM *form, Form_Hook func);
.br
void (*)(FORM *) form_init(const FORM *form);
Form_Hook form_init(const FORM *form);
.br
int set_form_term(FORM *form, void (*func)(FORM *));
int set_form_term(FORM *form, Form_Hook func);
.br
void (*)(FORM *) form_term(const FORM *form);
Form_Hook form_term(const FORM *form);
.br
.SH DESCRIPTION
These functions make it possible to set hook functions to be called at various

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,20 +27,20 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: form_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
.\" $Id: form_opts.3x,v 1.9 2007/02/24 17:34:36 tom Exp $
.TH form_opts 3X ""
.SH NAME
\fBform_opts\fR - set and get form options
.SH SYNOPSIS
\fB#include <form.h>\fR
.br
int set_form_opts(FORM *form, OPTIONS opts);
int set_form_opts(FORM *form, Field_Options opts);
.br
int form_opts_on(FORM *form, OPTIONS opts);
int form_opts_on(FORM *form, Field_Options opts);
.br
int form_opts_off(FORM *form, OPTIONS opts);
int form_opts_off(FORM *form, Field_Options opts);
.br
OPTIONS form_opts(const FORM *form);
Field_Options form_opts(const FORM *form);
.br
.SH DESCRIPTION
The function \fBset_form_opts\fR sets all the given form's option bits (form

View File

@ -27,14 +27,14 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: infocmp.1m,v 1.43 2006/05/13 15:14:01 tom Exp $
.TH infocmp 1M ""
.\" $Id: infocmp.1m,v 1.44 2006/12/24 18:16:31 tom Exp $
.TH @INFOCMP@ 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
\fB@INFOCMP@\fR - compare or print out \fIterminfo\fR descriptions
.SH SYNOPSIS
\fBinfocmp\fR [\fB-\
\fB@INFOCMP@\fR [\fB-\
1\
C\
E\
@ -66,7 +66,7 @@ x\
.br
[\fItermname\fR...]
.SH DESCRIPTION
\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other
\fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean
@ -77,7 +77,7 @@ If no options are specified and zero or one \fItermnames\fR are specified, the
\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified,
the \fB-d\fR option will be assumed.
.SS Comparison Options [-d] [-c] [-n]
\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
\fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
\fItermname\fR with each of the descriptions given by the entries for the other
terminal's \fItermnames\fR. If a capability is defined for only one of the
terminals, the value returned will depend on the type of the capability:
@ -114,7 +114,7 @@ used for the terminal name.
.PP
The source produced by the \fB-C\fR option may be used directly as a
\fBtermcap\fR entry, but not all parameterized strings can be changed to
the \fBtermcap\fR format. \fBinfocmp\fR will attempt to convert most of the
the \fBtermcap\fR format. \fB@INFOCMP@\fR will attempt to convert most of the
parameterized information, and anything not converted will be plainly marked in
the output and commented out. These should be edited by hand.
.PP
@ -162,7 +162,7 @@ analyzing the differences between the first \fItermname\fR and the other
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 each description
is a full description, using \fBinfocmp\fR will show what can be done to change
is a full description, using \fB@INFOCMP@\fR will show what can be done to change
one description to be relative to the other.
.PP
A capability will get printed with an at-sign (@) if it no longer exists in the
@ -176,18 +176,18 @@ The order of the other \fItermname\fR entries is significant. Since the
terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
specifying two \fBuse=\fR entries that contain differing entries for the same
capabilities will produce different results depending on the order that the
entries are given in. \fBinfocmp\fR will flag any such inconsistencies between
entries are given in. \fB@INFOCMP@\fR will flag any such inconsistencies between
the other \fItermname\fR entries as they are found.
.PP
Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
contains that capability will cause the second specification to be ignored.
Using \fBinfocmp\fR to recreate a description can be a useful check to make
Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make
sure that everything was specified correctly in the original source
description.
.PP
Another error that does not cause incorrect compiled files, but will slow down
the compilation time, is specifying extra \fBuse=\fR fields that are
superfluous. \fBinfocmp\fR will flag any other \fItermname use=\fR fields that
superfluous. \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
were not needed.
.SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
The location of the compiled \fBterminfo\fR database is taken from the
@ -208,7 +208,7 @@ the fields will be printed several to a line to a maximum width
of 60 characters.
.TP
\fB-a\fR
tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding
them. Capabilities are commented by prefixing them with a period.
.TP 5
\fB-E\fR
@ -367,9 +367,9 @@ Normally when translating from terminfo to termcap,
untranslatable capabilities are commented-out.
.TP 5
\fB-U\fR
tells \fBinfocmp\fP to not post-process the data after parsing the source file.
tells \fB@INFOCMP@\fP to not post-process the data after parsing the source file.
This feature helps when comparing the actual contents of two source files,
since it excludes the inferences that \fBinfocmp\fP makes to fill in missing
since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing
data.
.TP 5
\fB-V\fR
@ -413,7 +413,7 @@ The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
Actual BSD curses versions will have a more restricted set. To see only the
4.4BSD set, use \fB-r\fR \fB-RBSD\fR.
.SH BUGS
The \fB-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
The \fB-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
.SH SEE ALSO
\fB@CAPTOINFO@\fR(1M),
\fB@INFOTOCAP@\fR(1M),

View File

@ -27,16 +27,16 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: infotocap.1m,v 1.6 2006/05/13 15:35:45 tom Exp $
.TH infotocap 1M ""
.\" $Id: infotocap.1m,v 1.8 2006/12/24 20:13:56 tom Exp $
.TH @INFOTOCAP@ 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
\fB@INFOTOCAP@\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
.SH SYNOPSIS
\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
\fB@INFOTOCAP@\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
.SH DESCRIPTION
\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each
\fB@INFOTOCAP@\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each
one found, an equivalent \fBtermcap\fR description is written to standard
output. Terminfo \fBuse\fR capabilities are translated directly to termcap
\fBtc\fR capabilities.
@ -59,12 +59,12 @@ change the output to \fIwidth\fR characters.
\*d
Compiled terminal description database.
.SH NOTES
This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
This utility is actually a link to \fI@TIC@\fR, running in \fI-C\fR mode.
You can use other \fI@TIC@\fR options such as \fB-f\fR and \fB-x\fR.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBtic\fR(1M),
\fBinfocmp\fR(1M),
\fB@TIC@\fR(1M),
\fB@INFOCMP@\fR(1M),
\fBterminfo\fR(\*n)
.PP
This describes \fBncurses\fR

View File

@ -28,7 +28,7 @@
.\"
.\" Author: Thomas E. Dickey
.\"
.\" $Id: legacy_coding.3x,v 1.2 2006/02/25 21:50:01 tom Exp $
.\" $Id: legacy_coding.3x,v 1.3 2006/12/24 15:12:55 tom Exp $
.TH legacy_coding 3X ""
.SH NAME
\fBuse_legacy_coding\fR \- use terminal's default colors
@ -50,7 +50,7 @@ The \fIlevel\fP parameter controls the result:
.TP 5
0
the library functions normally,
rendering nonprinting characters as described in \fBunctrl\fP(3X).
rendering nonprinting characters as described in \fBunctrl\fP.
.TP
1
the library ignores \fBisprintf\fP for codes in the range 160-255.

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: man_db.renames,v 0.36 2006/05/13 23:47:25 tom Exp $
# $Id: man_db.renames,v 0.39 2007/04/07 23:06:31 tom Exp $
# Manual-page renamings for the man_db program
#
# Files:
@ -67,8 +67,10 @@ curs_insstr.3x insstr.3ncurses
curs_instr.3x instr.3ncurses
curs_inwstr.3x inwstr.3ncurses
curs_kernel.3x kernel.3ncurses
curs_legacy.3x legacy.3ncurses
curs_mouse.3x mouse.3ncurses
curs_move.3x move.3ncurses
curs_opaque.3x opaque.3ncurses
curs_outopts.3x outopts.3ncurses
curs_overlay.3x overlay.3ncurses
curs_pad.3x pad.3ncurses
@ -159,12 +161,15 @@ tset.1 tset.1
vprintf.3s vprintf.3
wresize.3x wresize.3ncurses
#
# Other cross-references:
addch.3x addch.3ncurses
can_change_color.3x can_change_color.3ncurses
curs_attr_get.3x attr_get.3ncurses
dup_field.3x dup_field.3ncurses
init_pair.3x init_pair.3ncurses
#
# Other:
tack.1m tack.1
#
getty.1 getty.8
scanf.3 scanf.3
ttys.5 ttys.4
termio.7 termios.3
system.3 system.3
regcomp.3x regcomp.3
regexec.3x regexec.3
#
# vile:cfgmode

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: menu_driver.3x,v 1.12 2006/11/04 17:13:50 tom Exp $
.\" $Id: menu_driver.3x,v 1.14 2007/06/02 22:50:09 tom Exp $
.TH menu_driver 3X ""
.SH NAME
\fBmenu_driver\fR - command-processing loop of the menu system
@ -38,7 +38,7 @@ int menu_driver(MENU *menu, int c);
.SH DESCRIPTION
Once a menu has been posted (displayed), you should funnel input events to it
through \fBmenu_driver\fR. This routine has three major input cases; either
the input is a menu navigation request, it's a printable ASCII character or it
the input is a menu navigation request, it is a printable ASCII character or it
is the KEY_MOUSE special key associated with an mouse event.
The menu driver requests are as follows:
.TP 5
@ -100,25 +100,56 @@ the new pattern. If there is no such match, \fBmenu_driver\fR returns
.PP
If the second argument is one of the above pre-defined requests, the
corresponding action is performed.
.SS MOUSE HANDLING
.PP
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 decoration window) are handled. If you click above the
display region of the menu, a REQ_SCR_ULINE is generated, if you
doubleclick a REQ_SCR_UPAGE is generated and if you tripleclick a
REQ_FIRST_ITEM is generated. If you click below the display region of
the menu, a REQ_SCR_DLINE is generated, if you doubleclick a REQ_SCR_DPAGE
is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you
click at an item inside the display area of the menu, the menu cursor
is positioned to that item. If you double-click at an item a REQ_TOGGLE_ITEM
is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes
sense, because a double click usually means that an item-specific action should
be returned. It's exactly the purpose of this return value to signal that an
application specific command should be executed. If a translation
area or the decoration window) are handled.
.PP
If you click above the display region of the menu:
.RS
.TP
a REQ_SCR_ULINE is generated for a single click,
.TP
a REQ_SCR_UPAGE is generated for a double-click and
.TP
a REQ_FIRST_ITEM is generated for a triple-click.
.RE
.PP
If you click below the display region of the menu:
.RS
.TP
a REQ_SCR_DLINE is generated for a single click,
.TP
a REQ_SCR_DPAGE is generated for a double-click and
.TP
a REQ_LAST_ITEM is generated for a triple-click.
.RE
.PP
If you click at an item inside the display area of the menu:
.RS
.TP 3
-
the menu cursor is positioned to that item.
.TP 3
-
If you double-click an item a REQ_TOGGLE_ITEM
is generated and \fBE_UNKNOWN_COMMAND\fR is returned.
This return 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 signal that an
application specific command should be executed.
.TP 3
-
If a translation
into a request was done, \fBmenu_driver\fR returns the result of this request.
.RE
.PP
If you clicked outside the user window or the mouse event couldn't be translated
into a menu request an \fBE_REQUEST_DENIED\fR is returned.
.SS APPLICATION-DEFINED COMMANDS
.PP
If the second argument is neither printable ASCII nor one of the above
pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,28 +27,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: menu_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
.\" $Id: menu_hook.3x,v 1.9 2007/02/24 17:34:08 tom Exp $
.TH menu_hook 3X ""
.SH NAME
\fBmenu_hook\fR - set hooks for automatic invocation by applications
.SH SYNOPSIS
\fB#include <menu.h>\fR
.br
int set_item_init(MENU *menu, void (*func)(MENU *));
int set_item_init(MENU *menu, Menu_Hook func);
.br
void (*)(MENU *) item_init(const MENU *menu);
Menu_Hook item_init(const MENU *menu);
.br
int set_item_term(MENU *menu, void (*func)(MENU *));
int set_item_term(MENU *menu, Menu_Hook func);
.br
void (*)(MENU *) item_term(const MENU *menu);
Menu_Hook item_term(const MENU *menu);
.br
int set_menu_init(MENU *menu, void (*func)(MENU *));
int set_menu_init(MENU *menu, Menu_Hook func);
.br
void (*)(MENU *) menu_init(const MENU *menu);
Menu_Hook menu_init(const MENU *menu);
.br
int set_menu_term(MENU *menu, void (*func)(MENU *));
int set_menu_term(MENU *menu, Menu_Hook func);
.br
void (*)(MENU *) menu_term(const MENU *menu);
Menu_Hook menu_term(const MENU *menu);
.br
.SH DESCRIPTION
These functions make it possible to set hook functions to be called at various

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,20 +27,20 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: menu_opts.3x,v 1.9 2006/11/04 17:12:00 tom Exp $
.\" $Id: menu_opts.3x,v 1.10 2007/02/24 17:33:59 tom Exp $
.TH menu_opts 3X ""
.SH NAME
\fBmenu_opts\fR - set and get menu options
.SH SYNOPSIS
\fB#include <menu.h>\fR
.br
int set_menu_opts(MENU *menu, OPTIONS opts);
int set_menu_opts(MENU *menu, Menu_Options opts);
.br
int menu_opts_on(MENU *menu, OPTIONS opts);
int menu_opts_on(MENU *menu, Menu_Options opts);
.br
int menu_opts_off(MENU *menu, OPTIONS opts);
int menu_opts_off(MENU *menu, Menu_Options opts);
.br
OPTIONS menu_opts(const MENU *menu);
Menu_Options menu_opts(const MENU *menu);
.br
.SH DESCRIPTION
The function \fBset_menu_opts\fR sets all the given menu's option bits (menu

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,20 +27,20 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: mitem_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
.\" $Id: mitem_opts.3x,v 1.9 2007/02/24 17:33:32 tom Exp $
.TH mitem_opts 3X ""
.SH NAME
\fBmitem_opts\fR - set and get menu item options
.SH SYNOPSIS
\fB#include <menu.h>\fR
.br
int set_item_opts(ITEM *item, OPTIONS opts);
int set_item_opts(ITEM *item, Item_Options opts);
.br
int item_opts_on(ITEM *item, OPTIONS opts);
int item_opts_on(ITEM *item, Item_Options opts);
.br
int item_opts_off(ITEM *item, OPTIONS opts);
int item_opts_off(ITEM *item, Item_Options opts);
.br
OPTIONS item_opts(const ITEM *item);
Item_Options item_opts(const ITEM *item);
.br
.SH DESCRIPTION
The function \fBset_item_opts\fR sets all the given item's option bits (menu

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -27,7 +27,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: ncurses.3x,v 1.81 2006/12/02 19:23:11 tom Exp $
.\" $Id: ncurses.3x,v 1.89 2007/09/01 18:57:29 tom Exp $
.hy 0
.TH ncurses 3X ""
.ds n 5
@ -39,19 +39,27 @@
.br
.SH DESCRIPTION
The \fBncurses\fR library routines give the user a terminal-independent method
of updating character screens with reasonable optimization. This
implementation is ``new curses'' (ncurses) and is the approved replacement for
of updating character screens with reasonable optimization.
This implementation is ``new curses'' (ncurses) and
is the approved replacement for
4.4BSD classic curses, which has been discontinued.
This describes \fBncurses\fR
version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
.PP
The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
library is freely redistributable in source form. Differences from the SVr4
The \fBncurses\fR library emulates the \fBcurses\fR(3X) library of
System V Release 4 UNIX,
and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
XSI stands for X/Open System Interfaces Extension.
The \fBncurses\fR library is freely redistributable in source form.
Differences from the SVr4
curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
of individual man pages.
.PP
The \fBncurses\fR library also provides many useful extensions,
i.e., features which cannot be implemented by a simple add-on library
but which require access to the internals of the library.
.PP
A program using these routines must be linked with the \fB-lncurses\fR option,
or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
(Your system integrator may also have installed these libraries under
@ -68,8 +76,9 @@ and access to low-level terminal-manipulation routines.
.PP
To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR
must be called before any of the other routines that deal with windows
and screens are used. The routine \fBendwin\fR must be called before
exiting. To get character-at-a-time input without echoing (most
and screens are used.
The routine \fBendwin\fR must be called before exiting.
To get character-at-a-time input without echoing (most
interactive, screen oriented programs want this), the following
sequence should be used:
.sp
@ -82,60 +91,72 @@ Most programs would additionally use the sequence:
\fBkeypad(stdscr, TRUE);\fR
.sp
Before a \fBcurses\fR program is run, the tab stops of the terminal
should be set and its initialization strings, if defined, must be
output. This can be done by executing the \fBtput init\fR command
should be set and its initialization strings, if defined, must be output.
This can be done by executing the \fBtput init\fR command
after the shell environment variable \fBTERM\fR has been exported.
\fBtset(1)\fR is usually responsible for doing this.
[See \fBterminfo\fR(\*n) for further details.]
.PP
The \fBncurses\fR library permits manipulation of data structures,
called \fIwindows\fR, which can be thought of as two-dimensional
arrays of characters representing all or part of a CRT screen. A
default window called \fBstdscr\fR, which is the size of the terminal
screen, is supplied. Others may be created with \fBnewwin\fR.
arrays of characters representing all or part of a CRT screen.
A default window called \fBstdscr\fR, which is the size of the terminal
screen, is supplied.
Others may be created with \fBnewwin\fR.
.PP
Note that \fBcurses\fR does not handle overlapping windows, that's done by
the \fBpanel\fR(3X) library. This means that you can either use
the \fBpanel\fR(3X) library.
This means that you can either use
\fBstdscr\fR or divide the screen into tiled windows and not using
\fBstdscr\fR at all. Mixing the two will result in unpredictable, and
undesired, effects.
\fBstdscr\fR at all.
Mixing the two will result in unpredictable, and undesired, effects.
.PP
Windows are referred to by variables declared as \fBWINDOW *\fR.
These data structures are manipulated with routines described here and
elsewhere in the \fBncurses\fR manual pages. Among those, the most basic
routines are \fBmove\fR and \fBaddch\fR. More general versions of
elsewhere in the \fBncurses\fR manual pages.
Among those, the most basic
routines are \fBmove\fR and \fBaddch\fR.
More general versions of
these routines are included with names beginning with \fBw\fR,
allowing the user to specify a window. The routines not beginning
allowing the user to specify a window.
The routines not beginning
with \fBw\fR affect \fBstdscr\fR.
.PP
After using routines to manipulate a window, \fBrefresh\fR is called,
telling \fBcurses\fR to make the user's CRT screen look like
\fBstdscr\fR. The characters in a window are actually of type
\fBstdscr\fR.
The characters in a window are actually of type
\fBchtype\fR, (character and attribute data) so that other information
about the character may also be stored with each character.
.PP
Special windows called \fIpads\fR may also be manipulated. These are windows
Special windows called \fIpads\fR may also be manipulated.
These are windows
which are not constrained to the size of the screen and whose contents need not
be completely displayed. See \fBcurs_pad\fR(3X) for more information.
be completely displayed.
See \fBcurs_pad\fR(3X) for more information.
.PP
In addition to drawing characters on the screen, video attributes and colors
may be supported, causing the characters 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.
display enhancements.
Line drawing characters may be specified to be output.
On input, \fBcurses\fR is also able to translate arrow and function keys that
transmit escape sequences into single values. The video attributes, line
transmit escape sequences into single values.
The video attributes, line
drawing characters, and input values use names, defined in \fB<curses.h>\fR,
such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
.PP
If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
program is executing in a window environment, line and column information in
the environment will override information read by \fIterminfo\fR. This would
effect a program running in an AT&T 630 layer, for example, where the size of a
the environment will override information read by \fIterminfo\fR.
This would affect a program running in an AT&T 630 layer,
for example, where the size of a
screen is changeable (see \fBENVIRONMENT\fR).
.PP
If the environment variable \fBTERMINFO\fR is defined, any program using
\fBcurses\fR checks for a local terminal definition before checking in the
standard place. For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
standard place.
For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
compiled terminal definition is found in
.sp
\fB\*d/a/att4424\fR.
@ -155,43 +176,100 @@ permission in \fB\*d\fR is not available.
.PP
The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
screen. The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
screen.
The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
\fB0\fR, respectively.
.PP
The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
which is used for certain low-level operations like clearing and redrawing a
screen containing garbage. The \fBcurscr\fR can be used in only a few
routines.
.
screen containing garbage.
The \fBcurscr\fR can be used in only a few routines.
.\"
.SS Routine and Argument Names
Many \fBcurses\fR routines have two or more versions. The routines prefixed
with \fBw\fR require a window argument. The routines prefixed with \fBp\fR
require a pad argument. Those without a prefix generally use \fBstdscr\fR.
Many \fBcurses\fR routines have two or more versions.
The routines prefixed with \fBw\fR require a window argument.
The routines prefixed with \fBp\fR require a pad argument.
Those without a prefix generally use \fBstdscr\fR.
.PP
The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
coordinate to move to before performing the appropriate action. The
\fBmv\fR routines imply a call to \fBmove\fR before the call to the
other routine. The coordinate \fIy\fR always refers to the row (of
the window), and \fIx\fR always refers to the column. The upper
left-hand corner is always (0,0), not (1,1).
coordinate to move to before performing the appropriate action.
The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
other routine.
The coordinate \fIy\fR always refers to the row (of
the window), and \fIx\fR always refers to the column.
The upper left-hand corner is always (0,0), not (1,1).
.PP
The routines prefixed with \fBmvw\fR take both a window argument and
\fIx\fR and \fIy\fR coordinates. The window argument is always
specified before the coordinates.
\fIx\fR and \fIy\fR coordinates.
The window argument is always specified before the coordinates.
.PP
In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
\fBWINDOW\fR.
.PP
Option setting routines require a Boolean flag \fIbf\fR with the value
\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR. The
variables \fIch\fR and \fIattrs\fR below are always of type
\fBchtype\fR. The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
\fBchtype\fR are defined in \fB<curses.h>\fR. The type \fBTERMINAL\fR
is defined in \fB<term.h>\fR. All other arguments are integers.
\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
Most of the data types used in the library routines,
such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
are defined in \fB<curses.h>\fR.
Types used for the terminfo routines such as
\fBTERMINAL\fR are defined in \fB<term.h>\fR.
.PP
This manual page describes functions which may appear in any configuration
of the library.
There are two common configurations of the library:
.RS
.TP 5
ncurses
the "normal" library, which handles 8-bit characters.
The normal (8-bit) library stores characters combined with attributes
in \fBchtype\fP data.
.IP
Attributes alone (no corresponding character) may be stored in \fBchtype\fP
or the equivalent \fBattr_t\fP data.
In either case, the data is stored in something like an integer.
.IP
Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
.TP 5
ncursesw
the so-called "wide" library, which handles multibyte characters
(See the section on \fBALTERNATE CONFIGURATIONS\fP).
The "wide" library includes all of the calls from the "normal" library.
It adds about one third more calls using data types which store
multibyte characters:
.RS
.TP 5
.B cchar_t
corresponds to \fBchtype\fP.
However it is a structure, because more data is stored than can fit into
an integer.
The characters 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 separate fields of the structure.
.IP
Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
.TP 5
.B wchar_t
stores a "wide" character.
Like \fBchtype\fP, this may be an integer.
.TP 5
.B wint_t
stores a \fBwchar_t\fP or \fBWEOF\fP - not the same, though both may have
the same size.
.RE
.IP
The "wide" library provides new functions which are analogous to
functions in the "normal" library.
There is a naming convention which relates many of the normal/wide variants:
a "_w" is inserted into the name.
For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
.RE
.PP
.\"
.SS Routine Name Index
The following table lists each \fBcurses\fR routine and the name of
the manual page on which it is described. Routines flagged with `*'
the manual page on which it is described.
Routines flagged with `*'
are ncurses-specific, not described by XPG4 or present in SVr4.
.PP
.TS
@ -275,15 +353,24 @@ flash/\fBcurs_beep\fR(3X)
flushinp/\fBcurs_util\fR(3X)
get_wch/\fBcurs_get_wch\fR(3X)
get_wstr/\fBcurs_get_wstr\fR(3X)
getattrs/\fBcurs_attr\fR(3X)
getbegx/\fBcurs_legacy\fR(3X)*
getbegy/\fBcurs_legacy\fR(3X)*
getbegyx/\fBcurs_getyx\fR(3X)
getbkgd/\fBcurs_bkgd\fR(3X)
getbkgrnd/\fBcurs_bkgrnd\fR(3X)
getcchar/\fBcurs_getcchar\fR(3X)
getch/\fBcurs_getch\fR(3X)
getcurx/\fBcurs_legacy\fR(3X)*
getcury/\fBcurs_legacy\fR(3X)*
getmaxx/\fBcurs_legacy\fR(3X)*
getmaxy/\fBcurs_legacy\fR(3X)*
getmaxyx/\fBcurs_getyx\fR(3X)
getmouse/\fBcurs_mouse\fR(3X)*
getn_wstr/\fBcurs_get_wstr\fR(3X)
getnstr/\fBcurs_getstr\fR(3X)
getparx/\fBcurs_legacy\fR(3X)*
getpary/\fBcurs_legacy\fR(3X)*
getparyx/\fBcurs_getyx\fR(3X)
getstr/\fBcurs_getstr\fR(3X)
getsyx/\fBcurs_kernel\fR(3X)
@ -321,7 +408,18 @@ insstr/\fBcurs_insstr\fR(3X)
instr/\fBcurs_instr\fR(3X)
intrflush/\fBcurs_inopts\fR(3X)
inwstr/\fBcurs_inwstr\fR(3X)
is_cleared/\fBcurs_opaque\fR(3X)*
is_idcok/\fBcurs_opaque\fR(3X)*
is_idlok/\fBcurs_opaque\fR(3X)*
is_immedok/\fBcurs_opaque\fR(3X)*
is_keypad/\fBcurs_opaque\fR(3X)*
is_leaveok/\fBcurs_opaque\fR(3X)*
is_linetouched/\fBcurs_touch\fR(3X)
is_nodelay/\fBcurs_opaque\fR(3X)*
is_notimeout/\fBcurs_opaque\fR(3X)*
is_scrollok/\fBcurs_opaque\fR(3X)*
is_syncok/\fBcurs_opaque\fR(3X)*
is_term_resized/\fBresizeterm\fR(3X)*
is_wintouched/\fBcurs_touch\fR(3X)
isendwin/\fBcurs_initscr\fR(3X)
key_defined/\fBkey_defined\fR(3X)*
@ -431,6 +529,7 @@ nl/\fBcurs_outopts\fR(3X)
nocbreak/\fBcurs_inopts\fR(3X)
nodelay/\fBcurs_inopts\fR(3X)
noecho/\fBcurs_inopts\fR(3X)
nofilter/\fBcurs_util\fR(3X)*
nonl/\fBcurs_outopts\fR(3X)
noqiflush/\fBcurs_inopts\fR(3X)
noraw/\fBcurs_inopts\fR(3X)
@ -519,6 +618,7 @@ untouchwin/\fBcurs_touch\fR(3X)
use_default_colors/\fBdefault_colors\fR(3X)*
use_env/\fBcurs_util\fR(3X)
use_extended_names/\fBcurs_extend\fR(3X)*
use_legacy_coding/\fBlegacy_coding\fR(3X)*
vid_attr/\fBcurs_terminfo\fR(3X)
vid_puts/\fBcurs_terminfo\fR(3X)
vidattr/\fBcurs_terminfo\fR(3X)
@ -617,16 +717,16 @@ integer value other than \fBERR\fR upon successful completion, unless
otherwise noted in the routine descriptions.
.PP
All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR. The return
values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
\fBgetmaxyx\fR are undefined (i.e., these should not be used as the
right-hand side of assignment statements).
.PP
Routines that return pointers return \fBNULL\fR on error.
.SH ENVIRONMENT
The following environment symbols are useful for customizing the
runtime behavior of the \fBncurses\fR library. The most important
ones have been already discussed in detail.
runtime behavior of the \fBncurses\fR library.
The most important ones have been already discussed in detail.
.TP 5
BAUDRATE
The debugging library checks this environment symbol when the application
@ -722,7 +822,7 @@ If it is not specified, \fBncurses\fR uses 132.
NCURSES_ASSUMED_COLORS
Override the compiled-in assumption that the
terminal's default colors are white-on-black
(see \fBassume_default_colors\fR(3X)).
(see \fBdefault_colors\fR(3X)).
You may set the foreground and background color values with this environment
variable by proving a 2-element list: foreground,background.
For example, to tell ncurses to not assume anything
@ -739,7 +839,7 @@ You can also adjust your \fBstty\fP settings to avoid the problem.
.TP 5
NCURSES_NO_MAGIC_COOKIES
Some terminals use a magic-cookie feature which requires special handling
to make highlighting and other video attributes display properly.
to make highlighting and other video attributes display properly.
You can suppress the highlighting entirely for these terminals by
setting this environment variable.
.TP 5
@ -761,18 +861,21 @@ is for your program to do this by pausing after
operations that the terminal does slowly, such as clearing the display.
.IP
As a result, many terminal descriptions (including the vt100)
have delay times embedded. You may wish to use these descriptions,
have delay times embedded.
You may wish to use these descriptions,
but not want to pay the performance penalty.
.IP
Set the NCURSES_NO_PADDING symbol to disable all but mandatory
padding. Mandatory padding is used as a part of special control
padding.
Mandatory padding is used as a part of special control
sequences such as \fIflash\fR.
.TP 5
NCURSES_NO_SETBUF
Normally \fBncurses\fR enables buffered output during terminal initialization.
This is done (as in SVr4 curses) for performance reasons.
For testing purposes, both of \fBncurses\fR and certain applications,
this feature is made optional. Setting the NCURSES_NO_SETBUF variable
this feature is made optional.
Setting the NCURSES_NO_SETBUF variable
disables output buffering, leaving the output in the original (usually
line buffered) mode.
.TP 5
@ -944,12 +1047,14 @@ descriptions.
.SH EXTENSIONS
The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
that falls back to the old-style /etc/termcap file if the terminal setup code
cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature
cannot find a terminfo entry corresponding to \fBTERM\fR.
Use of this feature
is not recommended, as it essentially includes an entire termcap compiler in
the \fBncurses\fR startup code, at significant cost in core and startup cycles.
.PP
The \fBncurses\fR library includes facilities for capturing mouse events on
certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
certain terminals (including xterm).
See the \fBcurs_mouse\fR(3X)
manual page for details.
.PP
The \fBncurses\fR library includes facilities for responding to window
@ -974,38 +1079,48 @@ control over color contrasts.
See the \fBdefault_colors\fR(3X) manual page for details.
.PP
The \fBncurses\fR library includes a function for directing application output
to a printer attached to the terminal device. See the \fBcurs_print\fR(3X)
manual page for details.
to a printer attached to the terminal device.
See the \fBcurs_print\fR(3X) manual page for details.
.SH PORTABILITY
The \fBncurses\fR library is intended to be BASE-level conformant with the XSI
Curses standard. The EXTENDED XSI Curses functionality
The \fBncurses\fR library is intended to be BASE-level conformant with XSI
Curses.
The EXTENDED XSI Curses functionality
(including color support) is supported.
.PP
A small number of local differences (that is, individual differences between
the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
sections of the library man pages.
.PP
The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4. See
the \fBcurs_getch\fR(3X) manual page for details.
This implementation also contains several extensions:
.RS 5
.PP
The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4. See
the \fBcurs_slk\fR(3X) manual page for details.
The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
See the \fBcurs_getch\fR(3X) manual page for details.
.PP
The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
See the \fBcurs_slk\fR(3X) manual page for details.
.PP
The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
part of XPG4, nor are they present in SVr4. See the \fBcurs_mouse\fR(3X)
manual page for details.
part of XPG4, nor are they present in SVr4.
See the \fBcurs_mouse\fR(3X) manual page for details.
.PP
The routine \fBmcprint\fR was not present in any previous curses
implementation. See the \fBcurs_print\fR(3X) manual page for details.
The routine \fBmcprint\fR was not present in any previous curses implementation.
See the \fBcurs_print\fR(3X) manual page for details.
.PP
The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4. See
the \fBwresize\fR(3X) manual page for details.
The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
See the \fBwresize\fR(3X) manual page for details.
.PP
The WINDOW structure's internal details can be hidden from application
programs.
See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
.RE
.PP
In historic curses versions, delays embedded in the capabilities \fBcr\fR,
\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
bits in the UNIX tty driver. In this implementation, all padding is done by
NUL sends. This method is slightly more expensive, but narrows the interface
bits in the UNIX tty driver.
In this implementation, all padding is done by sending NUL bytes.
This method is slightly more expensive, but narrows the interface
to the UNIX kernel significantly and increases the package's portability
correspondingly.
.SH NOTES
@ -1013,8 +1128,8 @@ The header file \fB<curses.h>\fR automatically includes the header files
\fB<stdio.h>\fR and \fB<unctrl.h>\fR.
.PP
If standard output from a \fBncurses\fR program is re-directed to something
which is not a tty, screen updates will be directed to standard error. This
was an undocumented feature of AT&T System V Release 3 curses.
which is not a tty, screen updates will be directed to standard error.
This was an undocumented feature of AT&T System V Release 3 curses.
.SH AUTHORS
Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
Based on pcurses by Pavel Curtis.

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: panel.3x,v 1.12 2006/05/13 15:35:45 tom Exp $
.\" $Id: panel.3x,v 1.14 2007/05/12 20:45:20 tom Exp $
.TH panel 3X ""
.ds n 5
.ds d @TERMINFO@
@ -84,13 +84,13 @@ Panel routines are a functional layer added to \fBcurses\fR(3X), make only
high-level curses calls, and work anywhere terminfo curses does.
.SH FUNCTIONS
.TP
\fBnew_panel(win)\fR
.B new_panel(win)
allocates a \fBPANEL\fR structure, associates it with
\fBwin\fR, places the panel on the top of the stack (causes it
to be displayed above any other panel) and returns a
pointer to the new panel.
.TP
\fBvoid update_panels()\fR
.B update_panels()
refreshes the virtual screen to reflect the relations between the
panels in the stack, but does not call doupdate() to refresh the
physical screen. Use this function and not wrefresh or wnoutrefresh.
@ -98,52 +98,57 @@ update_panels() may be called more than once before a call to
doupdate(), but doupdate() is the function responsible for updating
the physical screen.
.TP
\fBdel_panel(pan)\fR
.B del_panel(pan)
removes the given panel from the stack and deallocates the
\fBPANEL\fR structure (but not its associated window).
.TP
\fBhide_panel(pan)\fR
.B hide_panel(pan)
removes the given panel from the panel stack and thus hides it from
view. The \fBPANEL\fR structure is not lost, merely removed from the stack.
.TP
\fBshow_panel(pan)\fR
.B panel_hidden(pan)
returns TRUE if the panel is in the panel stack,
FALSE if it is not.
If the panel is a null pointer, return ERR.
.TP
.B show_panel(pan)
makes a hidden panel visible by placing it on top of the panels in the
panel stack. See COMPATIBILITY below.
.TP
\fBtop_panel(pan)\fR
.B top_panel(pan)
puts the given visible panel on top of all panels in the stack. See
COMPATIBILITY below.
.TP
\fBbottom_panel(pan)\fR
.B bottom_panel(pan)
puts panel at the bottom of all panels.
.TP
\fBmove_panel(pan,starty,startx)\fR
.B move_panel(pan,starty,startx)
moves the given panel window so that its upper-left corner is at
\fBstarty\fR, \fBstartx\fR. It does not change the position of the
panel in the stack. Be sure to use this function, not \fBmvwin()\fR,
to move a panel window.
.TP
\fBreplace_panel(pan,window)\fR
.B replace_panel(pan,window)
replaces the current window of panel with \fBwindow\fR (useful, for
example if you want to resize a panel; if you're using \fBncurses\fR,
you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)).
It does not change the position of the panel in the stack.
.TP
\fBpanel_above(pan)\fR
.B panel_above(pan)
returns a pointer to the panel above pan. If the panel argument is
\fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
.TP
\fBpanel_below(pan)\fR
.B panel_below(pan)
returns a pointer to the panel just below pan. If the panel argument
is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
.TP
\fBset_panel_userptr(pan,ptr)\fR
.B set_panel_userptr(pan,ptr)
sets the panel's user pointer.
.TP
\fBpanel_userptr(pan)\fR
.B panel_userptr(pan)
returns the user pointer for a given panel.
.TP
\fBpanel_window(pan)\fR
.B panel_window(pan)
returns a pointer to the window of the given panel.
.SH DIAGNOSTICS
Each routine that returns a pointer returns \fBNULL\fR if an error

View File

@ -26,8 +26,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: term.5,v 1.17 2006/12/03 01:08:16 tom Exp $
.TH TERM 5
.\" $Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp $
.TH term 5
.ds n 5
.ds d @TERMINFO@
.SH NAME
@ -74,7 +74,7 @@ An 8 or more bit byte is assumed, but no assumptions about byte ordering
or sign extension are made.
.PP
The compiled file is created with the
.I tic
.B @TIC@
program, and read by the routine
.IR setupterm .
The file is divided into six parts:

View File

@ -1,5 +1,5 @@
.\"***************************************************************************
.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
.\" Copyright (c) 1998-2006,2007 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 *
@ -26,8 +26,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: term.7,v 1.15 2006/02/25 21:47:06 tom Exp $
.TH TERM 7
.\" $Id: term.7,v 1.18 2007/06/02 20:40:07 tom Exp $
.TH term 7
.ds n 5
.ds d @TERMINFO@
.SH NAME
@ -66,14 +66,14 @@ which you wish to override the system default type for your line.
Terminal type descriptions are stored as files of capability data underneath
\*d. To browse a list of all terminal names recognized by the system, do
.sp
toe | more
@TOE@ | more
.sp
from your shell. These capability files are in a binary format optimized for
retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
to examine an entry, you must use the \fBinfocmp\fR(1) command. Invoke it as
follows:
to examine an entry, you must use the \fB@INFOCMP@\fR(1M) command.
Invoke it as follows:
.sp
infocmp \fIentry-name\fR
@INFOCMP@ \fIentry-name\fR
.sp
where \fIentry-name\fR is the name of the type you wish to examine (and the
name of its capability file the subdirectory of \*d named for its first
@ -119,7 +119,7 @@ i.e. \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR. It should
multi-platform environment! If a model number follows, it should indicate
either the OS release level or the console driver release level.
.PP
The root name for a terminal emulator (assuming it doesn't fit one of the
The root name for a terminal emulator (assuming it does not fit one of the
standard ANSI or vt100 types) should be the program name or a readily
recognizable abbreviation of it (i.e. \fBversaterm\fR, \fBctrm\fR).
.PP

View File

@ -26,8 +26,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: terminfo.head,v 1.13 2006/05/13 15:35:45 tom Exp $
.TH TERMINFO 5 "" "" "File Formats"
.\" $Id: terminfo.head,v 1.16 2007/03/04 00:09:46 tom Exp $
.TH terminfo 5 "" "" "File Formats"
.ds n 5
.ds d @TERMINFO@
.SH NAME
@ -51,7 +51,7 @@ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
Entries in
.I terminfo
consist of a sequence of `,' separated fields (embedded commas may be
escaped with a backslash or notated as \e054).
escaped with a backslash or notated as \\054).
White space after the `,' separator is ignored.
The first entry for each terminal gives the names which are known for the
terminal, separated by `|' characters.
@ -62,14 +62,14 @@ All names but the last should be in lower case and contain no blanks;
the last name may well contain upper case and blanks for readability.
.PP
Lines beginning with a `#' in the first column are treated as comments.
While comment lines are legal at any point, the output of \fIcaptoinfo\fP
and \fIinfotocap\fP (aliases for \fItic\fP)
While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
will move comments so they occur only between entries.
.PP
Newlines and leading tabs may be used for formatting entries for readability.
These are removed from parsed entries.
The \fIinfocmp\ -f\fP option relies on this to format if-then-else expressions:
the result can be read by \fItic\fP.
The \fB@INFOCMP@\ -f\fP option relies on this to format if-then-else expressions:
the result can be read by \fB@TIC@\fP.
.PP
Terminal names (except for the last, verbose entry) should
be chosen using the following conventions.

View File

@ -1,11 +1,11 @@
.\" $Id: terminfo.tail,v 1.44 2006/04/01 22:47:01 tom Exp $
.\" $Id: terminfo.tail,v 1.48 2007/06/02 20:30:40 tom Exp $
.\" Beginning of terminfo.tail file
.\" This file is part of ncurses.
.\" See "terminfo.head" for copyright.
.ps +1
..
.
.SS A Sample Entry
..
.
The following entry, describing an ANSI-standard terminal, is representative
of what a \fBterminfo\fR entry for a modern terminal typically looks like.
.PP
@ -297,7 +297,7 @@ while the Lear Siegler \s-1ADM-3\s0 is described as
Cursor addressing and other strings requiring parameters
in the terminal are described by a
parameterized string capability, with
.IR printf (3S)
.IR printf (3)
like escapes \fB%x\fR in it.
For example, to address the cursor, the
.B cup
@ -395,7 +395,7 @@ It is possible to form else-if's a la Algol 68:
.IP
where c\di\u are conditions, b\di\u are bodies.
.IP
Use the \fB-f\fP option of \fBtic\fP or \fBinfocmp\fP to see
Use the \fB-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see
the structure of if-the-else's.
Some strings, e.g., \fBsgr\fP can be very complicated when written
on one line.
@ -993,7 +993,7 @@ with the rest of the terminfo description.
They are normally sent to the terminal, by the
.I init
option of the
.IR tput
.IR @TPUT@
program, each time the user logs in.
They will be printed in the following order:
.RS
@ -1578,7 +1578,7 @@ 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's the entry it wants,
if it is the entry it wants,
.TP 5
*
and \fBtgetent()\fP is searching for a terminal type that either is the
@ -1599,19 +1599,19 @@ here but will return incorrect data for the terminal.
.PP
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 \fBtgetent()\fP only does "tc" expansion once it's found the
type, since \fBtgetent()\fP only does "tc" expansion once it is found the
terminal type it was looking for, not while searching.
.PP
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's too long even before
If it is too long even before
"tc" expansion, it will have this effect even for users of some other
terminal types and users whose TERM variable does not have a termcap
entry.
.PP
When in -C (translate to termcap) mode, the \fBncurses\fR implementation of
\fBtic\fR(1) issues warning messages when the pre-tc length of a termcap
\fB@TIC@\fR(1M) 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) lengths.
@ -1688,7 +1688,7 @@ files containing terminal descriptions
\fB@TIC@\fR(1M),
\fB@INFOCMP@\fR(1M),
\fBcurses\fR(3X),
\fBprintf\fR(3S),
\fBprintf\fR(3),
\fBterm\fR(\*n).
.SH AUTHORS
Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.

View File

@ -26,8 +26,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: tic.1m,v 1.43 2006/05/13 15:14:01 tom Exp $
.TH tic 1M ""
.\" $Id: tic.1m,v 1.44 2006/12/24 17:59:11 tom Exp $
.TH @TIC@ 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
@ -92,7 +92,7 @@ Otherwise these are ignored.
.TP
\fB-C\fR
Force source translation to termcap format. Note: this differs from the \fB-C\fR
option of \fIinfocmp\fR(1M) in that it does not merely translate capability
option of \fB@INFOCMP@\fR(1M) in that it does not merely translate capability
names, but also translates terminfo strings to termcap format. Capabilities
that are not translatable are left in the entry under their terminfo names
but commented out with two preceding dots.

View File

@ -26,8 +26,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: toe.1m,v 1.18 2006/05/13 15:14:01 tom Exp $
.TH toe 1M ""
.\" $Id: toe.1m,v 1.20 2006/12/24 17:20:37 tom Exp $
.TH @TOE@ 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
@ -67,7 +67,7 @@ followed by a newline.
specifies that (verbose) output be written to standard error,
showing \fBtoe\fR's progress.
The optional parameter \fIn\fR is a number from 1 to 10,
interpreted as for \fBtic\fR(1).
interpreted as for \fB@TIC@\fR(1M).
.TP
\fB-V\fR
reports the version of ncurses which was used in this program, and exits.

View File

@ -27,27 +27,27 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: tput.1,v 1.25 2006/05/13 15:14:01 tom Exp $
.TH tput 1 ""
.\" $Id: tput.1,v 1.27 2006/12/24 18:11:31 tom Exp $
.TH @TPUT@ 1 ""
.ds d @TERMINFO@
.ds n 1
.SH NAME
\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
\fB@TPUT@\fR, \fBreset\fR - initialize a terminal or query terminfo database
.SH SYNOPSIS
\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
.br
\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBinit\fR
.br
\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBreset\fR
.br
\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
.br
\fBtput -S\fR \fB<<\fR
\fB@TPUT@ -S\fR \fB<<\fR
.br
\fBtput -V\fR
\fB@TPUT@ -V\fR
.br
.SH DESCRIPTION
The \fBtput\fR utility uses the \fBterminfo\fR database to make the
The \fB@TPUT@\fR utility uses the \fBterminfo\fR database to make the
values of terminal-dependent capabilities and information available to
the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
return the long name of the requested terminal type.
@ -55,15 +55,15 @@ The result depends upon the capability's type:
.RS
.TP 5
string
\fBtput\fR writes the string to the standard output.
\fB@TPUT@\fR writes the string to the standard output.
No trailing newline is supplied.
.TP
integer
\fBtput\fR writes the decimal value to the standard output,
\fB@TPUT@\fR writes the decimal value to the standard output,
with a trailing newline.
.TP
boolean
\fBtput\fR simply sets the exit code
\fB@TPUT@\fR simply sets the exit code
(\fB0\fR for TRUE if the terminal has the capability,
\fB1\fR for FALSE if it does not),
and writes nothing to the standard output.
@ -74,7 +74,7 @@ the application should test the exit code
(e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
For a complete list of capabilities
and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
.TP
\fB-T\fR\fItype\fR
indicates the \fItype\fR of terminal. Normally this option is
@ -94,21 +94,21 @@ If the capability is a string that takes parameters, the arguments
.IP
Most parameters are numbers.
Only a few terminfo capabilities require string parameters;
\fBtput\fR uses a table to decide which to pass as strings.
Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution.
\fB@TPUT@\fR uses a table to decide which to pass as strings.
Normally \fB@TPUT@\fR uses \fBtparm\fR (3X) to perform the substitution.
If no parameters are given for the capability,
\fBtput\fR writes the string without performing the substitution.
\fB@TPUT@\fR writes the string without performing the substitution.
.TP
\fB-S\fR
allows more than one capability per invocation of \fBtput\fR. The
capabilities must be passed to \fBtput\fR from the standard input
allows more than one capability per invocation of \fB@TPUT@\fR. The
capabilities must be passed to \fB@TPUT@\fR from the standard input
instead of from the command line (see example).
Only one \fIcapname\fR is allowed per line.
The \fB-S\fR option changes the
meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
EXIT CODES section).
.IP
Again, \fBtput\fR uses a table and the presence of parameters in its input
Again, \fB@TPUT@\fR uses a table and the presence of parameters in its input
to decide whether to use \fBtparm\fR (3X),
and how to interpret the parameters.
.TP
@ -157,58 +157,58 @@ of the terminal will be put out. The long name is the last
name in the first line of the terminal's description in the
\fBterminfo\fR database [see \fBterm\fR(5)].
.PP
If \fBtput\fR is invoked by a link named \fBreset\fR, this has the
same effect as \fBtput reset\fR.
If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
same effect as \fB@TPUT@ reset\fR.
See \fBtset\fR for comparison, which has similar behavior.
.SH EXAMPLES
.TP 5
\fBtput init\fR
\fB@TPUT@ init\fR
Initialize the terminal according to the type of
terminal in the environmental variable \fBTERM\fR. This
command should be included in everyone's .profile after
the environmental variable \fBTERM\fR has been exported, as
illustrated on the \fBprofile\fR(5) manual page.
.TP 5
\fBtput -T5620 reset\fR
\fB@TPUT@ -T5620 reset\fR
Reset an AT&T 5620 terminal, overriding the type of
terminal in the environmental variable \fBTERM\fR.
.TP 5
\fBtput cup 0 0\fR
\fB@TPUT@ cup 0 0\fR
Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
(the upper left corner of the screen, usually known as the "home"
cursor position).
.TP 5
\fBtput clear\fR
\fB@TPUT@ clear\fR
Echo the clear-screen sequence for the current terminal.
.TP 5
\fBtput cols\fR
\fB@TPUT@ cols\fR
Print the number of columns for the current terminal.
.TP 5
\fBtput -T450 cols\fR
\fB@TPUT@ -T450 cols\fR
Print the number of columns for the 450 terminal.
.TP 5
\fBbold=`tput smso` offbold=`tput rmso`\fR
\fBbold=`@TPUT@ smso` offbold=`@TPUT@ rmso`\fR
Set the shell variables \fBbold\fR, to begin stand-out mode
sequence, and \fBoffbold\fR, to end standout mode sequence,
for the current terminal. This might be followed by a
prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
.TP 5
\fBtput hc\fR
\fB@TPUT@ hc\fR
Set exit code to indicate if the current terminal is a hard copy terminal.
.TP 5
\fBtput cup 23 4\fR
\fB@TPUT@ cup 23 4\fR
Send the sequence to move the cursor to row 23, column 4.
.TP 5
\fBtput cup\fR
\fB@TPUT@ cup\fR
Send the terminfo string for cursor-movement, with no parameters substituted.
.TP 5
\fBtput longname\fR
\fB@TPUT@ longname\fR
Print the long name from the \fBterminfo\fR database for the
type of terminal specified in the environmental
variable \fBTERM\fR.
.PP
.RS 5
\fBtput -S <<!\fR
\fB@TPUT@ -S <<!\fR
.br
\fB> clear\fR
.br
@ -220,7 +220,7 @@ variable \fBTERM\fR.
.RE
.TP 5
\&
This example shows \fBtput\fR processing several capabilities in one invocation.
This example shows \fB@TPUT@\fR processing several capabilities in one invocation.
It clears the screen,
moves the cursor to position 10, 10
and turns on bold (extra bright) mode.
@ -238,7 +238,7 @@ information, see the "Tabs and Initialization"
section of \fBterminfo\fR(5)
.SH EXIT CODES
If the \fB-S\fR option is used,
\fBtput\fR checks for errors from each line,
\fB@TPUT@\fR 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 \fB0\fR.
@ -285,8 +285,8 @@ exit code error message
=
\fB0\fR T{
(\fIcapname\fR is a numeric variable that is not specified in the
\fBterminfo\fR(\*n) database for this terminal type, e.g.
\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
\fBterminfo\fR(5) database for this terminal type, e.g.
\fB@TPUT@ -T450 lines\fR and \fB@TPUT@ -T2621 xmc\fR)
T}
\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
\fB2\fR usage error

View File

@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: tset.1,v 1.18 2006/07/29 11:34:07 tom Exp $
.\" $Id: tset.1,v 1.19 2006/12/24 15:00:30 tom Exp $
.TH tset 1 ""
.SH NAME
\fBtset\fR, \fBreset\fR - terminal initialization
@ -272,7 +272,7 @@ terminal capability database
csh(1),
sh(1),
stty(1),
setupterm(3X),
curs_terminfo(3X),
tty(4),
terminfo(5),
ttys(5),

View File

@ -1,6 +1,6 @@
# $Id: Makefile.in,v 1.43 2006/10/14 20:40:36 tom Exp $
# $Id: Makefile.in,v 1.48 2007/04/28 14:56:11 tom Exp $
##############################################################################
# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -27,7 +27,7 @@
# authorization. #
##############################################################################
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
# Author: Thomas E. Dickey 1996-on
#
# Makefile for menu source code.
#
@ -91,7 +91,7 @@ CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
LINK = $(LIBTOOL_LINK) $(CC)
LINK = $(LIBTOOL_LINK)
LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
SHLIB_DIRS = -L../lib
@ -106,8 +106,6 @@ ABI_VERSION = @cf_cv_abi_version@
RANLIB = @LIB_PREP@
IMPORT_LIB = @IMPORT_LIB@
SHARED_LIB = @SHARED_LIB@
LIBRARIES = @LIBS_TO_MAKE@
LINT = @LINT@
@ -128,7 +126,7 @@ sources : $(AUTO_SRC)
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) :
sh $(srcdir)/../mkinstalldirs $@
sh $(srcdir)/../mkdirs.sh $@
# make copies to simplify include-paths while still keeping menu's include
# file in this directory.

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 1998 Free Software Foundation, Inc. #
# Copyright (c) 1998,2006 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"), #
@ -30,3 +30,4 @@
#
$(srcdir)/eti.h
$(srcdir)/menu.h
# vile:makemode

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
* Copyright (c) 1998-2003,2007 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 *
@ -30,7 +30,7 @@
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
/* $Id: menu.h,v 1.18 2003/11/08 20:48:24 tom Exp $ */
/* $Id: menu.h,v 1.19 2007/02/24 17:32:13 tom Exp $ */
#ifndef ETI_MENU
#define ETI_MENU
@ -217,23 +217,23 @@ extern NCURSES_EXPORT(int) pos_menu_cursor (const MENU *);
extern NCURSES_EXPORT(int) post_menu (MENU *);
extern NCURSES_EXPORT(int) scale_menu (const MENU *,int *,int *);
extern NCURSES_EXPORT(int) set_current_item (MENU *menu,ITEM *item);
extern NCURSES_EXPORT(int) set_item_init (MENU *,void(*)(MENU *));
extern NCURSES_EXPORT(int) set_item_init (MENU *, Menu_Hook);
extern NCURSES_EXPORT(int) set_item_opts (ITEM *,Item_Options);
extern NCURSES_EXPORT(int) set_item_term (MENU *,void(*)(MENU *));
extern NCURSES_EXPORT(int) set_item_term (MENU *, Menu_Hook);
extern NCURSES_EXPORT(int) set_item_userptr (ITEM *, void *);
extern NCURSES_EXPORT(int) set_item_value (ITEM *,bool);
extern NCURSES_EXPORT(int) set_menu_back (MENU *,chtype);
extern NCURSES_EXPORT(int) set_menu_fore (MENU *,chtype);
extern NCURSES_EXPORT(int) set_menu_format (MENU *,int,int);
extern NCURSES_EXPORT(int) set_menu_grey (MENU *,chtype);
extern NCURSES_EXPORT(int) set_menu_init (MENU *,void(*)(MENU *));
extern NCURSES_EXPORT(int) set_menu_init (MENU *, Menu_Hook);
extern NCURSES_EXPORT(int) set_menu_items (MENU *,ITEM **);
extern NCURSES_EXPORT(int) set_menu_mark (MENU *, const char *);
extern NCURSES_EXPORT(int) set_menu_opts (MENU *,Menu_Options);
extern NCURSES_EXPORT(int) set_menu_pad (MENU *,int);
extern NCURSES_EXPORT(int) set_menu_pattern (MENU *,const char *);
extern NCURSES_EXPORT(int) set_menu_sub (MENU *,WINDOW *);
extern NCURSES_EXPORT(int) set_menu_term (MENU *,void(*)(MENU *));
extern NCURSES_EXPORT(int) set_menu_term (MENU *, Menu_Hook);
extern NCURSES_EXPORT(int) set_menu_userptr (MENU *,void *);
extern NCURSES_EXPORT(int) set_menu_win (MENU *,WINDOW *);
extern NCURSES_EXPORT(int) set_top_row (MENU *,int);

View File

@ -1,6 +1,6 @@
# $Id: modules,v 1.16 2004/12/25 22:06:33 tom Exp $
# $Id: modules,v 1.17 2006/12/24 00:52:39 tom Exp $
##############################################################################
# Copyright (c) 1998,2004 Free Software Foundation, Inc. #
# Copyright (c) 1998-2004,2006 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"), #
@ -27,7 +27,7 @@
# authorization. #
##############################################################################
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
# Author: Thomas E. Dickey 1996-on
#
@ base
@ -59,3 +59,5 @@ m_sub lib $(srcdir) $(MENU_PRIV_H)
m_trace lib $(srcdir) $(MENU_PRIV_H)
m_userptr lib $(srcdir) $(MENU_PRIV_H)
m_win lib $(srcdir) $(MENU_PRIV_H)
# vile:makemode

View File

@ -1,6 +1,6 @@
# $Id: Makefile.in,v 1.40 2006/10/21 13:28:03 tom Exp $
# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
##############################################################################
# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -76,7 +76,7 @@ depend :
sources :
install : install.data install.scripts
install : install.data install.libs
install.data : terminfo.tmp \
$(DESTDIR)$(libdir) \
@ -103,7 +103,7 @@ install.data : terminfo.tmp \
NCURSES_CONFIG = ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
install.scripts : ncurses-config
install.libs : $(DESTDIR)$(bindir) ncurses-config
$(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
terminfo.tmp : run_tic.sed $(source)
@ -115,19 +115,20 @@ run_tic.sed :
ticdir=${ticdir} \
$(SHELL) $(srcdir)/gen_edit.sh >$@
$(DESTDIR)$(bindir) \
$(DESTDIR)$(libdir) \
$(DESTDIR)$(datadir) \
$(DESTDIR)$(tabsetdir) :
$(SHELL) $(top_srcdir)/mkinstalldirs $@
$(SHELL) $(top_srcdir)/mkdirs.sh $@
uninstall : uninstall.data uninstall.scripts
uninstall : uninstall.data uninstall.libs
uninstall.data :
-test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
-test -d $(DESTDIR)$(ticdir) && rm -rf $(DESTDIR)$(ticdir)
-test -f $(DESTDIR)$(ticfile) && rm -f $(DESTDIR)$(ticfile)
uninstall.scripts :
uninstall.libs :
-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
tags :

View File

@ -1,7 +1,7 @@
#!@SHELL@
# $Id: ncurses-config.in,v 1.11 2006/10/28 20:22:52 tom Exp $
# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
##############################################################################
# Copyright (c) 2006 Free Software Foundation, Inc. #
# Copyright (c) 2006,2007 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"), #
@ -40,6 +40,11 @@ mandir="@mandir@"
THIS="ncurses@DFT_ARG_SUFFIX@"
LANG=C; export LANG
LANGUAGE=C; export LANGUAGE
LC_ALL=C; export LC_ALL
LC_CTYPE=C; export LC_CTYPE
test $# = 0 && exec @SHELL@ $0 --error
while test $# -gt 0; do

View File

@ -29,7 +29,7 @@
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
# $Id: shlib,v 1.10 2005/06/25 22:41:17 tom Exp $
# $Id: shlib,v 1.11 2007/01/13 17:09:52 tom Exp $
# Use this script as a wrapper when running executables linked to shared
# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
# the soname's path within the linked executable (such as IRIX), e.g,
@ -81,6 +81,7 @@ for p in lib ../lib ../../lib ../../../lib
do
if test -d $p; then
q=`cd $p; pwd`
break
elif test -f configure && test ! -d ../$p ; then
break
fi

View File

@ -6,8 +6,8 @@
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
# $Revision: 1.303 $
# $Date: 2006/10/07 17:52:03 $
# $Revision: 1.318 $
# $Date: 2007/11/03 19:02:01 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
@ -317,6 +317,16 @@ vanilla|dumb tty,
OTbs,
bel=^G, cr=^M, cud1=^J, ind=^J,
# This is almost the same as "dumb", but with no prespecified width.
# DEL and ^C are hardcoded to act as kill characters.
# ^D acts as a line break (just like newline).
# It also interprets
# \033];xxx\007
# for compatibility with xterm -TD
9term|Plan9 terminal emulator for X,
am,
OTnl=^J, bel=^G, cud1=^J,
#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
#
# See the end-of-file comment for more on these.
@ -2691,8 +2701,9 @@ putty|PuTTY terminal emulator,
vt100-putty|Reset PuTTY to pure vt100,
rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
use=vt100,
# palette is hardcoded...
putty-256color|PuTTY 0.58 with xterm 256-colors,
use=xterm+256color, use=putty,
initc@, use=xterm+256color, use=putty,
# One of the keyboard selections is "VT100+".
# pterm (the X11 port) uses shifted F1-F10 as F11-F20
@ -3015,11 +3026,10 @@ xterm-xfree86|xterm terminal emulator (XFree86),
xterm-new|modern xterm terminal emulator,
npc,
indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~,
kRIT=\E[1;2C, kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, kent=\EOM, khome=\EOH,
kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
kpp=\E[5~, kri=\E[1;2A, rin=\E[%p1%dT, use=xterm+pcfkeys,
kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
use=xterm-basic,
#
# This fragment describes as much of XFree86 xterm's "pc-style" function
@ -3060,25 +3070,30 @@ xterm+pcfkeys|fragment for PC-style fkeys,
# modifyCursorKeys resource. These fragments list the modified cursor-keys
# that might apply to xterm+pcfkeys with different values of that resource.
xterm+pcc3|fragment with modifyCursorKeys:3,
kDN=\E[>1;2B, kDN5=\E[>1;5B, kDN6=\E[>1;6B,
kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
kri=\E[>1;2A, kDN=\E[>1;2B, kDN5=\E[>1;5B, kDN6=\E[>1;6B,
kLFT5=\E[>1;5D, kLFT6=\E[>1;6D, kRIT5=\E[>1;5C,
kRIT6=\E[>1;6C, kUP=\E[>1;2A, kUP5=\E[>1;5A,
kUP6=\E[>1;6A,
xterm+pcc2|fragment with modifyCursorKeys:2,
kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
kDN=\E[1;2B, kDN5=\E[1;5B, kDN6=\E[1;6B, kLFT5=\E[1;5D,
kLFT6=\E[1;6D, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP=\E[1;2A,
kUP5=\E[1;5A, kUP6=\E[1;6A,
xterm+pcc1|fragment with modifyCursorKeys:1,
kDN=\E[2B, kDN5=\E[5B, kDN6=\E[6B, kLFT5=\E[5D,
kLFT6=\E[6D, kRIT5=\E[5C, kRIT6=\E[6C, kUP=\E[2A,
kUP5=\E[5A, kUP6=\E[6A,
kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
kDN5=\E[5B, kDN6=\E[6B, kLFT5=\E[5D, kLFT6=\E[6D,
kRIT5=\E[5C, kRIT6=\E[6C, kUP=\E[2A, kUP5=\E[5A,
kUP6=\E[6A,
xterm+pcc0|fragment with modifyCursorKeys:0,
kDN=\EO2B, kDN5=\EO5B, kDN6=\EO6B, kLFT5=\EO5D,
kLFT6=\EO6D, kRIT5=\EO5C, kRIT6=\EO6C, kUP=\EO2A,
kUP5=\EO5A, kUP6=\EO6A,
kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
kDN5=\EO5B, kDN6=\EO6B, kLFT5=\EO5D, kLFT6=\EO6D,
kRIT5=\EO5C, kRIT6=\EO6C, kUP=\EO2A, kUP5=\EO5A,
kUP6=\EO6A,
#
# Here are corresponding fragments from xterm patch #216:
#
@ -3101,24 +3116,37 @@ xterm+pcf0|fragment with modifyFunctionKeys:0,
kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
#
xterm+pcf2|fragment with modifyFunctionKeys:0,
xterm+pcf2|fragment with modifyFunctionKeys:2,
kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf13=\E[2P, kf14=\E[2Q, kf15=\E[2R, kf16=\E[2S,
kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[5P, kf26=\E[5Q,
kf27=\E[5R, kf28=\E[5S, kf29=\E[15;5~, kf3=\EOR,
kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
kf36=\E[24;5~, kf37=\E[6P, kf38=\E[6Q, kf39=\E[6R,
kf4=\EOS, kf40=\E[6S, kf41=\E[15;6~, kf42=\E[17;6~,
kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\E[3P,
kf5=\E[15~, kf50=\E[3Q, kf51=\E[3R, kf52=\E[3S,
kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\E[4P,
kf62=\E[4Q, kf63=\E[4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~,
#
# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
# Alternatively, the same scheme with old-style function keys as in xterm-r6
# is shown here (because that is used in mrxvt and mlterm):
xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
kf63=\E[13;4~, use=xterm+pcf2,
#
# This chunk is used for building the VT220/Sun/PC keyboard variants.
xterm-basic|modern xterm terminal emulator - common,
@ -3157,6 +3185,8 @@ xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
xterm-16color|xterm with 16 colors like aixterm,
use=ibm+16color, use=xterm-new,
# This is a compile-time feature of XFree86 xterm beginning with
# patch #111 (1999/7/10) -TD
xterm+256color|xterm 256-color feature,
ccc,
colors#256, pairs#32767,
@ -3165,6 +3195,18 @@ xterm+256color|xterm 256-color feature,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
setb@, setf@,
# This is a compile-time feature of XFree86 xterm beginning with
# patch #115 (1999/9/18) -TD
#
# Note that the escape sequences used are the same as for 256-colors - xterm
# has a different table of default color resource values. If built for
# 256-colors, it can still handle an 88-color palette by using the initc
# capability.
#
# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
# which support the xterm+256color feature support the associated initc
# capability. So it is cancelled in the entries which use this and/or the
# xterm+256color block.
xterm+88color|xterm 88-color feature,
colors#88, pairs#7744, use=xterm+256color,
@ -3444,11 +3486,23 @@ gnome-fc5|GNOME Terminal,
rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
gnome|GNOME Terminal,
use=gnome-fc5,
# GNOME Terminal 2.18.1 (2007 snapshot)
#
# For any "recent" version of gnome-terminal, it is futile to attempt to
# support modifiers on cursor- and keypad keys because the program usually
# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
# of the keys (which more/less correspond to the termcap values), and will
# interpret those according to the $TERM value, but others not in the
# terminfo according to some constantly changing set of hacker guidelines -TD
gnome-2007|GNOME Terminal snapshot 2.18.1,
use=xterm+pcc2, use=gnome-fc5,
gnome|GNOME Terminal,
use=gnome-2007,
# palette is hardcoded...
gnome-256color|GNOME Terminal with xterm 256-colors,
use=xterm+256color, use=gnome,
initc@, use=xterm+256color, use=gnome,
# XFCE Terminal 0.2.5.4beta2
#
@ -3551,14 +3605,29 @@ konsole-16color|klone of xterm-16color,
konsole|KDE console window,
use=konsole-xf4x,
# Based on mlterm 2.9.2's mlterm.ti, with corrections/additions from reading
# the source code and running tack -TD
# palette is hardcoded...
konsole-256color|KDE console window with xterm 256-colors,
initc@, use=xterm+256color, use=konsole,
# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
#
# This is nominally a vt102 emulator, with features borrowed from rxvt and
# It is nominally a vt102 emulator, with features borrowed from rxvt and
# xterm.
#
# There are some problems with vttest:
# test of character sets leaves it in line-drawing mode.
# The function keys are numbered based on shift/control/alt modifiers, except
# that the control-modifier itself is used to spawn a new copy of mlterm (the
# "-P" option). So control/F1 to control/F12 may not be usable, depending on
# how it is configured.
#
# kf1 to kf12 \E[11~ to \E[24~
# shift kf1 to kf12 \E[11;2~ to \E[24;2~
# alt kf1 to kf12 \E[11;3~ to \E[24;3~
# shift/alt kf1 to kf12 \E[11;4~ to \E[24;4~
# control kf1 to kf12 \E[11;5~ to \E[24;5~ (maybe)
# control/shift kf1 to kf12 \E[11;6~ to \E[24;6~
# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~
# control/shit/alt kf1 to kf12 \E[11;8~ to \E[24;8~
#
mlterm|multi lingual terminal emulator,
am, eslok, km, mc5i, mir, msgr, npc, xenl,
colors#8, cols#80, it#8, lines#24, pairs#64,
@ -3574,21 +3643,29 @@ mlterm|multi lingual terminal emulator,
ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, mc0=\E[i,
nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l,
rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
rmso=\E[27m, rmul=\E[24m,
kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~, khome=\EOH,
kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~,
mc0=\E[i, nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7\E[?47h,
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
# The insert/delete/home/end keys do not respond to modifiers because mlterm
# looks in its termcap to decide which string to send. If it used terminfo
# (when available), it could use the extended names introduced for xterm.
mlterm+pcfkeys|fragment for PC-style fkeys,
kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
kDN=\EO1;2B, kDN5=\EO1;5B, kDN6=\EO1;6B, kIC5=\E[2;5~,
kIC6=\E[2;6~, kLFT5=\EO1;5D, kLFT6=\EO1;6D,
kNXT5=\E[6;5~, kNXT6=\E[6;6~, kPRV5=\E[5;5~,
kPRV6=\E[5;6~, kRIT5=\EO1;5C, kRIT6=\EO1;6C, kUP=\EO1;2A,
kUP5=\EO1;5A, kUP6=\EO1;6A,
# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
@ -3607,7 +3684,7 @@ mlterm|multi lingual terminal emulator,
#
# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
# Since rxvt is not really compatible with xterm, it should be configured as
# "rxvt" (monochrome) and "rxvt-color".
# "rxvt" or "rxvt-color".
#
# removed dch/dch1 because they are inconsistent with bce/ech -TD
# remove km as per tack test -TD
@ -3677,6 +3754,7 @@ rxvt-basic|rxvt terminal base (X Window System),
# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
#
# Application
# Up ESC [ A ESC [ a ESC O a ESC O A
# Down ESC [ B ESC [ b ESC O b ESC O B
@ -3704,10 +3782,18 @@ rxvt-basic|rxvt terminal base (X Window System),
# XK_KP_8 8 ESC O x
# XK_KP_9 9 ESC O y
#
# The source-code for rxvt actually defines mappings for F21-F35, using
# "ESC [ 35 ~" to "ESC [ 49 ~". Keyboards with more than 12 function keys
# are rare, so this entry uses the shift- and control-modifiers as in
# xterm+pcfkeys to define keys past F12.
#
# kIC is normally not used, since rxvt performs a paste for that (shifted
# insert), unless private mode 35 is set.
#
# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
rxvt+pcfkeys|fragment for PC-style fkeys,
kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E2$, kLFT=\E[d,
kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
@ -3722,7 +3808,10 @@ rxvt+pcfkeys|fragment for PC-style fkeys,
kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
kslt=\E[4~, kDN=\E[b, kDN5=\EOb, kLFT5=\EOd, kRIT5=\EOc,
kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
kUP=\E[a, kUP5=\EOa,
rxvt|rxvt terminal emulator (X Window System),
@ -3747,6 +3836,13 @@ rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygw
rxvt-16color|xterm with 16 colors like aixterm,
ncv#32, use=ibm+16color, use=rxvt,
# mrxvt 0.5.3
#
# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
# makes its function-keys different from other flavors of rxvt -TD
mrxvt|multitabbed rxvt,
use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
# From: Michael Jennings <mej@valinux.com>
#
# Eterm 0.9.3
@ -15183,6 +15279,82 @@ ncr7901|ncr 7901 model,
sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
vpa=\013%p1%{64}%+%c,
# Newbury Data Recording Limited (Newbury Data)
#
# Have been manufacturing and reselling various peripherals for a long time
# They don't make terminals anymore, but are still in business (in 2007).
# Their e-mail address is at ndsales@newburydata.co.uk
# and their post address is:
#
# Newbury Data Recording Ltd,
# Premier Park, Road One,
# Winsford, Cheshire, CW7 3PT
#
# Their technical support is still good, they sent me for free a printed copy
# of the 9500 user manual and I got it just 1 week after I first contacted them
# (in 2005)!
# NDR 9500
# Manufactured in the early/mid eighties, behaves almost the same as a
# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is
# recognized: if you type in "ESC !", the next (third) character is not
# echoed, showing that the terminal was actually waiting for a parameter!
ndr9500|nd9500|Newbury Data 9500,
am, bw, hs, mc5i, mir, msgr, ul, xon,
cols#80, lines#24, wsl#79,
acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
pfloc=\E|%{48}%p1%+%c2%p2\031,
pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
ndr9500-nl|NDR 9500 with no status line,
hs@,
wsl@,
dsl@, fsl@, tsl@, use=ndr9500,
ndr9500-25|NDR 9500 with 25th line enabled,
lines#25, use=ndr9500,
ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
lines#25, use=ndr9500-nl,
ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
msgr@,
xmc#1,
blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
lines#25, use=ndr9500-mc,
ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
hs@,
wsl@,
dsl@, fsl@, tsl@, use=ndr9500-mc,
ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
lines#25, use=ndr9500-mc-nl,
#### Perkin-Elmer (Owl)
#
# These are official terminfo entries from within Perkin-Elmer.
@ -18147,19 +18319,19 @@ h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
OTbs, am, eslok, hs, mir, msgr,
cols#80, it#8, lines#24,
acsc=, bel=^G, clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB,
cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
cvvis=\Ex4, dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH,
ht=^I, ind=^J, ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB,
kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue,
lf7=red, lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
smacs=\EF, smir=\E@, smso=\Ep,
tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
smir=\E@, smso=\Ep, tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
h19-u|heathkit with underscore cursor,
cnorm@, cvvis@, use=h19-b,
h19-g|h19g|heathkit w/block cursor,
cnorm=\Ex4, use=h19-b,
cnorm=\Ex4, cvvis@, use=h19-b,
alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
lines#60,
dl1=\EM, il1=\EL, use=h19,
@ -18285,14 +18457,15 @@ z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
OTbs, OTpt, mir, msgr,
OTkn#10, cols#80, it#8, lines#24,
acsc=, clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB,
cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>,
cuu1=\EA, cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>,
ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H,
kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES,
kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
kf9=\EOI, khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
smacs=\EF, smir=\E@, smso=\Ep,
acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kcub1=\ED, kcud1=\EB,
kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES, kf2=\ET, kf3=\EU,
kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EOI,
khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
smir=\E@, smso=\Ep,
p19|h19-b with il1/dl1,
dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
@ -20696,6 +20869,99 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# * Back off the xterm entry to use r6 as a base.
# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
# * Added dec-vt220 at Adrian Garside's request.
#
#-(original-changelog-1996/12/29-to-1998/02/28-by-TD)---------------------------
#
# 10.1.0 (Sun Dec 29 02:36:31 EST 1996): withdrawn
# * Minor corrections to xterm entries.
# * Replaced EWAN telnet entry.
# * Dropped the reorder script generator. It was a fossil.
# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
# * Replaced minitel-2 entry.
# * Added MGR, ansi-nt.
# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
# * Thorsten Lockert added termcap `bs' to a lot of types, working from
# the 4.4BSD Lite2 file.
#
# 10.1.1 (Sat May 3 21:41:27 EDT 1997):
# * Use setaf/setab consistently with SVr4.
# * Remove ech, el1 from cons25w, they do not work in FreeBSD 2.1.5
# 10.1.2 (Sat May 24 21:10:57 EDT 1997)
# * update xterm-xf86-v32 to match XFree86 3.2A (changes F1-F4)
# * add xterm-16color, for XFree86 3.3
# 10.1.3 (Sat May 31 12:21:05 EDT 1997)
# * correct typo in emu
# * correct typo in vt102-w (Robert Wuest)
# * make new entry xterm-xf86-v33, restored xterm-xf86-v32.
# 10.1.4 (Sun Jun 15 08:29:05 EDT 1997)
# * remove ech capability from rxvt (it does the wrong thing)
# 10.1.5 (Sat Jun 28 21:34:36 EDT 1997)
# * remove spurious newlines from several entries (hp+color, wy50,
# wy350, wy370-nk, wy99gt-tek, wy370-tek, ibm3161, tek4205, ctrm,
# gs6300)
# 10.1.6 (Sat Jul 5 15:08:16 EDT 1997)
# * correct rmso capability of wy50-mc
# 10.1.7 (Sat Jul 12 20:05:55 EDT 1997)
# * add cbt to xterm-xf86-v32
# * disentangle some entries from 'xterm', preferring xterm-r6 in case
# 'xterm' is derived from xterm-xf86-v32, which implements ech and
# other capabilities not in xterm-r6.
# * remove alternate character set from kterm entry.
# 10.1.8 (Sat Aug 2 18:43:18 EDT 1997)
# * correct acsc entries for ACS_LANTERN, which is 'i', not 'I'.
# 10.1.9 (Sat Aug 23 17:54:38 EDT 1997)
# * add xterm-8bit entry.
# 10.1.10 (Sat Oct 4 18:17:13 EDT 1997)
# * repair several places where early version of tic replaced \, with \\\,
# * make acsc entries canonical form (sorted, uniq).
# * modify acsc entries for linux, linux-koi8
# * new rxvt entry, from corrected copy of distribution in rxvt 2.21b
# * add color, mouse support to kterm.
# 10.1.11 (Sat Oct 11 14:57:10 EDT 1997)
# * correct wy120 smxon/tbc capabilities which were stuck together.
# 10.1.12 (Sat Oct 18 17:38:41 EDT 1997)
# * add entry for xterm-xf86-v39t
# 10.1.13 (Sat Nov 8 13:43:33 EST 1997)
# * add u8,u9 to sun-il description
# 10.1.14 (Sat Nov 22 19:59:03 EST 1997)
# * add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
# version.
# * add hds200 description (Walter Skorski)
# * add EMX 0.9b descriptions
# * correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
# * rename xhpterm back to hpterm.
# 10.1.15 (Sat Nov 29 19:21:59 EST 1997)
# * change initc in linux-c-nc to use 0..1000 range.
# 10.1.16 (Sat Dec 13 19:41:59 EST 1997)
# * remove hpa/vpa from rxvt, which implements them incorrectly.
# * add sgr0 for rxvt.
# * remove bogus smacs/rmacs from EMX descriptions.
# 10.1.17 (Sat Dec 20 17:54:10 EST 1997)
# * revised entry for att7300
# 10.1.18 (Sat Jan 3 17:58:49 EST 1998)
# * use \0 rather than \200.
# * rename rxvt-color to rxvt to match rxvt 2.4.5 distribution.
# 10.1.19 (Sat Jan 17 14:24:57 EST 1998)
# * change xterm (xterm-xf86-v40), xterm-8bit rs1 to use hard reset.
# * rename xterm-xf86-v39t to xterm-xf86-v40
# * remove bold/underline from sun console entries since they're not
# implemented.
# 10.1.20 (Sat Jan 24 11:02:51 EST 1998)
# * add beterm entry (Fred Fish)
# * add irix-color/xwsh entry.
# * turn ncv off for linux.
# 10.1.21 (Sat Jan 31 17:39:16 EST 1998)
# * set ncv for FreeBSD console (treat colors with reverse specially).
# * remove sgr string from qnx based on report by Xiaodan Tang
# 10.1.22 (Wed Feb 11 18:40:12 EST 1998)
# * remove spurious commas from descriptions
# * correct xterm-8bit to match XFree86 3.9Ad F1-F4.
# 10.1.23 (Sat Feb 28 17:48:38 EST 1998)
# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
# apparently based on cp-866).
#
#-(replaced-changelog-1998/02/28-by-ESR)----------------------------------------
#
# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
# * Replaced minitel-2 entry.
# * Added MGR, ansi-nt.
@ -20748,6 +21014,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# * Incorporated att700 from the Boundless Technology FTP site.
# * Miscellaneous contact-address and Web-page updates.
#
#-(changelog-beginning-ncurses-4.2)---------------------------------------------
#
# 1998/5/9
# * add nxterm and xterm-color terminfo description (request by Cristian
# Gafton <gafton@redhat.com>).
@ -21309,6 +21577,36 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# * add several GNU Screen variations with 16- and 256-colors, and
# status line (Alain Bench).
#
# 2007-03-03
# * add Newbury Data entries (Jean-Charles Billaud).
#
# 2007-06-10
# * corrected xterm+pcf2 modifiers for F1-F4, match xterm #226 -TD
#
# 2007-07-14
# * restore section of pre-ncurses-4.2 changelog to fix attribution -TD
# * add konsole-256color entry -TD
#
# 2007-08-18
# * add 9term entry (request by Juhapekka Tolvanen) -TD
#
# 2007-10-13
# * correct kIC in rxvt+pcfkeys (prompted by Debian #446444) -TD
# * add shift-control- and control-modified keys for rxvt editing
# keypad -TD
# * update mlterm entry to 2.9.3 -TD
# * add mlterm+pcfkeys -TD
#
# 2007-10-20
# * move kLFT, kRIT, kind and kri capabilities from xterm-new to
# xterm+pcc0, etc., to make the corresponding building blocks reflect
# xterm's capabilities -TD
# * add mrxvt entry -TD
# * add xterm+r6f2, use in mlterm and mrxvt entries -TD
#
# 2007-11-03
# * correct acsc strings for h19 and z100 (Benjamin Sittler)
#
# The following sets edit modes for GNU EMACS.
# Local Variables:
# fill-prefix:"\t"

View File

@ -1,6 +1,6 @@
# $Id: mk-1st.awk,v 1.68 2006/10/08 00:14:08 tom Exp $
# $Id: mk-1st.awk,v 1.78 2007/03/24 22:10:55 tom Exp $
##############################################################################
# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. #
# Copyright (c) 1998-2006,2007 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"), #
@ -37,9 +37,12 @@
# model (directory into which we compile, e.g., "obj")
# prefix (e.g., "lib", for Unix-style libraries)
# suffix (e.g., "_g.a", for debug libraries)
# subset ("none", "base", "base+ext_funcs" or "termlib")
# subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
# ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
# ShlibVerInfix ("yes" or "no", determines location of version #)
# TermlibRoot ("tinfo" or other root for libterm.so)
# TermlibSuffix (".so" or other suffix for libterm.so)
# ReLink ("yes", or "no", flag to rebuild shared libs on install)
# DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
# rmSoLocs ("yes" or "no", flag to add extra clean target)
# ldconfig (path for this tool, if used)
@ -52,6 +55,64 @@
# Mixed-case variable names are ok.
# HP/UX requires shared libraries to have executable permissions.
#
function is_ticlib() {
return ( subset ~ /^ticlib$/ );
}
function is_termlib() {
return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ );
}
# see lib_name
function lib_name_of(a_name) {
return sprintf("%s%s%s", prefix, a_name, suffix)
}
# see imp_name
function imp_name_of(a_name) {
if (ShlibVerInfix == "cygdll") {
result = sprintf("%s%s%s.a", prefix, a_name, suffix);
} else {
result = "";
}
return result;
}
# see abi_name
function abi_name_of(a_name) {
if (ShlibVerInfix == "cygdll") {
result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
} else if (ShlibVerInfix == "yes") {
result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
} else {
result = sprintf("%s.$(ABI_VERSION)", lib_name_of(a_name));
}
return result;
}
# see rel_name
function rel_name_of(a_name) {
if (ShlibVerInfix == "cygdll") {
result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
} else if (ShlibVerInfix == "yes") {
result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
} else {
result = sprintf("%s.$(REL_VERSION)", lib_name_of(a_name));
}
return result;
}
# see end_name
function end_name_of(a_name) {
if ( MODEL != "SHARED" ) {
result = lib_name_of(a_name);
} else if ( DoLinks == "reverse") {
result = lib_name_of(a_name);
} else {
if ( ShlibVer == "rel" ) {
result = rel_name_of(a_name);
} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
result = abi_name_of(a_name);
} else {
result = lib_name_of(a_name);
}
}
return result
}
function symlink(src,dst) {
if ( src != dst ) {
printf "rm -f %s; ", dst
@ -64,19 +125,19 @@ function rmlink(directory, dst) {
function removelinks(directory) {
rmlink(directory, end_name);
if ( DoLinks == "reverse" ) {
if ( ShlibVer == "rel" ) {
rmlink(directory, abi_name);
rmlink(directory, rel_name);
} else if ( ShlibVer == "abi" ) {
rmlink(directory, abi_name);
}
if ( ShlibVer == "rel" ) {
rmlink(directory, abi_name);
rmlink(directory, rel_name);
} else if ( ShlibVer == "abi" ) {
rmlink(directory, abi_name);
}
} else {
if ( ShlibVer == "rel" ) {
rmlink(directory, abi_name);
rmlink(directory, lib_name);
} else if ( ShlibVer == "abi" ) {
rmlink(directory, lib_name);
}
if ( ShlibVer == "rel" ) {
rmlink(directory, abi_name);
rmlink(directory, lib_name);
} else if ( ShlibVer == "abi" ) {
rmlink(directory, lib_name);
}
}
}
function make_shlib(objs, shlib_list) {
@ -103,27 +164,53 @@ function sharedlinks(directory) {
printf ")\n"
}
}
function shlib_rule(directory) {
if ( ShlibVer == "cygdll" ) {
dst_libs = sprintf("%s/$(SHARED_LIB) %s/$(IMPORT_LIB)", directory, directory);
} else {
dst_libs = sprintf("%s/%s", directory, end_name);
# termlib may be named explicitly via "--with-termlib=XXX", which overrides
# any suffix. Temporarily override "suffix" to account for this.
function termlib_end_of() {
termlib_save_suffix = suffix;
suffix = TermlibSuffix;
termlib_temp_result = end_name_of(TermlibRoot);
suffix = termlib_save_suffix;
return termlib_temp_result;
}
function shlib_build(directory) {
dst_libs = sprintf("%s/%s", directory, end_name);
printf "%s : \\\n", dst_libs
printf "\t\t%s \\\n", directory
if (subset ~ /^base/ || subset == "ticlib" ) {
save_suffix = suffix
sub(/^[^.]\./,".",suffix)
if (directory != "../lib") {
printf "\t\t%s/%s \\\n", "../lib", termlib_end_of();
}
printf "\t\t%s/%s \\\n", directory, termlib_end_of();
suffix = save_suffix
}
printf "%s : %s $(%s_OBJS)\n", dst_libs, directory, OBJS
printf "\t\t$(%s_OBJS)\n", OBJS
printf "\t@echo linking $@\n"
print "\t-@rm -f %s", dst_libs;
if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
make_shlib(OBJS, "TINFO_LIST")
if ( is_ticlib() ) {
make_shlib(OBJS, "TICS_LIST")
} else if ( is_termlib() ) {
make_shlib(OBJS, "TINFO_LIST")
} else {
make_shlib(OBJS, "SHLIB_LIST")
make_shlib(OBJS, "SHLIB_LIST")
}
sharedlinks(directory)
}
function shlib_install(directory) {
src_lib1 = sprintf("../lib/%s", end_name);
dst_lib1 = sprintf("%s/%s", directory, end_name);
printf "%s : \\\n", dst_lib1
printf "\t\t%s \\\n", directory
printf "\t\t%s\n", src_lib1
printf "\t@echo installing $@\n"
printf "\t$(INSTALL_LIB) %s %s\n", src_lib1, dst_lib1;
sharedlinks(directory)
}
function install_dll(directory,filename) {
src_name = sprintf("../lib/%s", filename);
dst_name = sprintf("$(DESTDIR)%s/%s", directory, filename);
printf "\t@echo installing %s as %s\n", src_name, dst_name
printf "\t-@rm -f %s\n", dst_name
if ( directory == "$(bindir)" ) {
program = "$(INSTALL) -m 755";
} else {
@ -153,6 +240,9 @@ BEGIN {
printf "# subset: %s\n", subset
printf "# ShlibVer: %s\n", ShlibVer
printf "# ShlibVerInfix: %s\n", ShlibVerInfix
printf "# TermlibRoot: %s\n", TermlibRoot
printf "# TermlibSuffix: %s\n", TermlibSuffix
printf "# ReLink: %s\n", ReLink
printf "# DoLinks: %s\n", DoLinks
printf "# rmSoLocs: %s\n", rmSoLocs
printf "# ldconfig: %s\n", ldconfig
@ -163,7 +253,9 @@ BEGIN {
}
using = 1
}
if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
if ( is_ticlib() ) {
OBJS = MODEL "_P"
} else if ( is_termlib() ) {
OBJS = MODEL "_T"
} else {
OBJS = MODEL
@ -205,33 +297,15 @@ END {
if ( found == 1 )
{
print ""
lib_name = sprintf("%s%s%s", prefix, name, suffix)
lib_name = lib_name_of(name);
if ( MODEL == "SHARED" )
{
if (ShlibVerInfix == "cygdll") {
abi_name = sprintf("%s%s$(ABI_VERSION)%s", "cyg", name, suffix);
rel_name = sprintf("%s%s$(REL_VERSION)%s", "cyg", name, suffix);
imp_name = sprintf("%s%s%s.a", prefix, name, suffix);
} else if (ShlibVerInfix == "yes") {
abi_name = sprintf("%s%s.$(ABI_VERSION)%s", prefix, name, suffix);
rel_name = sprintf("%s%s.$(REL_VERSION)%s", prefix, name, suffix);
} else {
abi_name = sprintf("%s.$(ABI_VERSION)", lib_name);
rel_name = sprintf("%s.$(REL_VERSION)", lib_name);
}
if ( DoLinks == "reverse") {
end_name = lib_name;
} else {
if ( ShlibVer == "rel" ) {
end_name = rel_name;
} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
end_name = abi_name;
} else {
end_name = lib_name;
}
}
abi_name = abi_name_of(name);
rel_name = rel_name_of(name);
imp_name = imp_name_of(name);
end_name = end_name_of(name);
shlib_rule("../lib")
shlib_build("../lib")
print ""
print "install \\"
@ -249,7 +323,11 @@ END {
lib_dir = "$(DESTDIR)$(libdir)";
printf "install.%s :: %s/%s\n", name, lib_dir, end_name
print ""
shlib_rule(lib_dir)
if ( ReLink == "yes" ) {
shlib_build(lib_dir)
} else {
shlib_install(lib_dir)
}
}
if ( overwrite == "yes" && name == "ncurses" )
@ -393,3 +471,4 @@ END {
}
}
}
# vile:ts=4 sw=4

107
contrib/ncurses/mk-hdr.awk Normal file
View File

@ -0,0 +1,107 @@
# $Id: mk-hdr.awk,v 1.2 2007/03/31 15:48:45 tom Exp $
##############################################################################
# Copyright (c) 2007 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"), #
# to deal in the Software without restriction, including without limitation #
# the rights to use, copy, modify, merge, publish, distribute, distribute #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the #
# following conditions: #
# #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software. #
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
# DEALINGS IN THE SOFTWARE. #
# #
# Except as contained in this notice, the name(s) of the above copyright #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
#
# Author: Thomas E. Dickey 2007
#
# Generate install/uninstall rules for header files
# Variables:
# subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
# compat ("yes" or "no", flag to add link to curses.h
#
function basename(path) {
sub(/^.*\//,"",path)
return path;
}
BEGIN {
found = 0
using = 1
count = 0
}
/^@/ {
using = 0
if (subset == "none") {
using = 1
} else if (index(subset,$2) > 0) {
using = 1
} else {
using = 0
}
}
/^[@#]/ {
next
}
{
if (using && NF != 0) {
if (found == 0) {
print ""
print "# generated by mk-hdr.awk"
printf "# subset: %s\n", subset
printf "# compat: %s\n", compat
print ""
found = 1
}
data[count] = $1
count = count + 1
}
}
END {
if ( count > 0 )
{
print "${DESTDIR}${includedir} :"
print " sh ${srcdir}/../mkdirs.sh $@"
print ""
print "install \\"
print "install.libs \\"
print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\"
for (i = 0; i < count - 1; ++i) {
printf " %s \\\n", data[i]
}
printf " %s\n", data[count - 1]
for (i = 0; i < count; ++i) {
printf " @ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
if (data[i] == "curses.h" && compat == "yes") {
printf " @ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
}
}
print ""
print "uninstall \\"
print "uninstall.libs \\"
print "uninstall.includes ::"
for (i = 0; i < count; ++i) {
printf " -@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
if (data[i] == "curses.h" && compat == "yes") {
printf " -@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
}
}
}
}
# vile:ts=4 sw=4

51
contrib/ncurses/mkdirs.sh Normal file
View File

@ -0,0 +1,51 @@
#! /bin/sh
# $Id: mkdirs.sh,v 1.5 2007/03/25 22:29:46 tom Exp $
# -----------------------------------------------------------------------------
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Last modified: 1994-03-25
# Public domain
# -----------------------------------------------------------------------------
errstatus=0
umask 022
for file in ${1+"$@"} ; do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d in ${1+"$@"} ; do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp" 1>&2
case "$pathcomp" in
[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
;; # DOSISH systems
* )
mkdir "$pathcomp"
errstatus=$?
if test $errstatus != 0
then
# may have failed if invoked in a parallel "make -j# install"
if test -d "$pathcomp"
then
errstatus=0
fi
fi
;;
esac
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here

Some files were not shown because too many files have changed in this diff Show More