mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 10:19:26 +00:00
- Import ncurses 5.7-20081102 (5.7 release) onto vendor branch
This commit is contained in:
parent
c0e48ca132
commit
6181f4622a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/ncurses/dist/; revision=184798 svn path=/vendor/ncurses/5.7-20081102/; revision=184799; tag=vendor/ncurses/5.7-20081102
408
ANNOUNCE
408
ANNOUNCE
@ -1,4 +1,4 @@
|
||||
Announcing ncurses 5.6
|
||||
Announcing ncurses 5.7
|
||||
|
||||
The ncurses (new curses) library is a free software emulation of
|
||||
curses in System V Release 4.0, and more. It uses terminfo format,
|
||||
@ -27,205 +27,217 @@
|
||||
Release Notes
|
||||
|
||||
This release is designed to be upward compatible from ncurses 5.0
|
||||
through 5.5; very few applications will require recompilation,
|
||||
through 5.6; very few applications will require recompilation,
|
||||
depending on the platform. These are the highlights from the
|
||||
change-log since ncurses 5.5 release.
|
||||
change-log since ncurses 5.6 release.
|
||||
|
||||
Interface changes:
|
||||
* generate linkable stubs for some macros:
|
||||
getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
|
||||
getpary, getpary,
|
||||
and (for libncursesw)
|
||||
wgetbkgrnd
|
||||
getattrs
|
||||
|
||||
New features and improvements:
|
||||
* library
|
||||
+ support hashed databases for the terminal descriptions. This
|
||||
uses the Berkeley database, has been tested for several
|
||||
versions on different platforms.
|
||||
+ add use_legacy_coding() function to support lynx's
|
||||
font-switching feature.
|
||||
+ add extension nofilter(), to cancel a prior filter() call.
|
||||
+ add/install a package config script, e.g., ncurses5-config or
|
||||
ncursesw5-config, according to configuration options.
|
||||
+ provide ifdef for NCURSES_NOMACROS which suppresses most
|
||||
macro definitions from curses.h, i.e., where a macro is
|
||||
defined to override a function to improve performance.
|
||||
+ make ifdef's consistent in curses.h for the extended colors
|
||||
so the header file can be used for the normal curses library.
|
||||
The header file installed for extended colors is a variation
|
||||
of the wide-character configuration.
|
||||
+ improve tgetstr() by making the return value point into the
|
||||
user's buffer, if provided.
|
||||
+ add ifdef's allowing ncurses to be built with tparm() using
|
||||
either varargs (the existing status), or using a
|
||||
fixed-parameter list (to match X/Open).
|
||||
+ widen the test for xterm kmous a little to allow for other
|
||||
strings than "\E[M", e.g., for xterm-sco functionality in
|
||||
xterm.
|
||||
+ modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs.
|
||||
+ move prototypes for wide-character trace functions from
|
||||
curses.tail to curses.wide to avoid accidental reference to
|
||||
those if _XOPEN_SOURCE_EXTENDED is defined without ensuring
|
||||
that <wchar.h> is included.
|
||||
+ change the way shared libraries (other than libtool) are
|
||||
installed. Rather than copying the build-tree's libraries,
|
||||
link the shared objects into the install directory. This
|
||||
makes the --with-rpath option work except with $(DESTDIR).
|
||||
+ several improvements for rendering in hpterm. These are only
|
||||
available if the library is configured using
|
||||
--enable-xmc-glitch.
|
||||
+ Add NCURSES_NO_HARD_TABS and NCURSES_NO_MAGIC_COOKIE
|
||||
environment variables to allow runtime suppression of the
|
||||
related hard-tabs and xmc-glitch features.
|
||||
+ new flavor of the ncurses library provides rudimentary
|
||||
support for POSIX threads. Several functions are reentrant,
|
||||
but most require either a window-level or screen-level mutex.
|
||||
(This is API-compatible, but not ABI-compatible with the
|
||||
normal library).
|
||||
+ add NCURSES_OPAQUE symbol to curses.h, will use to make
|
||||
structs opaque in selected configurations.
|
||||
+ add NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS symbols to
|
||||
curses.h to make it simpler to tell if the extended functions
|
||||
and/or colors are declared.
|
||||
+ add wresize() to C++ binding
|
||||
+ eliminate fixed-buffer vsprintf() calls in C++ binding.
|
||||
+ add several functions to C++ binding which wrap C functions
|
||||
that pass a WINDOW* parameter.
|
||||
+ adapt mouse-handling code from menu library in form-library
|
||||
+ improve tracing for form library, showing created forms,
|
||||
fields, etc.
|
||||
+ make $NCURSES_NO_PADDING feature work for termcap interface .
|
||||
+ add check to trace-file open, if the given name is a
|
||||
directory, add ".log" to the name and try again.
|
||||
+ several new manpages: curs_legacy.3x, curs_memleaks.3x,
|
||||
curs_opaque.3x and curs_threads.3x
|
||||
* programs:
|
||||
+ add new test programs: chgat.c, demo_altkeys.c, echochar.c,
|
||||
foldkeys.c, movewindow.c, redraw.c, (noting that existing
|
||||
test programs also were modified to test additional
|
||||
features).
|
||||
+ modify tack to test extended capability function-key strings.
|
||||
+ modify toe to access termcap data, e.g., via cgetent()
|
||||
functions, or as a text file if those are not available.
|
||||
+ improve infocmp/tic -f option formatting.
|
||||
+ add toe -a option, to show all databases. This uses new
|
||||
private interfaces in the ncurses library for iterating
|
||||
through the list of databases.
|
||||
+ modify MKfallback.sh to use tic -x when constructing fallback
|
||||
tables to allow extended capabilities to be retrieved from a
|
||||
fallback entry.
|
||||
+ modified three test-programs to demonstrate the threading
|
||||
support in this version: ditto, rain, worm.
|
||||
+ several new test-programs: demo_panels, dots_mvcur,
|
||||
inch_wide, inchs, key_name, key_names, savescreen,
|
||||
savescreen.sh test_arrays, test_get_wstr, test_getstr,
|
||||
test_instr, test_inwstr and test_opaque.
|
||||
+ add adacurses-config to the Ada95 install.
|
||||
+ modify tic -f option to format spaces as \s to prevent them
|
||||
from being lost when that is read back in unformatted
|
||||
strings.
|
||||
+ The tack program is now distributed separately from ncurses.
|
||||
* terminal database
|
||||
+ add terminfo entries for xfce terminal (xfce) and multi gnome
|
||||
terminal (mgt)
|
||||
+ add nsterm-16color entry
|
||||
+ updated mlterm terminfo entry
|
||||
+ add kon, kon2 and jfbterm terminfo entry
|
||||
+ remove invis capability from klone+sgr, mainly used by linux
|
||||
entry, since it does not really do this
|
||||
+ add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
|
||||
+ add shifted up/down arrow codes to xterm-new as kind/kri
|
||||
strings
|
||||
+ add hpterm-color terminfo entry
|
||||
+ add 256color variants of terminfo entries for programs which
|
||||
are reported to implement this feature
|
||||
+ correct order of use-clauses in rxvt-basic entry which made
|
||||
codes for f1-f4 vt100-style rather than vt220-style.
|
||||
+ added entries:
|
||||
o Eterm-256color, Eterm-88color and rxvt-88color
|
||||
o aterm
|
||||
o konsole-256color
|
||||
o mrxvt
|
||||
o screen.mlterm
|
||||
o screen.rxvt
|
||||
o teraterm4.59 is now the primary primary teraterm entry,
|
||||
renamed original to teraterm2.3
|
||||
o 9term terminal
|
||||
o Newbury Data entries
|
||||
+ updated/improved entries:
|
||||
o gnome to version 2.22.3
|
||||
o h19, z100
|
||||
o konsole to version 1.6.6
|
||||
o mlterm, mlterm+pcfkeys
|
||||
o xterm, and building-blocks for function-keys to [3]xterm
|
||||
patch #230.
|
||||
|
||||
Major bug fixes:
|
||||
* correct a typo in configure --with-bool option for the case where
|
||||
--without-cxx is used.
|
||||
* move assignment from environment variable ESCDELAY from initscr()
|
||||
down to newterm() so the environment variable affects timeouts for
|
||||
terminals opened with newterm() as well.
|
||||
* modify werase to clear multicolumn characters that extend into a
|
||||
derived window.
|
||||
* modify wchgat() to mark updated cells as changed so a refresh will
|
||||
repaint those cells.
|
||||
* correct logic in wadd_wch() and wecho_wch(), which did not guard
|
||||
against passing the multi-column attribute into a call on
|
||||
waddch(), e.g., using data returned by win_wch()
|
||||
* fix redrawing of windows other than stdscr using wredrawln() by
|
||||
touching the corresponding rows in curscr.
|
||||
* reduce memory leaks in repeated calls to tgetent() by remembering
|
||||
the last TERMINAL* value allocated to hold the corresponding data
|
||||
and freeing that if the tgetent() result buffer is the same as the
|
||||
previous call.
|
||||
* modify read_termtype() so the term_names data is always allocated
|
||||
as part of the str_table, a better fix for a memory leak.
|
||||
* fix wins_nwstr(), which did not handle single-column non-8bit
|
||||
codes.
|
||||
* modify wbkgrnd() to avoid clearing the A_CHARTEXT attribute bits
|
||||
since those record the state of multicolumn characters.
|
||||
* improve SIGWINCH handling by postponing its effect during
|
||||
newterm(), etc., when allocating screens.
|
||||
* remove 970913 feature for copying subwindows as they are moved in
|
||||
mvwin().
|
||||
* add checks in waddchnstr() and wadd_wchnstr() to stop copying when
|
||||
a null character is found.
|
||||
* add some checks to ensure current position is within scrolling
|
||||
region before scrolling on a new line.
|
||||
* add a workaround to ACS mapping to allow applications such as
|
||||
test/blue.c to use the "PC ROM" characters by masking them with
|
||||
A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
|
||||
of legacy coding.
|
||||
* add logic to tic for cancelling strings in user-defined
|
||||
capabilities (this is needed for current konsole terminfo entry).
|
||||
* modify mk-1st.awk so the generated makefile rules for linking or
|
||||
installing shared libraries do not first remove the library, in
|
||||
case it is in use, e.g., libncurses.so by /bin/sh.
|
||||
* correct check for notimeout() in wgetch().
|
||||
* fix a sign-extension bug in infocmp's repair_acsc() function.
|
||||
* change winnstr() to stop at the end of the line.
|
||||
* make Ada95 demo_panels() example work.
|
||||
* fix for adding a non-spacing character at the beginning of a line.
|
||||
* fill in extended-color pair to make colors work for
|
||||
wide-characters using extended-colors.
|
||||
* improve refresh of window on top of multi-column characters,
|
||||
taking into account split characters on left/right window
|
||||
boundaries.
|
||||
* modify win_wchnstr() to ensure that only a base cell is returned
|
||||
for each multi-column character.
|
||||
* improve waddch() and winsch() handling of EILSEQ from mbrtowc() by
|
||||
using unctrl() to display illegal bytes rather than trying to
|
||||
append further bytes to make up a valid sequence.
|
||||
* restore curs_set() state after endwin()/refresh()
|
||||
* modify keyname() to use "^X" form only if meta() has been called,
|
||||
or if keyname() is called without initializing curses, e.g., via
|
||||
initscr() or newterm().
|
||||
* modify unctrl() to check codes in 128-255 range versus isprint().
|
||||
If they are not printable, and locale was set, use a "M-" or "~"
|
||||
sequence.
|
||||
* improve resizeterm() by moving ripped-off lines, and repainting
|
||||
the soft-keys.
|
||||
* modify form library to accept control characters such as newline
|
||||
in set_field_buffer(), which is compatible with Solaris.
|
||||
* use NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc.,
|
||||
to make those work properly with the --enable-ext-mouse
|
||||
configuration
|
||||
* correct some functions in Ada95 binding which were using return
|
||||
value from C where none was returned.
|
||||
* reviewed/fixed issues reported by Coverity and Klocwork tools.
|
||||
|
||||
Portability:
|
||||
* configure script:
|
||||
+ new options:
|
||||
|
||||
--with-hashed-db
|
||||
Use Berkeley hashed database for storing terminfo
|
||||
data rather than storing each compiled entry in a
|
||||
separate binary file within a directory tree.
|
||||
--disable-big-strings
|
||||
control whether static string tables are generated
|
||||
as single large strings (to improve startup
|
||||
performance), or as array of individual strings.
|
||||
|
||||
--without-dlsym
|
||||
Do not use dlsym() to load GPM dynamically.
|
||||
--disable-relink
|
||||
control whether shared libraries are relinked
|
||||
(during install) when rpath is enabled.
|
||||
|
||||
--with-valgrind
|
||||
Simplify building for testing with valgrind.
|
||||
--disable-tic-depends
|
||||
make explicit whether tic library depends on
|
||||
ncurses/ncursesw library.
|
||||
|
||||
--enable-wgetch-events
|
||||
Compile with experimental wgetch-events code.
|
||||
--enable-mixed-case
|
||||
override the configure script's check if the
|
||||
filesystem supports mixed-case filenames. This
|
||||
allows one to control how the terminal database
|
||||
maps to the filesystem. For filesystems that do not
|
||||
support mixed-case, the library uses generate
|
||||
2-character (hexadecimal) codes for the lower-level
|
||||
of the filesystem terminfo database
|
||||
|
||||
--enable-signed-char
|
||||
Store booleans in "signed char" rather than "char".
|
||||
--enable-reentrant
|
||||
builds a different flavor of the ncurses library
|
||||
(ncursest) which improves reentrant use of the
|
||||
library by reducing global and static variables
|
||||
(see the "--with-pthread" option for the threaded
|
||||
support).
|
||||
|
||||
--enable-weak-symbols
|
||||
use weak-symbols for linking to the POSIX thread
|
||||
library, and use the same soname for the ncurses
|
||||
shared library as the normal library (caveat: the
|
||||
ABI is for the threaded library, which makes global
|
||||
data accessed via functions).
|
||||
|
||||
--with-pthread
|
||||
build with the POSIX thread library (tested with
|
||||
AIX, Linux, FreeBSD, OpenBSD, HPUX, IRIX64,
|
||||
Solaris, Tru64).
|
||||
|
||||
--with-ticlib
|
||||
build/install the tic-support functions in a
|
||||
separate library
|
||||
|
||||
+ improved options:
|
||||
|
||||
--disable-largefile
|
||||
make the option work both ways.
|
||||
--enable-ext-colors
|
||||
requires the wide-character configuration.
|
||||
|
||||
--with-gpm
|
||||
The option now accepts a parameter, i.e., the name
|
||||
of the dynamic GPM library to load via dlopen()
|
||||
--with-chtype
|
||||
ignore option value "unsigned" is always added to
|
||||
the type in curses.h; do the same for
|
||||
--with-mmask-t.
|
||||
|
||||
--disable-symlinks
|
||||
The option now allows one to disable symlink() in
|
||||
tic even when link() does not work.
|
||||
--with-dmalloc
|
||||
build-fix for redefinition of strndup.
|
||||
|
||||
--with-hashed-db
|
||||
accepts a parameter which is the install-prefix of
|
||||
a given Berkeley Database.
|
||||
|
||||
--with-hashed-db
|
||||
the $LIBS environment variable overrides the search
|
||||
for the db library.
|
||||
|
||||
--without-hashed-db
|
||||
assumed when "--disable-database" is used.
|
||||
|
||||
* other configure/build issues:
|
||||
+ remove special case for Darwin in CF_XOPEN_SOURCE configure
|
||||
macro.
|
||||
+ add configure check to ensure that SIGWINCH is defined on
|
||||
platforms such as OS X which exclude that when _XOPEN_SOURCE,
|
||||
etc., are defined
|
||||
+ use ld's -search_paths_first option on Darwin to work around
|
||||
odd search rules on that platform.
|
||||
+ improve ifdef's for _POSIX_VDISABLE in tset to work with Mac
|
||||
OS X.
|
||||
+ modify configure script to ensure that if the C compiler is
|
||||
used rather than the loader in making shared libraries, the
|
||||
$(CFLAGS) variable is also used.
|
||||
+ use ${CC} rather than ${LD} in shared library rules for
|
||||
IRIX64, Solaris to help ensure that initialization sections
|
||||
are provided for extra linkage requirements, e.g., of C++
|
||||
applications.
|
||||
+ improve some shared-library configure scripting for Linux,
|
||||
FreeBSD and NetBSD to make --with-shlib-version work.
|
||||
+ split up dependency of names.c and codes.c in
|
||||
ncurses/Makefile to work with parallel make.
|
||||
+ modify MKlib_gen.sh to change preprocessor-expanded _Bool
|
||||
back to bool.
|
||||
+ modify progs/Makefile.in to make tput init work properly with
|
||||
cygwin, i.e., do not pass a .exe in the reference string used
|
||||
in check_aliases.
|
||||
+ build-fixes for LynxOS
|
||||
+ modify shared-library rules to allow FreeBSD 3.x to use
|
||||
rpath.
|
||||
+ build-fix for FreeBSD "contemporary" TTY interface.
|
||||
+ build-fixes for AIX with libtool.
|
||||
+ build-fixes for Darwin and libtool.
|
||||
+ modify BeOS-specific ifdef's to build on Haiku.
|
||||
+ corrected gcc options for building shared libraries on
|
||||
Solaris and IRIX64.
|
||||
+ change shared-library configuration for OpenBSD, make rpath
|
||||
work.
|
||||
+ build-fixes for using libutf8, e.g., on OpenBSD 3.7
|
||||
+ add "-e" option in ncurses/Makefile.in when generating
|
||||
source-files to force earlier exit if the build environment
|
||||
fails unexpectedly.
|
||||
+ add support for shared libraries for QNX.
|
||||
+ change delimiter in MKlib_gen.sh from '%' to '@', to avoid
|
||||
substitution by IBM xlc to '#' as part of its extensions to
|
||||
digraphs.
|
||||
* library:
|
||||
+ ignore wide-acs line-drawing characters that wcwidth() claims
|
||||
are not one-column. This is a workaround for Solaris' broken
|
||||
locale support.
|
||||
+ reduce name-pollution in term.h by removing #define's for
|
||||
HAVE_xxx symbols.
|
||||
+ fix #ifdef in c++/internal.h for QNX 6.1
|
||||
+ rewrite wrapper for wcrtomb(), making it work on Solaris.
|
||||
This is used in the form library to determine the length of
|
||||
the buffer needed by field_buffer.
|
||||
+ add/use configure script macro CF_SIG_ATOMIC_T, use the
|
||||
corresponding type for data manipulated by signal handlers.
|
||||
+ set locale in misc/ncurses-config.in since it uses a range
|
||||
+ disable GPM mouse support when $TERM does not happen to
|
||||
contain "linux", since Gpm_Open() no longer limits its
|
||||
assertion to terminals that it might handle, e.g., within
|
||||
"screen" in xterm.
|
||||
+ reset mouse file-descriptor when unloading GPM library.
|
||||
* test programs:
|
||||
+ modify test/configure script to allow building test programs
|
||||
with PDCurses/X11.
|
||||
+ modified test programs to allow some to work with NetBSD
|
||||
curses. Several do not because NetBSD curses implements a
|
||||
subset of X/Open curses, and also lacks much of SVr4
|
||||
additions. But it is enough for comparison.
|
||||
+ improved test/configure to build test/ncurses on HPUX 11
|
||||
using the vendor curses.
|
||||
+ change configure script to produce test/Makefile from data
|
||||
file.
|
||||
+ update test programs to build/work with various UNIX curses
|
||||
for comparisons.
|
||||
|
||||
Features of Ncurses
|
||||
|
||||
@ -271,6 +283,8 @@
|
||||
the use of function keys, e.g., disabling the ncurses KEY_MOUSE,
|
||||
or by defining more than one control sequence to map to a given
|
||||
key code.
|
||||
* Support for 256-color terminals, such as modern xterm, when
|
||||
configured using the --enable-ext-colors option.
|
||||
* Support for 16-color terminals, such as aixterm and modern xterm.
|
||||
* Better cursor-movement optimization. The package now features a
|
||||
cursor-local-movement computation more efficient than either BSD's
|
||||
@ -342,49 +356,45 @@
|
||||
|
||||
cdk
|
||||
Curses Development Kit
|
||||
[3]http://invisible-island.net/cdk/
|
||||
[4]http://www.vexus.ca/products/CDK/
|
||||
[4]http://invisible-island.net/cdk/
|
||||
[5]http://www.vexus.ca/products/CDK/
|
||||
|
||||
ded
|
||||
directory-editor
|
||||
[5]http://invisible-island.net/ded/
|
||||
[6]http://invisible-island.net/ded/
|
||||
|
||||
dialog
|
||||
the underlying application used in Slackware's setup, and the
|
||||
basis for similar applications on GNU/Linux.
|
||||
[6]http://invisible-island.net/dialog/
|
||||
[7]http://invisible-island.net/dialog/
|
||||
|
||||
lynx
|
||||
the character-screen WWW browser
|
||||
[7]http://lynx.isc.org/release/
|
||||
[8]http://lynx.isc.org/release/
|
||||
|
||||
Midnight Commander
|
||||
file manager
|
||||
[8]http://www.ibiblio.org/mc/
|
||||
[9]http://www.ibiblio.org/mc/
|
||||
|
||||
mutt
|
||||
mail utility
|
||||
[9]http://www.mutt.org/
|
||||
[10]http://www.mutt.org/
|
||||
|
||||
ncftp
|
||||
file-transfer utility
|
||||
[10]http://www.ncftp.com/
|
||||
[11]http://www.ncftp.com/
|
||||
|
||||
nvi
|
||||
New vi versions 1.50 are able to use ncurses versions 1.9.7 and
|
||||
later.
|
||||
[11]http://www.bostic.com/vi/
|
||||
[12]http://www.bostic.com/vi/
|
||||
|
||||
pinfo
|
||||
Lynx-like info browser.
|
||||
[12]http://dione.ids.pl/~pborys/software/pinfo/
|
||||
[13]https://alioth.debian.org/projects/pinfo/
|
||||
|
||||
tin
|
||||
newsreader, supporting color, MIME [13]http://www.tin.org/
|
||||
|
||||
vh-1.6
|
||||
Volks-Hypertext browser for the Jargon File
|
||||
[14]http://www.debian.org/Packages/unstable/text/vh.html
|
||||
newsreader, supporting color, MIME [14]http://www.tin.org/
|
||||
|
||||
as well as some that use ncurses for the terminfo support alone:
|
||||
|
||||
@ -402,7 +412,7 @@
|
||||
Who's Who and What's What
|
||||
|
||||
Zeyd Ben-Halim started it from a previous package pcurses, written by
|
||||
Pavel Curtis. Eric S. Raymond continued development. Juergen Pfeifer
|
||||
Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer
|
||||
wrote most of the form and menu libraries. Ongoing work is being done
|
||||
by [17]Thomas Dickey. Thomas Dickey acts as the maintainer for the
|
||||
Free Software Foundation, which holds the copyright on ncurses.
|
||||
@ -442,18 +452,18 @@ References
|
||||
|
||||
1. ftp://ftp.gnu.org/gnu/ncurses/
|
||||
2. ftp://invisible-island.net/ncurses/
|
||||
3. http://invisible-island.net/cdk/
|
||||
4. http://www.vexus.ca/products/CDK/
|
||||
5. http://invisible-island.net/ded/
|
||||
6. http://invisible-island.net/dialog/
|
||||
7. http://lynx.isc.org/release/
|
||||
8. http://www.ibiblio.org/mc/
|
||||
9. http://www.mutt.org/
|
||||
10. http://www.ncftp.com/
|
||||
11. http://www.bostic.com/vi/
|
||||
12. http://dione.ids.pl/~pborys/software/pinfo/
|
||||
13. http://www.tin.org/
|
||||
14. http://www.debian.org/Packages/unstable/text/vh.html
|
||||
3. http://invisible-island.net/xterm/xterm.log.html#xterm_230
|
||||
4. http://invisible-island.net/cdk/
|
||||
5. http://www.vexus.ca/products/CDK/
|
||||
6. http://invisible-island.net/ded/
|
||||
7. http://invisible-island.net/dialog/
|
||||
8. http://lynx.isc.org/release/
|
||||
9. http://www.ibiblio.org/mc/
|
||||
10. http://www.mutt.org/
|
||||
11. http://www.ncftp.com/
|
||||
12. http://www.bostic.com/vi/
|
||||
13. https://alioth.debian.org/projects/pinfo/
|
||||
14. http://www.tin.org/
|
||||
15. http://alioth.debian.org/projects/minicom/
|
||||
16. http://invisible-island.net/vile/
|
||||
17. mailto:dickey@invisible-island.net
|
||||
|
148
INSTALL
148
INSTALL
@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------------------
|
||||
-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. --
|
||||
-- Copyright (c) 1998-2006,2008 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: INSTALL,v 1.124 2008/03/29 18:07:32 tom Exp $
|
||||
-- $Id: INSTALL,v 1.135 2008/11/02 21:13:51 tom Exp $
|
||||
---------------------------------------------------------------------
|
||||
How to install Ncurses/Terminfo on your system
|
||||
---------------------------------------------------------------------
|
||||
@ -393,6 +393,18 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
Compile without scroll-hints code. This option is ignored when
|
||||
hashmap scrolling is configured, which is the default.
|
||||
|
||||
--disable-tic-depends
|
||||
When building shared libraries, normally the tic library is linked to
|
||||
depend upon the ncurses library (and in turn, on the term-library if
|
||||
the --with-termlib option was given). The tic- and term-libraries
|
||||
ABI does not depend on the --enable-widec option. Some packagers have
|
||||
used this to reduce the number of library files which are packaged
|
||||
by using only one copy of those libraries. To make this work properly,
|
||||
the tic library must be built without an explicit dependency on the
|
||||
ncurses (or ncursesw) library. Use this configure option to do that.
|
||||
For example
|
||||
configure --with-ticlib --with-shared --disable-tic-depends
|
||||
|
||||
--disable-tparm-varargs
|
||||
Portable programs should call tparm() using the fixed-length parameter
|
||||
list documented in X/Open. ncurses provides varargs support for this
|
||||
@ -572,6 +584,13 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
--enable-warnings
|
||||
Turn on GCC compiler warnings. There should be only a few.
|
||||
|
||||
--enable-weak-symbols
|
||||
If the --with-pthread option is set, check if the compiler supports
|
||||
weak-symbols. If it does, then name the thread-capable library without
|
||||
the "t" (libncurses rather than libncursest), and provide for
|
||||
dynamically loading the pthreads entrypoints at runtime. This allows
|
||||
one to reduce the number of library files for ncurses.
|
||||
|
||||
--enable-wgetch-events
|
||||
Compile with experimental wgetch-events code. See ncurses/README.IZ
|
||||
|
||||
@ -598,6 +617,9 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
Normally this is the same as the release version; some ports have
|
||||
special requirements for compatibility.
|
||||
|
||||
This option does not affect linking with libtool, which uses the
|
||||
release major/minor numbers.
|
||||
|
||||
--with-ada-compiler=CMD
|
||||
Specify the Ada95 compiler command (default "gnatmake")
|
||||
|
||||
@ -625,20 +647,32 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
to do this if the target compiler has unusual flags which confuse the
|
||||
host compiler.
|
||||
|
||||
You can also set the environment variable $BUILD_CFLAGS rather than
|
||||
use this option.
|
||||
|
||||
--with-build-cppflags=XXX
|
||||
If cross-compiling, specify the host C preprocessor-flags. You might
|
||||
need to do this if the target compiler has unusual flags which confuse
|
||||
the host compiler.
|
||||
|
||||
You can also set the environment variable $BUILD_CPPFLAGS rather than
|
||||
use this option.
|
||||
|
||||
--with-build-ldflags=XXX
|
||||
If cross-compiling, specify the host linker-flags. You might need to
|
||||
do this if the target linker has unusual flags which confuse the host
|
||||
compiler.
|
||||
|
||||
You can also set the environment variable $BUILD_LDFLAGS rather than
|
||||
use this option.
|
||||
|
||||
--with-build-libs=XXX
|
||||
If cross-compiling, the host libraries. You might need to do this if
|
||||
the target environment requires unusual libraries.
|
||||
|
||||
You can also set the environment variable $BUILD_LIBS rather than
|
||||
use this option.
|
||||
|
||||
--with-caps=XXX
|
||||
Specify an alternate terminfo capabilities file, which makes the
|
||||
configure script look for "include/Caps.XXX". A few systems, e.g.,
|
||||
@ -795,6 +829,14 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
may be unsigned. Use this option if you need to preserve compatibility
|
||||
with 64-bit executables.
|
||||
|
||||
--with-normal
|
||||
Generate normal (i.e., static) libraries (default).
|
||||
|
||||
Note: on Linux, the configure script will attempt to use the GPM
|
||||
library via the dlsym() function call. Use --without-dlsym to disable
|
||||
this feature, or --without-gpm, depending on whether you wish to use
|
||||
GPM.
|
||||
|
||||
--with-ospeed=TYPE
|
||||
Override type of ospeed variable, which is part of the termcap
|
||||
compatibility interface. In termcap, this is a 'short', which works
|
||||
@ -808,14 +850,6 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
those using termcap, do not use the higher speeds. Your application
|
||||
(or system, in general) may or may not.
|
||||
|
||||
--with-normal
|
||||
Generate normal (i.e., static) libraries (default).
|
||||
|
||||
Note: on Linux, the configure script will attempt to use the GPM
|
||||
library via the dlsym() function call. Use --without-dlsym to disable
|
||||
this feature, or --without-gpm, depending on whether you wish to use
|
||||
GPM.
|
||||
|
||||
--with-profile
|
||||
Generate profile-libraries These are named by adding "_p" to the root,
|
||||
e.g., libncurses_p.a
|
||||
@ -898,6 +932,12 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
library. As in termlib, there is no ABI difference between the
|
||||
"wide" libticw.so and libtic.so
|
||||
|
||||
NOTE: Overriding the name of the tic library may be useful if you are
|
||||
also using the --with-termlib option to rename libtinfo. If you are
|
||||
not doing that, renaming the tic library can result in conflicting
|
||||
library dependencies for tic and other programs built with the tic
|
||||
library.
|
||||
|
||||
--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.
|
||||
@ -961,6 +1001,94 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
|
||||
you may encounter when building a system with different versions of
|
||||
ncurses:
|
||||
|
||||
5.7 (November 2, 2008)
|
||||
Interface changes:
|
||||
|
||||
+ generate linkable stubs for some macros:
|
||||
getattrs
|
||||
|
||||
+ Add new library configuration for tic-library (the non-curses portion
|
||||
of the ncurses library used for the tic program as well as some
|
||||
others such as tack. There is no API change, but makefiles would be
|
||||
changed to use the tic-library built separately.
|
||||
|
||||
tack, distributed separately from ncurses, uses some of the internal
|
||||
_nc_XXX functions, which are declared in the tic.h header file.
|
||||
|
||||
The reason for providing this separate library is that none of the
|
||||
functions in it are suitable for threaded applications.
|
||||
|
||||
+ Add new library configuration (ncursest, ncurseswt) which provides
|
||||
rudimentary support for POSIX threads. This introduces opaque
|
||||
access functions to the WINDOW structure and adds a parameter to
|
||||
several internal functions.
|
||||
|
||||
+ move most internal variables (except tic-library) into data blocks
|
||||
_nc_globals and _nc_prescreen to simplify analysis. Those were
|
||||
globally accessible, but since they were not part of the documented
|
||||
API, there is no ABI change.
|
||||
|
||||
+ changed static tables of strings to be indices into long strings, to
|
||||
improve startup performance. This changes parameter lists for some
|
||||
of the internal functions.
|
||||
|
||||
Added extensions:
|
||||
|
||||
+ add NCURSES_OPAQUE definition in curses.h to control whether internal
|
||||
details of the WINDOW structure are visible to an application. This
|
||||
is always defined when the threaded library is built, and is optional
|
||||
otherwise. New functions for this: is_cleared, is_idcok, is_idlok,
|
||||
is_immedok, is_keypad, is_leaveok, is_nodelay, is_notimeout,
|
||||
is_scrollok, is_syncok, wgetparent and wgetscrreg.
|
||||
|
||||
+ the threaded library (ncursest) also disallows direct updating of
|
||||
global curses-level variables, providing functions (via macros) for
|
||||
obtaining their value. A few of those variables can be modified by
|
||||
the application, using new functions: set_escdelay, set_tabsize
|
||||
|
||||
+ added functions use_window() and use_screen() which wrap a mutex
|
||||
(if threading is configured) around a call to a user-supplied
|
||||
function.
|
||||
|
||||
Added internal functions:
|
||||
_nc_get_alias_table
|
||||
_nc_get_screensize
|
||||
_nc_keyname
|
||||
_nc_screen_of
|
||||
_nc_set_no_padding
|
||||
_nc_tracechar
|
||||
_nc_tracemouse
|
||||
_nc_unctrl
|
||||
_nc_ungetch
|
||||
|
||||
These are used for leak-testing, and are stubs for
|
||||
ABI compatibility when ncurses is not configured for that
|
||||
using the --disable-leaks configure script option:
|
||||
|
||||
_nc_free_and_exit
|
||||
_nc_leaks_tinfo
|
||||
|
||||
Removed internal functions:
|
||||
none
|
||||
|
||||
Modified internal functions:
|
||||
_nc_fifo_dump
|
||||
_nc_find_entry
|
||||
_nc_handle_sigwinch
|
||||
_nc_init_keytry
|
||||
_nc_keypad
|
||||
_nc_locale_breaks_acs
|
||||
_nc_timed_wait
|
||||
_nc_update_screensize
|
||||
|
||||
Use new typedef TRIES to replace "struct tries":
|
||||
|
||||
_nc_add_to_try
|
||||
_nc_expand_try
|
||||
_nc_remove_key
|
||||
_nc_remove_string
|
||||
_nc_trace_tries
|
||||
|
||||
5.6 (December 17, 2006)
|
||||
Interface changes:
|
||||
|
||||
|
5
MANIFEST
5
MANIFEST
@ -349,8 +349,10 @@
|
||||
./doc/html/man/curs_instr.3x.html
|
||||
./doc/html/man/curs_inwstr.3x.html
|
||||
./doc/html/man/curs_kernel.3x.html
|
||||
./doc/html/man/curs_legacy.3x.html
|
||||
./doc/html/man/curs_mouse.3x.html
|
||||
./doc/html/man/curs_move.3x.html
|
||||
./doc/html/man/curs_opaque.3x.html
|
||||
./doc/html/man/curs_outopts.3x.html
|
||||
./doc/html/man/curs_overlay.3x.html
|
||||
./doc/html/man/curs_pad.3x.html
|
||||
@ -364,6 +366,7 @@
|
||||
./doc/html/man/curs_termattrs.3x.html
|
||||
./doc/html/man/curs_termcap.3x.html
|
||||
./doc/html/man/curs_terminfo.3x.html
|
||||
./doc/html/man/curs_threads.3x.html
|
||||
./doc/html/man/curs_touch.3x.html
|
||||
./doc/html/man/curs_trace.3x.html
|
||||
./doc/html/man/curs_util.3x.html
|
||||
@ -555,6 +558,7 @@
|
||||
./man/curs_inwstr.3x
|
||||
./man/curs_kernel.3x
|
||||
./man/curs_legacy.3x
|
||||
./man/curs_memleaks.3x
|
||||
./man/curs_mouse.3x
|
||||
./man/curs_move.3x
|
||||
./man/curs_opaque.3x
|
||||
@ -700,6 +704,7 @@
|
||||
./misc/ncurses-config.in
|
||||
./misc/ncurses.def
|
||||
./misc/ncurses.ref
|
||||
./misc/ncurses.supp
|
||||
./misc/panel.def
|
||||
./misc/panel.ref
|
||||
./misc/run_tic.in
|
||||
|
238
NEWS
238
NEWS
@ -25,7 +25,7 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: NEWS,v 1.1233 2008/05/03 23:14:39 tom Exp $
|
||||
-- $Id: NEWS,v 1.1320 2008/11/02 00:56:22 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This is a log of changes that ncurses has gone through since Zeyd started
|
||||
@ -45,6 +45,238 @@ 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.
|
||||
|
||||
20081102 5.7 release for upload to ftp.gnu.org
|
||||
|
||||
20081025
|
||||
+ add a manpage to discuss memory leaks.
|
||||
+ add support for shared libraries for QNX (other than libtool, which
|
||||
does not work well on that platform).
|
||||
+ build-fix for QNX C++ binding.
|
||||
|
||||
20081018
|
||||
+ build-fixes for OS/2 EMX.
|
||||
+ modify form library to accept control characters such as newline
|
||||
in set_field_buffer(), which is compatible with Solaris (report by
|
||||
Nit Khair).
|
||||
+ modify configure script to assume --without-hashed-db when
|
||||
--disable-database is used.
|
||||
+ add "-e" option in ncurses/Makefile.in when generating source-files
|
||||
to force earlier exit if the build environment fails unexpectedly
|
||||
(prompted by patch by Adrian Bunk).
|
||||
+ change configure script to use CF_UTF8_LIB, improved variant of
|
||||
CF_LIBUTF8.
|
||||
|
||||
20081012
|
||||
+ add teraterm4.59 terminfo entry, use that as primary teraterm entry, rename
|
||||
original to teraterm2.3 -TD
|
||||
+ update "gnome" terminfo to 2.22.3 -TD
|
||||
+ update "konsole" terminfo to 1.6.6, needs today's fix for tic -TD
|
||||
+ add "aterm" terminfo -TD
|
||||
+ add "linux2.6.26" terminfo -TD
|
||||
+ add logic to tic for cancelling strings in user-defined capabilities,
|
||||
overlooked til now.
|
||||
|
||||
20081011
|
||||
+ update html documentation.
|
||||
+ add -m and -s options to test/keynames.c and test/key_names.c to test
|
||||
the meta() function with keyname() or key_name(), respectively.
|
||||
+ correct return value of key_name() on error; it is null.
|
||||
+ document some unresolved issues for rpath and pthreads in TO-DO.
|
||||
+ fix a missing prototype for ioctl() on OpenBSD in tset.c
|
||||
+ add configure option --disable-tic-depends to make explicit whether
|
||||
tic library depends on ncurses/ncursesw library, amends change from
|
||||
20080823 (prompted by Debian #501421).
|
||||
|
||||
20081004
|
||||
+ some build-fixes for configure --disable-ext-funcs (incomplete, but
|
||||
works for C/C++ parts).
|
||||
+ improve configure-check for awks unable to handle large strings, e.g.
|
||||
AIX 5.1 whose awk silently gives up on large printf's.
|
||||
|
||||
20080927
|
||||
+ fix build for --with-dmalloc by workaround for redefinition of
|
||||
strndup between string.h and dmalloc.h
|
||||
+ fix build for --disable-sigwinch
|
||||
+ add environment variable NCURSES_GPM_TERMS to allow override to use
|
||||
GPM on terminals other than "linux", etc.
|
||||
+ disable GPM mouse support when $TERM does not happen to contain
|
||||
"linux", since Gpm_Open() no longer limits its assertion to terminals
|
||||
that it might handle, e.g., within "screen" in xterm.
|
||||
+ reset mouse file-descriptor when unloading GPM library (report by
|
||||
Miroslav Lichvar).
|
||||
+ fix build for --disable-leaks --enable-widec --with-termlib
|
||||
> patch by Juergen Pfeifer:
|
||||
+ use improved initialization for soft-label keys in Ada95 sample code.
|
||||
+ discard internal symbol _nc_slk_format (unused since 20080112).
|
||||
+ move call of slk_paint_info() from _nc_slk_initialize() to
|
||||
slk_intern_refresh(), improving initialization.
|
||||
|
||||
20080925
|
||||
+ fix bug in mouse code for GPM from 20080920 changes (reported in
|
||||
Debian #500103, also Miroslav Lichvar).
|
||||
|
||||
20080920
|
||||
+ fix shared-library rules for cygwin with tic- and tinfo-libraries.
|
||||
+ fix a memory leak when failure to connect to GPM.
|
||||
+ correct check for notimeout() in wgetch() (report on linux.redhat
|
||||
newsgroup by FurtiveBertie).
|
||||
+ add an example warning-suppression file for valgrind,
|
||||
misc/ncurses.supp (based on example from Reuben Thomas)
|
||||
|
||||
20080913
|
||||
+ change shared-library configuration for OpenBSD, make rpath work.
|
||||
+ build-fixes for using libutf8, e.g., on OpenBSD 3.7
|
||||
|
||||
20080907
|
||||
+ corrected fix for --enable-weak-symbols (report by Frederic L W
|
||||
Meunier).
|
||||
|
||||
20080906
|
||||
+ corrected gcc options for building shared libraries on IRIX64.
|
||||
+ add configure check for awk programs unable to handle big-strings,
|
||||
use that to improve the default for --enable-big-strings option.
|
||||
+ makefile-fixes for --enable-weak-symbols (report by Frederic L W
|
||||
Meunier).
|
||||
+ update test/configure script.
|
||||
+ adapt ifdef's from library to make test/view.c build when mbrtowc()
|
||||
is unavailable, e.g., with HPUX 10.20.
|
||||
+ add configure check for wcsrtombs, mbsrtowcs, which are used in
|
||||
test/ncurses.c, and use wcstombs, mbstowcs instead if available,
|
||||
fixing build of ncursew for HPUX 11.00
|
||||
|
||||
20080830
|
||||
+ fixes to make Ada95 demo_panels() example work.
|
||||
+ modify Ada95 'rain' test program to accept keyboard commands like the
|
||||
C-version.
|
||||
+ modify BeOS-specific ifdef's to build on Haiku (patch by Scott
|
||||
Mccreary).
|
||||
+ add configure-check to see if the std namespace is legal for cerr
|
||||
and endl, to fix a build issue with Tru64.
|
||||
+ consistently use NCURSES_BOOL in lib_gen.c
|
||||
+ filter #line's from lib_gen.c
|
||||
+ change delimiter in MKlib_gen.sh from '%' to '@', to avoid
|
||||
substitution by IBM xlc to '#' as part of its extensions to digraphs.
|
||||
+ update config.guess, config.sub from
|
||||
http://savannah.gnu.org/projects/config
|
||||
(caveat - its maintainer removed support for older Linux systems).
|
||||
|
||||
20080823
|
||||
+ modify configure check for pthread library to work with OSF/1 5.1,
|
||||
which uses #define's to associate its header and library.
|
||||
+ use pthread_mutexattr_init() for initializing pthread_mutexattr_t,
|
||||
makes threaded code work on HPUX 11.23
|
||||
+ fix a bug in demo_menus in freeing menus (cf: 20080804).
|
||||
+ modify configure script for the case where tic library is used (and
|
||||
possibly renamed) to remove its dependency upon ncurses/ncursew
|
||||
library (patch by Dr Werner Fink).
|
||||
+ correct manpage for menu_fore() which gave wrong default for
|
||||
the attribute used to display a selected entry (report by Mike Gran).
|
||||
+ add Eterm-256color, Eterm-88color and rxvt-88color (prompted by
|
||||
Debian #495815) -TD
|
||||
|
||||
20080816
|
||||
+ add configure option --enable-weak-symbols to turn on new feature.
|
||||
+ add configure-check for availability of weak symbols.
|
||||
+ modify linkage with pthread library to use weak symbols so that
|
||||
applications not linked to that library will not use the mutexes,
|
||||
etc. This relies on gcc, and may be platform-specific (patch by Dr
|
||||
Werner Fink).
|
||||
+ add note to INSTALL to document limitation of renaming of tic library
|
||||
using the --with-ticlib configure option (report by Dr Werner Fink).
|
||||
+ document (in manpage) why tputs does not detect I/O errors (prompted
|
||||
by comments by Samuel Thibault).
|
||||
+ fix remaining warnings from Klocwork report.
|
||||
|
||||
20080804
|
||||
+ modify _nc_panelhook() data to account for a permanent memory leak.
|
||||
+ fix memory leaks in test/demo_menus
|
||||
+ fix most warnings from Klocwork tool (report by Larry Zhou).
|
||||
+ modify configure script CF_XOPEN_SOURCE macro to add case for
|
||||
"dragonfly" from xterm #236 changes.
|
||||
+ modify configure script --with-hashed-db to let $LIBS override the
|
||||
search for the db library (prompted by report by Samson Pierre).
|
||||
|
||||
20080726
|
||||
+ build-fixes for gcc 4.3.1 (changes to gnat "warnings", and C inlining
|
||||
thresholds).
|
||||
|
||||
20080713
|
||||
+ build-fix (reports by Christian Ebert, Funda Wang).
|
||||
|
||||
20080712
|
||||
+ compiler-warning fixes for Solaris.
|
||||
|
||||
20080705
|
||||
+ use NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc., to
|
||||
make those work properly with the "--enable-ext-mouse" configuration
|
||||
(cf: 20050205).
|
||||
+ improve documentation of build-cc options in INSTALL.
|
||||
+ work-around a bug in gcc 4.2.4 on AIX, which does not pass the
|
||||
-static/-dynamic flags properly to linker, causing test/bs to
|
||||
not link.
|
||||
|
||||
20080628
|
||||
+ correct some ifdef's needed for the broken-linker configuration.
|
||||
+ make debugging library's $BAUDRATE feature work for termcap
|
||||
interface.
|
||||
+ make $NCURSES_NO_PADDING feature work for termcap interface (prompted
|
||||
by comment on FreeBSD mailing list).
|
||||
+ add screen.mlterm terminfo entry -TD
|
||||
+ improve mlterm and mlterm+pcfkeys terminfo entries -TD
|
||||
|
||||
20080621
|
||||
+ regenerated html documentation.
|
||||
+ expand manpage description of parameters for form_driver() and
|
||||
menu_driver() (prompted by discussion with Adam Spragg).
|
||||
+ add null-pointer checks for cur_term in baudrate() and
|
||||
def_shell_mode(), def_prog_mode()
|
||||
+ fix some memory leaks in delscreen() and wide acs.
|
||||
|
||||
20080614
|
||||
+ modify test/ditto.c to illustrate multi-threaded use_screen().
|
||||
+ change CC_SHARED_OPTS from -KPIC to -xcode=pic32 for Solaris.
|
||||
+ add "-shared" option to MK_SHARED_LIB for gcc on Solaris (report
|
||||
by Poor Yorick).
|
||||
|
||||
20080607
|
||||
+ finish changes to wgetch(), making it switch as needed to the
|
||||
window's actual screen when calling wrefresh() and wgetnstr(). That
|
||||
allows wgetch() to get used concurrently in different threads with
|
||||
some minor restrictions, e.g., the application should not delete a
|
||||
window which is being used in a wgetch().
|
||||
+ simplify mutex's, combining the window- and screen-mutex's.
|
||||
|
||||
20080531
|
||||
+ modify wgetch() to use the screen which corresponds to its window
|
||||
parameter rather than relying on SP; some dependent functions still
|
||||
use SP internally.
|
||||
+ factor out most use of SP in lib_mouse.c, using parameter.
|
||||
+ add internal _nc_keyname(), replacing keyname() to associate with a
|
||||
particular SCREEN rather than the global SP.
|
||||
+ add internal _nc_unctrl(), replacing unctrl() to associate with a
|
||||
particular SCREEN rather than the global SP.
|
||||
+ add internal _nc_tracemouse(), replacing _tracemouse() to eliminate
|
||||
its associated global buffer _nc_globals.tracemse_buf now in SCREEN.
|
||||
+ add internal _nc_tracechar(), replacing _tracechar() to use SCREEN in
|
||||
preference to the global _nc_globals.tracechr_buf buffer.
|
||||
|
||||
20080524
|
||||
+ modify _nc_keypad() to make it switch temporarily as needed to the
|
||||
screen which must be updated.
|
||||
+ wrap cur_term variable to help make _nc_keymap() thread-safe, and
|
||||
always set the screen's copy of this variable in set_curterm().
|
||||
+ restore curs_set() state after endwin()/refresh() (report/patch
|
||||
Miroslav Lichvar)
|
||||
|
||||
20080517
|
||||
+ modify configure script to note that --enable-ext-colors and
|
||||
--enable-ext-mouse are not experimental, but extensions from
|
||||
the ncurses ABI 5.
|
||||
+ corrected manpage description of setcchar() (discussion with
|
||||
Emanuele Giaquinta).
|
||||
+ fix for adding a non-spacing character at the beginning of a line
|
||||
(report/patch by Miroslav Lichvar).
|
||||
|
||||
20080503
|
||||
+ modify screen.* terminfo entries using new screen+fkeys to fix
|
||||
overridden keys in screen.rxvt (Debian #478094) -TD
|
||||
@ -375,7 +607,7 @@ it is not possible to add this information.
|
||||
|
||||
20070609
|
||||
+ add test/key_name.c
|
||||
+ add stdscr cases to test/inchs.c and test_inch_wide.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().
|
||||
@ -596,7 +828,7 @@ it is not possible to add this information.
|
||||
shared libraries on Darwin (report by Michail Vidiassov).
|
||||
|
||||
20070210
|
||||
+ add test/inchs.c, test_inch_wide.c, to test win_wchnstr().
|
||||
+ 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
|
||||
|
15
TO-DO
15
TO-DO
@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------------------
|
||||
-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. --
|
||||
-- Copyright (c) 1998-2007,2008 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.49 2007/02/03 16:29:17 tom Exp $
|
||||
-- $Id: TO-DO,v 1.51 2008/10/11 19:22:27 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
SHORT-TERM TO-DO ITEMS:
|
||||
@ -61,6 +61,17 @@ Known Problems:
|
||||
+ vid_attr() should support the set_a_attributes (sgr1) string, but does not.
|
||||
There appear to be no terminals that require that functionality.
|
||||
|
||||
+ the configure --disable-ext-funcs option does not work for Ada95 tree.
|
||||
|
||||
+ the --with-pthread configuration builds for Cygwin, but does not work
|
||||
properly (test/worm.c shows all of the worms in the same location).
|
||||
|
||||
+ the --enable-rpath configure option builds for the corresponding platforms;
|
||||
however combining it with --with-ticlib and --with-termlib does not always
|
||||
produce libraries that can be run without setting environment variables.
|
||||
Building those with libtool does not work either. (This is a problem with
|
||||
the BSD platforms).
|
||||
|
||||
Portability (or lack thereof):
|
||||
|
||||
+ Users of older System V UNIXes (but not Solaris, and probably not SVr4) may
|
||||
|
546
aclocal.m4
vendored
546
aclocal.m4
vendored
@ -28,7 +28,7 @@ dnl***************************************************************************
|
||||
dnl
|
||||
dnl Author: Thomas E. Dickey 1995-on
|
||||
dnl
|
||||
dnl $Id: aclocal.m4,v 1.447 2008/04/12 23:49:55 tom Exp $
|
||||
dnl $Id: aclocal.m4,v 1.470 2008/10/25 22:15:32 tom Exp $
|
||||
dnl Macros used in NCURSES auto-configuration script.
|
||||
dnl
|
||||
dnl These macros are maintained separately from NCURSES. The copyright on
|
||||
@ -261,6 +261,28 @@ if test -n "$1" ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
|
||||
dnl ------------------
|
||||
dnl Append to a search-list for a nonstandard header/lib-file
|
||||
dnl $1 = the variable to return as result
|
||||
dnl $2 = the package name
|
||||
dnl $3 = the subdirectory, e.g., bin, include or lib
|
||||
dnl $4 = the directory under which we will test for subdirectories
|
||||
dnl $5 = a directory that we do not want $4 to match
|
||||
AC_DEFUN([CF_ADD_SUBDIR_PATH],
|
||||
[
|
||||
test "$4" != "$5" && \
|
||||
test -d "$4" && \
|
||||
ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
|
||||
test -n "$verbose" && echo " ... testing for $3-directories under $4"
|
||||
test -d $4/$3 && $1="[$]$1 $4/$3"
|
||||
test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
|
||||
test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
|
||||
test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
|
||||
test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
|
||||
}
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
|
||||
dnl ----------------
|
||||
dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
|
||||
@ -331,6 +353,30 @@ You have the following choices:
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_AWK_BIG_PRINTF version: 2 updated: 2008/10/04 17:16:18
|
||||
dnl -----------------
|
||||
dnl Check if awk can handle big strings using printf. Some older versions of
|
||||
dnl awk choke on large strings passed via "%s".
|
||||
dnl
|
||||
dnl $1 = desired string size
|
||||
dnl $2 = variable to set with result
|
||||
AC_DEFUN([CF_AWK_BIG_PRINTF],
|
||||
[
|
||||
case x$AWK in #(vi
|
||||
x)
|
||||
eval $2=no
|
||||
;;
|
||||
*) #(vi
|
||||
if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
|
||||
| $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
|
||||
eval $2=yes
|
||||
else
|
||||
eval $2=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
|
||||
dnl ------------
|
||||
dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
|
||||
@ -649,13 +695,14 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
|
||||
dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
|
||||
dnl --------------
|
||||
dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
|
||||
dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
|
||||
dnl ourselves.
|
||||
dnl
|
||||
dnl $1 = the name to check
|
||||
dnl $2 = the assumed type
|
||||
AC_DEFUN([CF_CHECK_ERRNO],
|
||||
[
|
||||
AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
|
||||
@ -666,7 +713,7 @@ AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <errno.h> ],
|
||||
[long x = (long) $1],
|
||||
ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
|
||||
[cf_cv_dcl_$1=yes],
|
||||
[cf_cv_dcl_$1=no])
|
||||
])
|
||||
@ -677,7 +724,7 @@ if test "$cf_cv_dcl_$1" = no ; then
|
||||
fi
|
||||
|
||||
# It's possible (for near-UNIX clones) that the data doesn't exist
|
||||
CF_CHECK_EXTERN_DATA($1,int)
|
||||
CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
|
||||
@ -920,6 +967,20 @@ if test "$with_no_leaks" = yes ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_ENABLE_RPATH version: 1 updated: 2008/09/13 10:22:30
|
||||
dnl ---------------
|
||||
dnl Check if the rpath option should be used, setting cache variable
|
||||
dnl cf_cv_ld_rpath if so.
|
||||
AC_DEFUN([CF_ENABLE_RPATH],
|
||||
[
|
||||
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)
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
|
||||
dnl --------
|
||||
dnl Check if 'errno' is declared in <errno.h>
|
||||
@ -958,6 +1019,118 @@ AC_MSG_RESULT($cf_result)
|
||||
CXXFLAGS="$cf_save_CXXFLAGS"
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_FIND_LINKAGE version: 12 updated: 2007/07/29 20:13:53
|
||||
dnl ---------------
|
||||
dnl Find a library (specifically the linkage used in the code fragment),
|
||||
dnl searching for it if it is not already in the library path.
|
||||
dnl See also CF_ADD_SEARCHPATH.
|
||||
dnl
|
||||
dnl Parameters (4-on are optional):
|
||||
dnl $1 = headers for library entrypoint
|
||||
dnl $2 = code fragment for library entrypoint
|
||||
dnl $3 = the library name without the "-l" option or ".so" suffix.
|
||||
dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
|
||||
dnl $5 = action to perform if not successful
|
||||
dnl $6 = module name, if not the same as the library name
|
||||
dnl $7 = extra libraries
|
||||
dnl
|
||||
dnl Sets these variables:
|
||||
dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
|
||||
dnl $cf_cv_header_path_$3 - include-directory if needed
|
||||
dnl $cf_cv_library_path_$3 - library-directory if needed
|
||||
dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
|
||||
AC_DEFUN([CF_FIND_LINKAGE],[
|
||||
|
||||
# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
|
||||
# will be set on completion of the AC_TRY_LINK below.
|
||||
cf_cv_header_path_$3=
|
||||
cf_cv_library_path_$3=
|
||||
|
||||
CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
|
||||
|
||||
AC_TRY_LINK([$1],[$2],
|
||||
cf_cv_find_linkage_$3=yes,[
|
||||
cf_cv_find_linkage_$3=no
|
||||
|
||||
CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
|
||||
|
||||
cf_save_CPPFLAGS="$CPPFLAGS"
|
||||
cf_test_CPPFLAGS="$CPPFLAGS"
|
||||
|
||||
CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
|
||||
for cf_cv_header_path_$3 in $cf_search
|
||||
do
|
||||
if test -d $cf_cv_header_path_$3 ; then
|
||||
CF_VERBOSE(... testing $cf_cv_header_path_$3)
|
||||
CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
|
||||
AC_TRY_COMPILE([$1],[$2],[
|
||||
CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
|
||||
cf_cv_find_linkage_$3=maybe
|
||||
cf_test_CPPFLAGS="$CPPFLAGS"
|
||||
break],[
|
||||
CPPFLAGS="$cf_save_CPPFLAGS"
|
||||
])
|
||||
fi
|
||||
done
|
||||
|
||||
if test "$cf_cv_find_linkage_$3" = maybe ; then
|
||||
|
||||
CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
|
||||
|
||||
cf_save_LIBS="$LIBS"
|
||||
cf_save_LDFLAGS="$LDFLAGS"
|
||||
|
||||
ifelse([$6],,,[
|
||||
CPPFLAGS="$cf_test_CPPFLAGS"
|
||||
LIBS="-l$3 $7 $cf_save_LIBS"
|
||||
AC_TRY_LINK([$1],[$2],[
|
||||
CF_VERBOSE(... found $3 library in system)
|
||||
cf_cv_find_linkage_$3=yes])
|
||||
CPPFLAGS="$cf_save_CPPFLAGS"
|
||||
LIBS="$cf_save_LIBS"
|
||||
])
|
||||
|
||||
if test "$cf_cv_find_linkage_$3" != yes ; then
|
||||
CF_LIBRARY_PATH(cf_search,$3)
|
||||
for cf_cv_library_path_$3 in $cf_search
|
||||
do
|
||||
if test -d $cf_cv_library_path_$3 ; then
|
||||
CF_VERBOSE(... testing $cf_cv_library_path_$3)
|
||||
CPPFLAGS="$cf_test_CPPFLAGS"
|
||||
LIBS="-l$3 $7 $cf_save_LIBS"
|
||||
LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
|
||||
AC_TRY_LINK([$1],[$2],[
|
||||
CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
|
||||
cf_cv_find_linkage_$3=yes
|
||||
cf_cv_library_file_$3="-l$3"
|
||||
break],[
|
||||
CPPFLAGS="$cf_save_CPPFLAGS"
|
||||
LIBS="$cf_save_LIBS"
|
||||
LDFLAGS="$cf_save_LDFLAGS"
|
||||
])
|
||||
fi
|
||||
done
|
||||
LIBS="$cf_save_LIBS"
|
||||
CPPFLAGS="$cf_save_CPPFLAGS"
|
||||
LDFLAGS="$cf_save_LDFLAGS"
|
||||
fi
|
||||
|
||||
else
|
||||
cf_cv_find_linkage_$3=no
|
||||
fi
|
||||
],$7)
|
||||
|
||||
if test "$cf_cv_find_linkage_$3" = yes ; then
|
||||
ifelse([$4],,[
|
||||
CF_ADD_INCDIR($cf_cv_header_path_$3)
|
||||
CF_ADD_LIBDIR($cf_cv_library_path_$3)
|
||||
LIBS="-l$3 $LIBS"
|
||||
],[$4])
|
||||
else
|
||||
ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
|
||||
dnl -------------
|
||||
dnl Test for dlsym() and related functions, as well as libdl.
|
||||
@ -1278,7 +1451,7 @@ if test "$GCC" = yes ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
|
||||
dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
|
||||
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:
|
||||
@ -1373,7 +1546,7 @@ then
|
||||
;;
|
||||
Winline) #(vi
|
||||
case $GCC_VERSION in
|
||||
3.3*)
|
||||
[[34]].*)
|
||||
CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
|
||||
continue;;
|
||||
esac
|
||||
@ -1715,7 +1888,7 @@ fi
|
||||
])
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_HASHED_DB_LIBS version: 7 updated: 2007/12/01 15:01:37
|
||||
dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
|
||||
dnl -----------------
|
||||
dnl Given that we have the header and version for hashed database, find the
|
||||
dnl library information.
|
||||
@ -1723,7 +1896,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-$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
|
||||
@ -1823,6 +1996,27 @@ $ac_includes_default
|
||||
])
|
||||
done
|
||||
])
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
|
||||
dnl --------------
|
||||
dnl Construct a search-list for a nonstandard header-file
|
||||
AC_DEFUN([CF_HEADER_PATH],
|
||||
[CF_SUBDIR_PATH($1,$2,include)
|
||||
test "$includedir" != NONE && \
|
||||
test "$includedir" != "/usr/include" && \
|
||||
test -d "$includedir" && {
|
||||
test -d $includedir && $1="[$]$1 $includedir"
|
||||
test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
|
||||
}
|
||||
|
||||
test "$oldincludedir" != NONE && \
|
||||
test "$oldincludedir" != "/usr/include" && \
|
||||
test -d "$oldincludedir" && {
|
||||
test -d $oldincludedir && $1="[$]$1 $oldincludedir"
|
||||
test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
|
||||
}
|
||||
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
|
||||
@ -1949,7 +2143,7 @@ ifdef([AC_FUNC_FSEEKO],[
|
||||
])
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27
|
||||
dnl CF_LDFLAGS_STATIC version: 4 updated: 2008/10/18 17:58:20
|
||||
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
|
||||
@ -1958,8 +2152,16 @@ dnl the list of linker options and libraries.
|
||||
AC_DEFUN([CF_LDFLAGS_STATIC],[
|
||||
|
||||
if test "$GCC" = yes ; then
|
||||
LDFLAGS_STATIC=-static
|
||||
LDFLAGS_SHARED=-dynamic
|
||||
case $cf_cv_system_name in #(
|
||||
OS/2*|os2*|aix[[45]]*) #( vi
|
||||
LDFLAGS_STATIC=
|
||||
LDFLAGS_SHARED=
|
||||
;;
|
||||
*) #( normally, except when broken
|
||||
LDFLAGS_STATIC=-static
|
||||
LDFLAGS_SHARED=-dynamic
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case $cf_cv_system_name in #(
|
||||
aix[[45]]*) #( from ld manpage
|
||||
@ -1991,43 +2193,30 @@ 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
|
||||
AC_DEFUN([CF_LIBUTF8],
|
||||
[
|
||||
AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
|
||||
cf_save_LIBS="$LIBS"
|
||||
LIBS="-lutf8 $LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <libutf8.h>],[putwc(0,0);],
|
||||
[cf_cv_libutf8=yes],
|
||||
[cf_cv_libutf8=no])
|
||||
LIBS="$cf_save_LIBS"
|
||||
])
|
||||
|
||||
if test "$cf_cv_libutf8" = yes ; then
|
||||
AC_DEFINE(HAVE_LIBUTF8_H)
|
||||
LIBS="-lutf8 $LIBS"
|
||||
fi
|
||||
])dnl
|
||||
dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
|
||||
dnl ---------------
|
||||
dnl Construct a search-list for a nonstandard library-file
|
||||
AC_DEFUN([CF_LIBRARY_PATH],
|
||||
[CF_SUBDIR_PATH($1,$2,lib)])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
|
||||
dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
|
||||
dnl -------------
|
||||
dnl Compute the library-prefix for the given host system
|
||||
dnl $1 = variable to set
|
||||
AC_DEFUN([CF_LIB_PREFIX],
|
||||
[
|
||||
case $cf_cv_system_name in
|
||||
OS/2*) LIB_PREFIX='' ;;
|
||||
os2*) LIB_PREFIX='' ;;
|
||||
*) LIB_PREFIX='lib' ;;
|
||||
case $cf_cv_system_name in #(vi
|
||||
OS/2*|os2*) #(vi
|
||||
LIB_PREFIX=''
|
||||
;;
|
||||
*) LIB_PREFIX='lib'
|
||||
;;
|
||||
esac
|
||||
ifelse($1,,,[$1=$LIB_PREFIX])
|
||||
AC_SUBST(LIB_PREFIX)
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
|
||||
dnl CF_LIB_RULES version: 53 updated: 2008/09/20 19:51: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
|
||||
@ -2044,6 +2233,12 @@ AC_DEFUN([CF_LIB_RULES],
|
||||
[
|
||||
CF_LIB_PREFIX(cf_prefix)
|
||||
AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
|
||||
|
||||
if test $cf_cv_shlib_version = cygdll ; then
|
||||
TINFO_NAME=$TINFO_ARG_SUFFIX
|
||||
TINFO_SUFFIX=.dll
|
||||
fi
|
||||
|
||||
for cf_dir in $SRC_SUBDIRS
|
||||
do
|
||||
if test ! -d $srcdir/$cf_dir ; then
|
||||
@ -2054,7 +2249,7 @@ do
|
||||
LIBS_TO_MAKE=
|
||||
for cf_item in $cf_LIST_MODELS
|
||||
do
|
||||
CF_LIB_SUFFIX($cf_item,cf_suffix)
|
||||
CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
|
||||
if test $cf_item = shared ; then
|
||||
if test "$cf_cv_do_symlinks" = yes ; then
|
||||
case "$cf_cv_shlib_version" in #(vi
|
||||
@ -2096,7 +2291,8 @@ 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
|
||||
LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
|
||||
cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
|
||||
LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
@ -2106,24 +2302,28 @@ do
|
||||
if test $cf_dir = ncurses ; then
|
||||
cf_subsets="$LIB_SUBSETS"
|
||||
cf_r_parts="$cf_subsets"
|
||||
cf_liblist="$LIBS_TO_MAKE"
|
||||
|
||||
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
|
||||
cf_item=
|
||||
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`
|
||||
cf_item=`echo $cf_liblist |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`
|
||||
cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
|
||||
if test -n "$cf_item"; then
|
||||
LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
|
||||
fi
|
||||
else
|
||||
break
|
||||
fi
|
||||
@ -2148,7 +2348,7 @@ do
|
||||
do
|
||||
echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
|
||||
CF_UPPER(cf_ITEM,$cf_item)
|
||||
CF_LIB_SUFFIX($cf_item,cf_suffix)
|
||||
CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
|
||||
CF_OBJ_SUBDIR($cf_item,cf_subdir)
|
||||
|
||||
# Test for case where we build libtinfo with a different name.
|
||||
@ -2156,22 +2356,21 @@ do
|
||||
if test $cf_dir = ncurses ; then
|
||||
case $cf_subset in
|
||||
*base*)
|
||||
cf_libname=${cf_libname}$LIB_SUFFIX
|
||||
;;
|
||||
*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
|
||||
else
|
||||
cf_libname=${cf_libname}$LIB_SUFFIX
|
||||
fi
|
||||
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
|
||||
|
||||
# These dependencies really are for development, not
|
||||
@ -2480,34 +2679,62 @@ fi
|
||||
])
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
|
||||
dnl CF_LIB_SUFFIX version: 15 updated: 2008/09/13 11:54:48
|
||||
dnl -------------
|
||||
dnl Compute the library file-suffix from the given model name
|
||||
dnl $1 = model name
|
||||
dnl $2 = variable to set
|
||||
dnl $2 = variable to set (the nominal library suffix)
|
||||
dnl $3 = dependency variable to set (actual filename)
|
||||
dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
|
||||
AC_DEFUN([CF_LIB_SUFFIX],
|
||||
[
|
||||
AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
|
||||
case $1 in
|
||||
libtool) $2='.la' ;;
|
||||
normal) $2='.a' ;;
|
||||
debug) $2='_g.a' ;;
|
||||
profile) $2='_p.a' ;;
|
||||
libtool)
|
||||
$2='.la'
|
||||
$3=[$]$2
|
||||
;;
|
||||
normal)
|
||||
$2='.a'
|
||||
$3=[$]$2
|
||||
;;
|
||||
debug)
|
||||
$2='_g.a'
|
||||
$3=[$]$2
|
||||
;;
|
||||
profile)
|
||||
$2='_p.a'
|
||||
$3=[$]$2
|
||||
;;
|
||||
shared)
|
||||
case $cf_cv_system_name in
|
||||
cygwin*) $2='.dll' ;;
|
||||
darwin*) $2='.dylib' ;;
|
||||
cygwin*)
|
||||
$2='.dll'
|
||||
$3='.dll.a'
|
||||
;;
|
||||
darwin*)
|
||||
$2='.dylib'
|
||||
$3=[$]$2
|
||||
;;
|
||||
hpux*)
|
||||
case $target in
|
||||
ia64*) $2='.so' ;;
|
||||
*) $2='.sl' ;;
|
||||
ia64*)
|
||||
$2='.so'
|
||||
$3=[$]$2
|
||||
;;
|
||||
*)
|
||||
$2='.sl'
|
||||
$3=[$]$2
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*) $2='.so' ;;
|
||||
*) $2='.so'
|
||||
$3=[$]$2
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
|
||||
test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
|
||||
@ -3869,7 +4096,7 @@ define([CF_REMOVE_LIB],
|
||||
$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 CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
|
||||
dnl -------------
|
||||
AC_DEFUN([CF_RPATH_HACK],
|
||||
[
|
||||
@ -3881,48 +4108,46 @@ 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,"
|
||||
;;
|
||||
cf_rpath_hack="-Wl,-rpath,"
|
||||
;;
|
||||
-R\ *)
|
||||
cf_rpath_hack="-R "
|
||||
;;
|
||||
cf_rpath_hack="-R "
|
||||
;;
|
||||
-R*)
|
||||
cf_rpath_hack="-R"
|
||||
;;
|
||||
cf_rpath_hack="-R"
|
||||
;;
|
||||
*)
|
||||
cf_rpath_hack=
|
||||
;;
|
||||
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)
|
||||
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"
|
||||
;;
|
||||
esac
|
||||
cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
|
||||
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: 47 updated: 2008/03/23 14:48:54
|
||||
dnl CF_SHARED_OPTS version: 53 updated: 2008/10/25 18:14:20
|
||||
dnl --------------
|
||||
dnl --------------
|
||||
dnl Attempt to determine the appropriate CC/LD options for creating a shared
|
||||
@ -4057,8 +4282,10 @@ CF_EOF
|
||||
# tested with IRIX 5.2 and 'cc'.
|
||||
if test "$GCC" != yes; then
|
||||
CC_SHARED_OPTS='-KPIC'
|
||||
MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
|
||||
else
|
||||
MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
|
||||
fi
|
||||
MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
|
||||
cf_cv_rm_so_locs=yes
|
||||
;;
|
||||
linux*|gnu*|k*bsd*-gnu)
|
||||
@ -4071,13 +4298,22 @@ CF_EOF
|
||||
EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
|
||||
fi
|
||||
CF_SHARED_SONAME
|
||||
MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]'
|
||||
MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
|
||||
;;
|
||||
openbsd[[2-9]].*)
|
||||
if test "$DFT_LWR_MODEL" = "shared" ; then
|
||||
LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
|
||||
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
|
||||
fi
|
||||
if test "$cf_cv_ld_rpath" = yes ; then
|
||||
cf_ld_rpath_opt="-Wl,-rpath,"
|
||||
EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
|
||||
fi
|
||||
CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
|
||||
MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]'
|
||||
CF_SHARED_SONAME
|
||||
MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
|
||||
;;
|
||||
openbsd*|freebsd[[12]].*)
|
||||
nto-qnx*|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
|
||||
@ -4108,7 +4344,7 @@ CF_EOF
|
||||
fi
|
||||
fi
|
||||
CF_SHARED_SONAME
|
||||
MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname' -o $[@]'
|
||||
MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
|
||||
else
|
||||
MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
|
||||
fi
|
||||
@ -4158,9 +4394,7 @@ CF_EOF
|
||||
;;
|
||||
solaris2*)
|
||||
# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
|
||||
if test "$GCC" != yes; then
|
||||
CC_SHARED_OPTS='-KPIC'
|
||||
fi
|
||||
# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
|
||||
if test "$DFT_LWR_MODEL" = "shared" ; then
|
||||
LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
|
||||
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
|
||||
@ -4170,7 +4404,12 @@ CF_EOF
|
||||
EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
|
||||
fi
|
||||
CF_SHARED_SONAME
|
||||
MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $[@]'
|
||||
if test "$GCC" != yes; then
|
||||
CC_SHARED_OPTS='-xcode=pic32'
|
||||
MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
|
||||
else
|
||||
MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
|
||||
fi
|
||||
;;
|
||||
sysv5uw7*|unix_sv*)
|
||||
# tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
|
||||
@ -4221,9 +4460,9 @@ CF_EOF
|
||||
AC_SUBST(INSTALL_LIB)
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_SHARED_SONAME version: 2 updated: 2006/10/21 12:33:41
|
||||
dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
|
||||
dnl ----------------
|
||||
dnl utility macro for CF_SHARED_OPTS, constructs "$cf_shared_soname" for
|
||||
dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
|
||||
dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
|
||||
dnl option.
|
||||
dnl
|
||||
@ -4233,9 +4472,9 @@ define([CF_SHARED_SONAME],
|
||||
[
|
||||
test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
|
||||
if test "$cf_cv_shlib_version" = rel; then
|
||||
cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
|
||||
cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
|
||||
else
|
||||
cf_shared_soname='`basename $[@]`'
|
||||
cf_cv_shared_soname='`basename $[@]`'
|
||||
fi
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
@ -4607,6 +4846,22 @@ if test "$ac_cv_header_termios_h" = yes ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
|
||||
dnl --------------
|
||||
dnl Construct a search-list for a nonstandard header/lib-file
|
||||
dnl $1 = the variable to return as result
|
||||
dnl $2 = the package name
|
||||
dnl $3 = the subdirectory, e.g., bin, include or lib
|
||||
AC_DEFUN([CF_SUBDIR_PATH],
|
||||
[$1=""
|
||||
|
||||
CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
|
||||
CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
|
||||
CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
|
||||
CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
|
||||
CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
|
||||
dnl --------
|
||||
dnl Shorthand macro for substituting things that the user may override
|
||||
@ -4793,6 +5048,32 @@ AC_DEFUN([CF_UPPER],
|
||||
$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
|
||||
dnl -----------
|
||||
dnl Check for multibyte support, and if not found, utf8 compatibility library
|
||||
AC_DEFUN([CF_UTF8_LIB],
|
||||
[
|
||||
AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
|
||||
cf_save_LIBS="$LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <stdlib.h>],[putwc(0,0);],
|
||||
[cf_cv_utf8_lib=yes],
|
||||
[CF_FIND_LINKAGE([
|
||||
#include <libutf8.h>],[putwc(0,0);],utf8,
|
||||
[cf_cv_utf8_lib=add-on],
|
||||
[cf_cv_utf8_lib=no])
|
||||
])])
|
||||
|
||||
# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
|
||||
# ncurses/ncursesw:
|
||||
if test "$cf_cv_utf8_lib" = "add-on" ; then
|
||||
AC_DEFINE(HAVE_LIBUTF8_H)
|
||||
CF_ADD_INCDIR($cf_cv_header_path_utf8)
|
||||
CF_ADD_LIBDIR($cf_cv_library_path_utf8)
|
||||
LIBS="-lutf8 $LIBS"
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
|
||||
dnl ----------
|
||||
dnl Use AC_VERBOSE w/o the warnings
|
||||
@ -4851,6 +5132,32 @@ fi
|
||||
])
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
|
||||
dnl ---------------
|
||||
dnl Check for compiler-support for weak symbols.
|
||||
dnl This works with "recent" gcc.
|
||||
AC_DEFUN([CF_WEAK_SYMBOLS],[
|
||||
AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
|
||||
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdio.h>],
|
||||
[
|
||||
#if defined(__GNUC__)
|
||||
# if defined __USE_ISOC99
|
||||
# define _cat_pragma(exp) _Pragma(#exp)
|
||||
# define _weak_pragma(exp) _cat_pragma(weak name)
|
||||
# else
|
||||
# define _weak_pragma(exp)
|
||||
# endif
|
||||
# define _declare(name) __extension__ extern __typeof__(name) name
|
||||
# define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
|
||||
#endif
|
||||
|
||||
weak_symbol(fopen);
|
||||
],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
|
||||
])
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
|
||||
dnl -------------------
|
||||
dnl Allow library's ABI to be overridden. Generally this happens when a
|
||||
@ -5128,7 +5435,7 @@ AC_SUBST($3)dnl
|
||||
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_WITH_PTHREAD version: 1 updated: 2008/03/29 13:42:21
|
||||
dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
|
||||
dnl ---------------
|
||||
dnl Check for POSIX thread library.
|
||||
AC_DEFUN([CF_WITH_PTHREAD],
|
||||
@ -5143,13 +5450,24 @@ AC_MSG_RESULT($with_pthread)
|
||||
if test "$with_pthread" != no ; then
|
||||
AC_CHECK_HEADER(pthread.h,[
|
||||
AC_DEFINE(HAVE_PTHREADS_H)
|
||||
AC_CHECK_LIB(pthread,pthread_create,[
|
||||
|
||||
AC_MSG_CHECKING(if we can link with the pthread library)
|
||||
cf_save_LIBS="$LIBS"
|
||||
LIBS="-lpthread $LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <pthread.h>
|
||||
],[
|
||||
int rc = pthread_create(0,0,0,0);
|
||||
],[with_pthread=yes],[with_pthread=no])
|
||||
LIBS="$cf_save_LIBS"
|
||||
AC_MSG_RESULT($with_pthread)
|
||||
|
||||
if test "$with_pthread" = yes ; then
|
||||
LIBS="-lpthread $LIBS"
|
||||
AC_DEFINE(HAVE_LIBPTHREADS)
|
||||
with_pthread=yes
|
||||
],[
|
||||
else
|
||||
AC_MSG_ERROR(Cannot link with pthread library)
|
||||
])
|
||||
fi
|
||||
])
|
||||
fi
|
||||
])
|
||||
@ -5217,7 +5535,7 @@ CF_NO_LEAKS_OPTION(valgrind,
|
||||
[USE_VALGRIND])
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
|
||||
dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
|
||||
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,
|
||||
@ -5237,7 +5555,7 @@ case $host_os in #(vi
|
||||
aix[[45]]*) #(vi
|
||||
CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
|
||||
;;
|
||||
freebsd*) #(vi
|
||||
freebsd*|dragonfly*) #(vi
|
||||
# 5.x headers associate
|
||||
# _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
|
||||
# _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
|
||||
|
418
announce.html.in
418
announce.html.in
@ -1,8 +1,8 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
|
||||
<!--
|
||||
$Id: announce.html.in,v 1.64 2006/12/17 23:31:26 tom Exp $
|
||||
$Id: announce.html.in,v 1.70 2008/11/02 01:03:05 tom Exp $
|
||||
****************************************************************************
|
||||
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -69,185 +69,170 @@ the GNU distribution site
|
||||
|
||||
<H1>Release Notes</H1>
|
||||
|
||||
This release is designed to be upward compatible from ncurses 5.0 through 5.5;
|
||||
This release is designed to be upward compatible from ncurses 5.0 through 5.6;
|
||||
very few applications will require recompilation, depending on the platform.
|
||||
These are the highlights from the change-log since ncurses 5.5 release.
|
||||
These are the highlights from the change-log since ncurses 5.6 release.
|
||||
<p>
|
||||
Interface changes:
|
||||
<ul>
|
||||
<li>generate linkable stubs for some macros:
|
||||
<br>
|
||||
getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
|
||||
getpary, getpary,
|
||||
<br>
|
||||
and (for libncursesw)
|
||||
<br>
|
||||
wgetbkgrnd
|
||||
getattrs
|
||||
|
||||
</ul>
|
||||
New features and improvements:
|
||||
<ul>
|
||||
<li>library
|
||||
<ul>
|
||||
<li>support hashed databases for the terminal descriptions.
|
||||
This uses the Berkeley database, has been tested for
|
||||
several versions on different platforms.
|
||||
<li>new flavor of the ncurses library provides rudimentary
|
||||
support for POSIX threads. Several functions are
|
||||
reentrant, but most require either a window-level or
|
||||
screen-level mutex.<br>
|
||||
(This is <em>API</em>-compatible,
|
||||
but not <em>ABI</em>-compatible with the normal library).
|
||||
|
||||
<li>add <code>use_legacy_coding()</code> function to support
|
||||
lynx's font-switching feature.
|
||||
<li>add <code>NCURSES_OPAQUE</code> symbol to curses.h, will
|
||||
use to make structs opaque in selected configurations.
|
||||
|
||||
<li>add extension <code>nofilter()</code>, to cancel a prior
|
||||
<code>filter()</code> call.
|
||||
<li>add <code>NCURSES_EXT_FUNCS</code> and
|
||||
<code>NCURSES_EXT_COLORS</code> symbols to curses.h to make
|
||||
it simpler to tell if the extended functions and/or colors
|
||||
are declared.
|
||||
|
||||
<li>add/install a package config script, e.g.,
|
||||
<code>ncurses5-config</code> or
|
||||
<code>ncursesw5-config</code>, according to
|
||||
configuration options.
|
||||
<li>add wresize() to C++ binding
|
||||
|
||||
<li>provide ifdef for <code>NCURSES_NOMACROS</code> which
|
||||
suppresses most macro definitions from curses.h, i.e.,
|
||||
where a macro is defined to override a function to improve
|
||||
performance.
|
||||
<li>eliminate fixed-buffer vsprintf() calls in C++ binding.
|
||||
|
||||
<li>make ifdef's consistent in <code>curses.h</code> for the
|
||||
extended colors so the header file can be used for the
|
||||
normal curses library. The header file installed for
|
||||
extended colors is a variation of the wide-character
|
||||
configuration.
|
||||
<li>add several functions to C++ binding which wrap C functions
|
||||
that pass a WINDOW* parameter.
|
||||
|
||||
<li>improve <code>tgetstr()</code> by making the return value
|
||||
point into the user's buffer, if provided.
|
||||
<li>adapt mouse-handling code from menu library in form-library
|
||||
|
||||
<li>add ifdef's allowing ncurses to be built with
|
||||
<code>tparm()</code> using either varargs (the existing
|
||||
status), or using a fixed-parameter list (to match X/Open).
|
||||
<li>improve tracing for form library, showing created forms,
|
||||
fields, etc.
|
||||
|
||||
<li>widen the test for xterm <code>kmous</code> a little to
|
||||
<code>allow</code> for other
|
||||
strings than "\E[M", e.g., for <code>xterm-sco</code>
|
||||
functionality in xterm.
|
||||
<li>make $NCURSES_NO_PADDING feature work for termcap interface .
|
||||
|
||||
<li>modify <code>wgetnstr()</code> to return
|
||||
<code>KEY_RESIZE</code> if a sigwinch occurs.
|
||||
<li>add check to trace-file open, if the given name is a
|
||||
directory, add ".log" to the name and try again.
|
||||
|
||||
<li>move prototypes for wide-character trace functions from
|
||||
curses.tail to curses.wide to avoid accidental reference to
|
||||
those if <code>_XOPEN_SOURCE_EXTENDED</code> is defined
|
||||
without ensuring that <wchar.h> is included.
|
||||
|
||||
<li>change the way shared libraries (other than libtool) are
|
||||
installed. Rather than copying the build-tree's libraries,
|
||||
link the shared objects into the install directory. This
|
||||
makes the <code>--with-rpath</code> option work except with
|
||||
<code>$(DESTDIR)</code>.
|
||||
|
||||
<li>several improvements for rendering in hpterm. These are
|
||||
only available if the library is configured using
|
||||
<code>--enable-xmc-glitch</code>.
|
||||
|
||||
<li>Add <code>NCURSES_NO_HARD_TABS</code> and
|
||||
<code>NCURSES_NO_MAGIC_COOKIE</code> environment variables
|
||||
to allow runtime suppression of the related hard-tabs and
|
||||
xmc-glitch features.
|
||||
<li>several new manpages: curs_legacy.3x, curs_memleaks.3x,
|
||||
curs_opaque.3x and curs_threads.3x
|
||||
</ul>
|
||||
|
||||
<li>programs:
|
||||
<ul>
|
||||
<li>add new test programs: chgat.c, demo_altkeys.c,
|
||||
echochar.c, foldkeys.c, movewindow.c, redraw.c, (noting
|
||||
that existing test programs also were modified to test
|
||||
additional features).
|
||||
<li>modified three test-programs to demonstrate the threading
|
||||
support in this version: ditto, rain, worm.
|
||||
|
||||
<li>modify tack to test extended capability function-key
|
||||
strings.
|
||||
<li>several new test-programs: demo_panels, dots_mvcur,
|
||||
inch_wide, inchs, key_name, key_names, savescreen,
|
||||
savescreen.sh test_arrays, test_get_wstr, test_getstr,
|
||||
test_instr, test_inwstr and test_opaque.
|
||||
|
||||
<li>modify toe to access termcap data, e.g., via <code>cgetent()</code>
|
||||
functions, or as a text file if those are not available.
|
||||
<li>add <code>adacurses-config</code> to the Ada95 install.
|
||||
|
||||
<li>improve infocmp/tic <code>-f</code> option formatting.
|
||||
<li>modify tic <code>-f</code> option to format spaces as
|
||||
<code>\s</code> to prevent them from being lost when that
|
||||
is read back in unformatted strings.
|
||||
|
||||
<li>add <code>toe -a</code> option, to show all databases.
|
||||
This uses new private interfaces in the ncurses library for
|
||||
iterating through the list of databases.
|
||||
|
||||
<li>modify <code>MKfallback.sh</code> to use
|
||||
<code>tic -x</code> when constructing fallback tables to
|
||||
allow extended capabilities to be retrieved from a fallback entry.
|
||||
<li>The <code>tack</code> program is now distributed separately
|
||||
from ncurses.
|
||||
</ul>
|
||||
|
||||
<li>terminal database
|
||||
<ul>
|
||||
<li>add terminfo entries for xfce terminal (xfce) and multi gnome terminal (mgt)
|
||||
<li>add nsterm-16color entry
|
||||
<li>updated mlterm terminfo entry
|
||||
<li>add kon, kon2 and jfbterm terminfo entry
|
||||
<li>remove invis capability from klone+sgr, mainly used by linux entry, since it does not really do this
|
||||
<li>add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
|
||||
<li>add shifted up/down arrow codes to xterm-new as kind/kri strings
|
||||
<li>add hpterm-color terminfo entry
|
||||
<li>add 256color variants of terminfo entries for programs which are reported to implement this feature
|
||||
<li>correct order of use-clauses in rxvt-basic entry which made codes for f1-f4 vt100-style rather than vt220-style.
|
||||
<li>added entries:
|
||||
<ul>
|
||||
<li><code>Eterm-256color</code>,
|
||||
<code>Eterm-88color</code> and
|
||||
<code>rxvt-88color</code>
|
||||
<li><code>aterm</code>
|
||||
<li><code>konsole-256color</code>
|
||||
<li><code>mrxvt</code>
|
||||
<li><code>screen.mlterm</code>
|
||||
<li><code>screen.rxvt</code>
|
||||
<li><code>teraterm4.59</code> is now the primary primary
|
||||
teraterm entry, renamed original to
|
||||
<code>teraterm2.3</code>
|
||||
<li><code>9term</code> terminal
|
||||
<li>Newbury Data entries
|
||||
</ul>
|
||||
<li>updated/improved entries:
|
||||
<ul>
|
||||
<li><code>gnome</code> to version 2.22.3
|
||||
<li><code>h19</code>, <code>z100</code>
|
||||
<li><code>konsole</code> to version 1.6.6
|
||||
<li><code>mlterm</code>, <code>mlterm+pcfkeys</code>
|
||||
<li><code>xterm</code>, and building-blocks for function-keys
|
||||
to <a href="http://invisible-island.net/xterm/xterm.log.html#xterm_230">xterm patch #230</a>.
|
||||
</ul>
|
||||
</ul>
|
||||
</ul>
|
||||
Major bug fixes:
|
||||
<ul>
|
||||
<li>correct a typo in configure <code>--with-bool</code> option for the
|
||||
case where <code>--without-cxx</code> is used.
|
||||
<li>add logic to tic for cancelling strings in user-defined
|
||||
capabilities
|
||||
(this is <em>needed</em> for
|
||||
current <code>konsole</code> terminfo entry).
|
||||
|
||||
<li>move assignment from environment variable <code>ESCDELAY</code>
|
||||
from <code>initscr()</code> down to <code>newterm()</code> so the
|
||||
environment variable affects timeouts for terminals opened with
|
||||
newterm() as well.
|
||||
<li>modify <code>mk-1st.awk</code> so the generated makefile rules for
|
||||
linking or installing shared libraries do not first remove the
|
||||
library, in case it is in use, e.g., <code>libncurses.so</code> by
|
||||
<code>/bin/sh</code>.
|
||||
|
||||
<li>modify <code>werase</code> to clear multicolumn characters that
|
||||
extend into a derived window.
|
||||
<li>correct check for notimeout() in wgetch().
|
||||
|
||||
<li>modify <code>wchgat()</code> to mark updated cells as changed so a
|
||||
refresh will repaint those cells.
|
||||
<li>fix a sign-extension bug in infocmp's repair_acsc() function.
|
||||
|
||||
<li>correct logic in <code>wadd_wch()</code> and
|
||||
<code>wecho_wch()</code>, which did not guard against passing the
|
||||
multi-column attribute into a call on <code>waddch()</code>, e.g.,
|
||||
using data returned by <code>win_wch()</code>
|
||||
<li>change winnstr() to stop at the end of the line.
|
||||
|
||||
<li>fix redrawing of windows other than <code>stdscr</code> using
|
||||
<code>wredrawln()</code> by touching the corresponding rows in
|
||||
<code>curscr</code>.
|
||||
<li>make Ada95 demo_panels() example work.
|
||||
|
||||
<li>reduce memory leaks in repeated calls to <code>tgetent()</code> by
|
||||
remembering the last <code>TERMINAL*</code> value allocated to hold
|
||||
the corresponding data and freeing that if the
|
||||
<code>tgetent()</code> result buffer is the same as the previous
|
||||
call.
|
||||
<li>fix for adding a non-spacing character at the beginning of a line.
|
||||
|
||||
<li>modify <code>read_termtype()</code> so the <code>term_names</code>
|
||||
data is always allocated as part of the <code>str_table</code>, a
|
||||
better fix for a memory leak.
|
||||
<li>fill in extended-color pair to make colors work
|
||||
for wide-characters using extended-colors.
|
||||
|
||||
<li>fix <code>wins_nwstr(),</code> which did not handle single-column
|
||||
non-8bit codes.
|
||||
<li>improve refresh of window on top of multi-column characters,
|
||||
taking into account split characters on left/right window
|
||||
boundaries.
|
||||
|
||||
<li>modify <code>wbkgrnd()</code> to avoid clearing the
|
||||
<code>A_CHARTEXT</code> attribute bits since those record the state
|
||||
of multicolumn characters.
|
||||
<li>modify <code>win_wchnstr()</code> to ensure that only a base cell
|
||||
is returned for each multi-column character.
|
||||
|
||||
<li>improve <code>SIGWINCH</code> handling by postponing its effect
|
||||
during <code>newterm()</code>, etc., when allocating screens.
|
||||
<li>improve <code>waddch()</code> and <code>winsch()</code> handling of
|
||||
EILSEQ from <code>mbrtowc()</code> by using <code>unctrl()</code>
|
||||
to display illegal bytes rather than trying to append further bytes
|
||||
to make up a valid sequence.
|
||||
|
||||
<li>remove 970913 feature for copying subwindows as they are moved in
|
||||
<code>mvwin()</code>.
|
||||
<li>restore <code>curs_set()</code> state after
|
||||
<code>endwin()</code>/<code>refresh()</code>
|
||||
|
||||
<li>add checks in <code>waddchnstr()</code> and
|
||||
<code>wadd_wchnstr()</code> to stop copying when a null character
|
||||
is found.
|
||||
<li>modify <code>keyname()</code> to use "^X" form only if
|
||||
<code>meta()</code> has been called, or if <code>keyname()</code>
|
||||
is called without initializing curses, e.g., via
|
||||
<code>initscr()</code> or <code>newterm()</code>.
|
||||
|
||||
<li>add some checks to ensure current position is within scrolling
|
||||
region before scrolling on a new line.
|
||||
<li>modify <code>unctrl()</code> to check codes in 128-255 range versus
|
||||
<code>isprint()</code>.
|
||||
If they are not printable, and locale was set, use a "M-" or "~"
|
||||
sequence.
|
||||
|
||||
<li>add a workaround to ACS mapping to allow applications such as
|
||||
test/blue.c to use the "PC ROM" characters by masking them with
|
||||
A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
|
||||
of legacy coding.
|
||||
<li>improve <code>resizeterm()</code> by moving ripped-off lines, and
|
||||
repainting the soft-keys.
|
||||
|
||||
<li>modify form library to accept control characters such as newline
|
||||
in set_field_buffer(), which is compatible with Solaris.
|
||||
|
||||
<li>use <code>NCURSES_MOUSE_MASK()</code> in definition of
|
||||
<code>BUTTON_RELEASE()</code>, etc., to make those work properly
|
||||
with the <code>--enable-ext-mouse</code> configuration
|
||||
|
||||
<li>correct some functions in Ada95 binding which were using return
|
||||
value from C where none was returned.
|
||||
|
||||
<li>reviewed/fixed issues reported by Coverity and Klocwork tools.
|
||||
</ul>
|
||||
|
||||
Portability:
|
||||
@ -257,110 +242,115 @@ Portability:
|
||||
<li>new options:
|
||||
<dl>
|
||||
|
||||
<dt>--with-hashed-db
|
||||
<dd>Use Berkeley hashed database for storing terminfo data rather than storing
|
||||
each compiled entry in a separate binary file within a directory
|
||||
tree.
|
||||
<dt>--disable-big-strings
|
||||
<dd>control whether static string tables are generated as single
|
||||
large strings (to improve startup performance), or as array
|
||||
of individual strings.
|
||||
|
||||
<dt>--without-dlsym
|
||||
<dd>Do not use <code>dlsym()</code> to load GPM dynamically.
|
||||
<dt>--disable-relink
|
||||
<dd>control whether shared libraries are relinked (during install)
|
||||
when rpath is enabled.
|
||||
|
||||
<dt>--with-valgrind
|
||||
<dd>Simplify building for testing with valgrind.
|
||||
<dt>--disable-tic-depends
|
||||
<dd>make explicit whether tic library depends on ncurses/ncursesw
|
||||
library.
|
||||
|
||||
<dt>--enable-wgetch-events
|
||||
<dd>Compile with experimental wgetch-events code.
|
||||
<dt>--enable-mixed-case
|
||||
<dd>override the configure script's check if the filesystem
|
||||
supports mixed-case filenames.
|
||||
This allows one to control how the terminal database
|
||||
maps to the filesystem.
|
||||
For filesystems that do not support mixed-case, the library
|
||||
uses generate 2-character (hexadecimal) codes for the
|
||||
lower-level of the filesystem terminfo database
|
||||
|
||||
<dt>--enable-signed-char
|
||||
<dd>Store booleans in "signed char" rather than "char".
|
||||
<dt>--enable-reentrant
|
||||
<dd>builds a different flavor of the ncurses library (ncursest)
|
||||
which improves reentrant use of the
|
||||
library by reducing global and static variables
|
||||
(see the "--with-pthread" option for the threaded support).
|
||||
|
||||
<dt>--enable-weak-symbols
|
||||
<dd>use weak-symbols for linking to the POSIX thread library,
|
||||
and use the same soname for the ncurses shared library
|
||||
as the normal library (caveat: the ABI is for the threaded
|
||||
library, which makes global data accessed via functions).
|
||||
|
||||
<dt>--with-pthread
|
||||
<dd>build with the POSIX thread library (tested with AIX,
|
||||
Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64).
|
||||
|
||||
<dt>--with-ticlib
|
||||
<dd>build/install the tic-support functions in a separate library
|
||||
|
||||
</dl>
|
||||
|
||||
<li>improved options:
|
||||
<dl>
|
||||
|
||||
<dt>--disable-largefile
|
||||
<dd>make the option work both ways.
|
||||
<dt>--enable-ext-colors
|
||||
<dd>requires the wide-character configuration.
|
||||
|
||||
<dt>--with-gpm
|
||||
<dd>The option now accepts a parameter,
|
||||
i.e., the name of the dynamic GPM library to load via
|
||||
<code>dlopen()</code>
|
||||
<dt>--with-chtype
|
||||
<dd>ignore option value "unsigned" is always added to
|
||||
the type in curses.h; do the same for --with-mmask-t.
|
||||
|
||||
<dt>--disable-symlinks
|
||||
<dd>The option now allows one to
|
||||
disable <code>symlink()</code> in <code>tic</code> even when
|
||||
<code>link()</code> does not work.
|
||||
<dt>--with-dmalloc
|
||||
<dd>build-fix for redefinition of <code>strndup</code>.
|
||||
|
||||
<dt>--with-hashed-db
|
||||
<dd>accepts a parameter which is the install-prefix of a given
|
||||
Berkeley Database.
|
||||
|
||||
<dt>--with-hashed-db
|
||||
<dd>the $LIBS environment variable overrides the search for the db
|
||||
library.
|
||||
|
||||
<dt>--without-hashed-db
|
||||
<dd>assumed when "--disable-database" is used.
|
||||
|
||||
</dl>
|
||||
|
||||
</ul>
|
||||
|
||||
<li>other configure/build issues: <ul> <li>remove special case for
|
||||
Darwin in <code>CF_XOPEN_SOURCE</code> configure macro.
|
||||
|
||||
<li>add configure check to ensure that <code>SIGWINCH</code> is
|
||||
defined on platforms such as OS X which exclude that when
|
||||
<code>_XOPEN_SOURCE,</code> etc., are defined
|
||||
|
||||
<li>use ld's <code>-search_paths_first</code> option on Darwin
|
||||
to work around odd search rules on that platform.
|
||||
|
||||
<li>improve ifdef's for <code>_POSIX_VDISABLE</code> in tset to
|
||||
work with Mac OS X.
|
||||
|
||||
<li>modify configure script to ensure that if the C compiler is
|
||||
used rather than the loader in making shared libraries, the
|
||||
<code>$(CFLAGS)</code> variable is also used.
|
||||
|
||||
<li>use <code>${CC}</code> rather than <code>${LD}</code> in
|
||||
shared library rules for IRIX64, Solaris to help ensure
|
||||
that initialization sections are provided for extra linkage
|
||||
requirements, e.g., of C++ applications.
|
||||
|
||||
<li>improve some shared-library configure scripting for Linux,
|
||||
FreeBSD and NetBSD to make
|
||||
<code>--with-shlib-version</code> work.
|
||||
|
||||
<li>split up dependency of <code>names.c</code> and
|
||||
<code>codes.c</code> in <code>ncurses/Makefile</code> to
|
||||
work with parallel make.
|
||||
|
||||
<li>modify <code>MKlib_gen.sh</code> to change
|
||||
preprocessor-expanded <code>_Bool</code> back to <code>bool</code>.
|
||||
|
||||
<li>modify <code>progs/Makefile.in</code> to make
|
||||
<code>tput init</code> work properly with cygwin,
|
||||
i.e., do not pass a <code>.exe</code> in the reference
|
||||
string used in check_aliases.
|
||||
<li>other configure/build issues:
|
||||
<ul>
|
||||
<li>build-fixes for LynxOS
|
||||
<li>modify shared-library rules to allow FreeBSD 3.x to use rpath.
|
||||
<li>build-fix for FreeBSD "contemporary" TTY interface.
|
||||
<li>build-fixes for AIX with libtool.
|
||||
<li>build-fixes for Darwin and libtool.
|
||||
<li>modify BeOS-specific ifdef's to build on Haiku.
|
||||
<li>corrected gcc options for building shared libraries on Solaris
|
||||
and IRIX64.
|
||||
<li>change shared-library configuration for OpenBSD, make rpath work.
|
||||
<li>build-fixes for using libutf8, e.g., on OpenBSD 3.7
|
||||
<li>add "-e" option in ncurses/Makefile.in when generating source-files
|
||||
to force earlier exit if the build environment fails unexpectedly.
|
||||
<li>add support for shared libraries for QNX.
|
||||
<li>change delimiter in <code>MKlib_gen.sh</code> from '%' to '@', to
|
||||
avoid substitution by IBM xlc to '#' as part of its extensions to
|
||||
digraphs.
|
||||
</ul>
|
||||
|
||||
<li>library:
|
||||
<ul>
|
||||
<li>ignore wide-acs line-drawing characters that
|
||||
<code>wcwidth()</code> claims are not one-column. This is
|
||||
a workaround for Solaris' broken locale support.
|
||||
|
||||
<li>reduce name-pollution in <code>term.h</code> by removing
|
||||
<code>#define</code>'s for HAVE_xxx symbols.
|
||||
|
||||
<li>fix <code>#ifdef</code> in <code>c++/internal.h</code> for
|
||||
QNX 6.1
|
||||
<li>rewrite wrapper for <code>wcrtomb()</code>, making it work on
|
||||
Solaris. This is used in the form library to determine the length
|
||||
of the buffer needed by <code>field_buffer</code>.
|
||||
<li>add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
|
||||
type for data manipulated by signal handlers.
|
||||
<li>set locale in misc/ncurses-config.in since it uses a range
|
||||
<li>disable GPM mouse support when $TERM does not happen to contain
|
||||
"linux", since Gpm_Open() no longer limits its assertion to terminals
|
||||
that it might handle, e.g., within "screen" in xterm.
|
||||
<li>reset mouse file-descriptor when unloading GPM library.
|
||||
</ul>
|
||||
|
||||
<li>test programs: <ul> <li>modify <code>test/configure</code> script
|
||||
to allow building test programs with PDCurses/X11.
|
||||
|
||||
<li>modified test programs to allow some to work with NetBSD
|
||||
curses. Several do not because NetBSD curses implements a
|
||||
subset of X/Open curses, and also lacks much of SVr4
|
||||
additions. But it is enough for comparison.
|
||||
|
||||
<li>improved <code>test/configure</code> to build test/ncurses
|
||||
on HPUX 11 using the vendor curses.
|
||||
|
||||
<li>change configure script to produce
|
||||
<code>test/Makefile</code> from data file.
|
||||
<li>test programs:
|
||||
<ul>
|
||||
<li>update test programs to build/work with various UNIX curses for
|
||||
comparisons.
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
@ -410,6 +400,8 @@ and <CODE>define_key()</CODE> allow
|
||||
you to better control the use of function keys,
|
||||
e.g., disabling the ncurses KEY_MOUSE,
|
||||
or by defining more than one control sequence to map to a given key code.
|
||||
<LI>Support for 256-color terminals, such as modern xterm, when configured
|
||||
using the <code>--enable-ext-colors</code> option.
|
||||
<LI>Support for 16-color terminals, such as aixterm and modern xterm.
|
||||
<LI>Better cursor-movement optimization. The package now features a
|
||||
cursor-local-movement computation more efficient than either BSD's
|
||||
@ -513,14 +505,10 @@ for similar applications on GNU/Linux.
|
||||
<br>
|
||||
<DT> pinfo
|
||||
<DD> Lynx-like info browser.
|
||||
<A HREF="http://dione.ids.pl/~pborys/software/pinfo/">http://dione.ids.pl/~pborys/software/pinfo/</A>
|
||||
<A HREF="https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</A>
|
||||
<DT> tin
|
||||
<DD> newsreader, supporting color, MIME
|
||||
<A HREF="http://www.tin.org/">http://www.tin.org/</A>
|
||||
<DT> vh-1.6
|
||||
<DD> Volks-Hypertext browser for the Jargon File
|
||||
<br>
|
||||
<A HREF="http://www.debian.org/Packages/unstable/text/vh.html">http://www.debian.org/Packages/unstable/text/vh.html</A>
|
||||
</DL>
|
||||
as well as some that use ncurses for the terminfo support alone:
|
||||
<DL>
|
||||
|
156
config.guess
vendored
156
config.guess
vendored
@ -4,7 +4,7 @@
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2008-03-12'
|
||||
timestamp='2008-04-14'
|
||||
|
||||
# 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
|
||||
@ -180,7 +180,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
os=netbsd
|
||||
os=netbsd
|
||||
;;
|
||||
esac
|
||||
# The OS release
|
||||
@ -219,11 +219,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
exit ;;
|
||||
alpha:OSF1:*:*)
|
||||
case $UNAME_RELEASE in
|
||||
*4.0)
|
||||
*4.0)
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
||||
;;
|
||||
*5.*)
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||
*5.*)
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||
;;
|
||||
esac
|
||||
# According to Compaq, /usr/sbin/psrinfo has been available on
|
||||
@ -295,7 +295,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
echo s390-ibm-zvmoe
|
||||
exit ;;
|
||||
*:OS400:*:*)
|
||||
echo powerpc-ibm-os400
|
||||
echo powerpc-ibm-os400
|
||||
exit ;;
|
||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
||||
@ -375,23 +375,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
# MiNT. But MiNT is downward compatible to TOS, so this should
|
||||
# be no problem.
|
||||
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
exit ;;
|
||||
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
||||
echo m68k-milan-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo m68k-milan-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
||||
echo m68k-hades-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo m68k-hades-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
m68k:machten:*:*)
|
||||
echo m68k-apple-machten${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -461,8 +461,8 @@ EOF
|
||||
echo m88k-motorola-sysv3
|
||||
exit ;;
|
||||
AViiON:dgux:*:*)
|
||||
# DG/UX returns AViiON for all architectures
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
# DG/UX returns AViiON for all architectures
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
||||
then
|
||||
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
||||
@ -575,8 +575,8 @@ EOF
|
||||
9000/[678][0-9][0-9])
|
||||
if [ -x /usr/bin/getconf ]; then
|
||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||
532) # CPU_PA_RISC2_0
|
||||
@ -711,22 +711,22 @@ EOF
|
||||
exit ;;
|
||||
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
||||
echo c1-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
||||
if getsysinfo -f scalar_acc
|
||||
then echo c32-convex-bsd
|
||||
else echo c2-convex-bsd
|
||||
fi
|
||||
exit ;;
|
||||
exit ;;
|
||||
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
||||
echo c34-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
||||
echo c38-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||
echo c4-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
CRAY*Y-MP:*:*:*)
|
||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
@ -750,14 +750,14 @@ EOF
|
||||
exit ;;
|
||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
5000:UNIX_System_V:4.*:*)
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
||||
@ -785,14 +785,14 @@ EOF
|
||||
echo ${UNAME_MACHINE}-pc-mingw32
|
||||
exit ;;
|
||||
i*:windows32*:*)
|
||||
# uname -m includes "-pc" on this system.
|
||||
echo ${UNAME_MACHINE}-mingw32
|
||||
# uname -m includes "-pc" on this system.
|
||||
echo ${UNAME_MACHINE}-mingw32
|
||||
exit ;;
|
||||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit ;;
|
||||
*:Interix*:[3456]*)
|
||||
case ${UNAME_MACHINE} in
|
||||
case ${UNAME_MACHINE} in
|
||||
x86)
|
||||
echo i586-pc-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -800,8 +800,8 @@ EOF
|
||||
echo x86_64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
IA64)
|
||||
echo ia64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo ia64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
esac ;;
|
||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||
echo i${UNAME_MACHINE}-pc-mks
|
||||
@ -837,7 +837,8 @@ EOF
|
||||
exit ;;
|
||||
arm*:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | grep -q __ARM_EABI__
|
||||
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep -q __ARM_EABI__
|
||||
then
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
else
|
||||
@ -854,7 +855,7 @@ EOF
|
||||
echo crisv32-axis-linux-gnu
|
||||
exit ;;
|
||||
frv:Linux:*:*)
|
||||
echo frv-unknown-linux-gnu
|
||||
echo frv-unknown-linux-gnu
|
||||
exit ;;
|
||||
ia64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
@ -882,10 +883,10 @@ EOF
|
||||
#endif
|
||||
EOF
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||
/^CPU/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
/^CPU/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
mips64:Linux:*:*)
|
||||
@ -905,15 +906,15 @@ EOF
|
||||
#endif
|
||||
EOF
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||
/^CPU/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
/^CPU/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
or32:Linux:*:*)
|
||||
echo or32-unknown-linux-gnu
|
||||
exit ;;
|
||||
echo or32-unknown-linux-gnu
|
||||
exit ;;
|
||||
ppc:Linux:*:*)
|
||||
echo powerpc-unknown-linux-gnu
|
||||
exit ;;
|
||||
@ -929,7 +930,7 @@ EOF
|
||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||
@ -949,7 +950,7 @@ EOF
|
||||
echo ${UNAME_MACHINE}-ibm-linux
|
||||
exit ;;
|
||||
sh64*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
sh*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
@ -964,7 +965,7 @@ EOF
|
||||
echo x86_64-unknown-linux-gnu
|
||||
exit ;;
|
||||
xtensa*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
i*86:Linux:*:*)
|
||||
# The BFD linker knows what the default object file format is, so
|
||||
@ -977,16 +978,13 @@ EOF
|
||||
s/.*supported targets: *//
|
||||
s/ .*//
|
||||
p'`
|
||||
case "$ld_supported_targets" in
|
||||
case "$ld_supported_targets" in
|
||||
elf32-i386)
|
||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||
;;
|
||||
a.out-i386-linux)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit ;;
|
||||
coff-i386)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||
exit ;;
|
||||
"")
|
||||
# Either a pre-BFD a.out linker (linux-gnuoldld) or
|
||||
# one that does not give us useful --help.
|
||||
@ -1019,10 +1017,10 @@ EOF
|
||||
#endif
|
||||
EOF
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||
/^LIBC/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
/^LIBC/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
test x"${LIBC}" != x && {
|
||||
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
||||
exit
|
||||
@ -1036,11 +1034,11 @@ EOF
|
||||
echo i386-sequent-sysv4
|
||||
exit ;;
|
||||
i*86:UNIX_SV:4.2MP:2.*)
|
||||
# Unixware is an offshoot of SVR4, but it has its own version
|
||||
# number series starting with 2...
|
||||
# I am not positive that other SVR4 systems won't match this,
|
||||
# Unixware is an offshoot of SVR4, but it has its own version
|
||||
# number series starting with 2...
|
||||
# I am not positive that other SVR4 systems won't match this,
|
||||
# I just have to hope. -- rms.
|
||||
# Use sysv4.2uw... so that sysv4* matches it.
|
||||
# Use sysv4.2uw... so that sysv4* matches it.
|
||||
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
|
||||
exit ;;
|
||||
i*86:OS/2:*:*)
|
||||
@ -1072,7 +1070,7 @@ EOF
|
||||
fi
|
||||
exit ;;
|
||||
i*86:*:5:[678]*)
|
||||
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
||||
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
||||
case `/bin/uname -X | grep "^Machine"` in
|
||||
*486*) UNAME_MACHINE=i486 ;;
|
||||
*Pentium) UNAME_MACHINE=i586 ;;
|
||||
@ -1100,10 +1098,10 @@ EOF
|
||||
exit ;;
|
||||
pc:*:*:*)
|
||||
# Left here for compatibility:
|
||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||
# the processor, so we play safe by assuming i386.
|
||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||
# the processor, so we play safe by assuming i386.
|
||||
echo i386-pc-msdosdjgpp
|
||||
exit ;;
|
||||
exit ;;
|
||||
Intel:Mach:3*:*)
|
||||
echo i386-pc-mach3
|
||||
exit ;;
|
||||
@ -1138,8 +1136,8 @@ EOF
|
||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1173,9 +1171,9 @@ EOF
|
||||
fi
|
||||
exit ;;
|
||||
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
echo i586-unisys-sysv4
|
||||
exit ;;
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
echo i586-unisys-sysv4
|
||||
exit ;;
|
||||
*:UNIX_System_V:4*:FTX*)
|
||||
# From Gerald Hewes <hewes@openmarket.com>.
|
||||
# How about differentiating between stratus architectures? -djm
|
||||
@ -1205,7 +1203,7 @@ EOF
|
||||
else
|
||||
echo mips-unknown-sysv${UNAME_RELEASE}
|
||||
fi
|
||||
exit ;;
|
||||
exit ;;
|
||||
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
|
||||
echo powerpc-be-beos
|
||||
exit ;;
|
||||
@ -1252,8 +1250,8 @@ EOF
|
||||
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
||||
UNAME_PROCESSOR=`uname -p`
|
||||
if test "$UNAME_PROCESSOR" = "x86"; then
|
||||
UNAME_PROCESSOR=i386
|
||||
UNAME_MACHINE=pc
|
||||
UNAME_PROCESSOR=i386
|
||||
UNAME_MACHINE=pc
|
||||
fi
|
||||
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1305,13 +1303,13 @@ EOF
|
||||
echo pdp10-unknown-its
|
||||
exit ;;
|
||||
SEI:*:*:SEIUX)
|
||||
echo mips-sei-seiux${UNAME_RELEASE}
|
||||
echo mips-sei-seiux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:DragonFly:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||
exit ;;
|
||||
*:*VMS:*:*)
|
||||
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||
case "${UNAME_MACHINE}" in
|
||||
A*) echo alpha-dec-vms ; exit ;;
|
||||
I*) echo ia64-dec-vms ; exit ;;
|
||||
@ -1486,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize
|
||||
the operating system you are using. It is advised that you
|
||||
download the most up to date version of the config scripts from
|
||||
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||
and
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||
|
||||
If the version you run ($0) is already up to date, please
|
||||
send the following data and any information you think might be
|
||||
|
47
config.sub
vendored
47
config.sub
vendored
@ -4,7 +4,7 @@
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2008-03-08'
|
||||
timestamp='2008-06-16'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -250,7 +250,7 @@ case $basic_machine in
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||
| maxq | mb | microblaze | mcore | mep \
|
||||
| maxq | mb | microblaze | mcore | mep | metag \
|
||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||
| mips16 \
|
||||
| mips64 | mips64el \
|
||||
@ -306,8 +306,8 @@ case $basic_machine in
|
||||
# because (1) that's what they normally are, and
|
||||
# (2) the word "unknown" tends to confuse beginning users.
|
||||
i*86 | x86_64)
|
||||
basic_machine=$basic_machine-pc
|
||||
;;
|
||||
basic_machine=$basic_machine-pc
|
||||
;;
|
||||
# Object if more than one company name word.
|
||||
*-*-*)
|
||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
||||
@ -331,9 +331,9 @@ case $basic_machine in
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| m32c- | m32r-* | m32rle-* \
|
||||
| m32c-* | m32r-* | m32rle-* \
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
|
||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||
| mips16-* \
|
||||
| mips64-* | mips64el-* \
|
||||
@ -397,7 +397,7 @@ case $basic_machine in
|
||||
basic_machine=a29k-amd
|
||||
os=-udi
|
||||
;;
|
||||
abacus)
|
||||
abacus)
|
||||
basic_machine=abacus-unknown
|
||||
;;
|
||||
adobe68k)
|
||||
@ -463,6 +463,10 @@ case $basic_machine in
|
||||
basic_machine=c90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
cegcc)
|
||||
basic_machine=arm-unknown
|
||||
os=-cegcc
|
||||
;;
|
||||
convex-c1)
|
||||
basic_machine=c1-convex
|
||||
os=-bsd
|
||||
@ -530,6 +534,10 @@ case $basic_machine in
|
||||
basic_machine=m88k-motorola
|
||||
os=-sysv3
|
||||
;;
|
||||
dicos)
|
||||
basic_machine=i686-pc
|
||||
os=-dicos
|
||||
;;
|
||||
djgpp)
|
||||
basic_machine=i586-pc
|
||||
os=-msdosdjgpp
|
||||
@ -1217,8 +1225,8 @@ esac
|
||||
if [ x"$os" != x"" ]
|
||||
then
|
||||
case $os in
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# -solaris* is a basic system type, with this one exception.
|
||||
-solaris1 | -solaris1.*)
|
||||
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
||||
@ -1252,7 +1260,7 @@ case $os in
|
||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
@ -1301,7 +1309,7 @@ case $os in
|
||||
-opened*)
|
||||
os=-openedition
|
||||
;;
|
||||
-os400*)
|
||||
-os400*)
|
||||
os=-os400
|
||||
;;
|
||||
-wince*)
|
||||
@ -1350,7 +1358,7 @@ case $os in
|
||||
-sinix*)
|
||||
os=-sysv4
|
||||
;;
|
||||
-tpf*)
|
||||
-tpf*)
|
||||
os=-tpf
|
||||
;;
|
||||
-triton*)
|
||||
@ -1392,6 +1400,9 @@ case $os in
|
||||
-zvmoe)
|
||||
os=-zvmoe
|
||||
;;
|
||||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-none)
|
||||
;;
|
||||
*)
|
||||
@ -1414,10 +1425,10 @@ else
|
||||
# system, and we'll never get to this point.
|
||||
|
||||
case $basic_machine in
|
||||
score-*)
|
||||
score-*)
|
||||
os=-elf
|
||||
;;
|
||||
spu-*)
|
||||
spu-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-acorn)
|
||||
@ -1429,8 +1440,8 @@ case $basic_machine in
|
||||
arm*-semi)
|
||||
os=-aout
|
||||
;;
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
# This must come before the *-dec entry.
|
||||
pdp10-*)
|
||||
@ -1457,7 +1468,7 @@ case $basic_machine in
|
||||
m68*-cisco)
|
||||
os=-aout
|
||||
;;
|
||||
mep-*)
|
||||
mep-*)
|
||||
os=-elf
|
||||
;;
|
||||
mips*-cisco)
|
||||
@ -1484,7 +1495,7 @@ case $basic_machine in
|
||||
*-ibm)
|
||||
os=-aix
|
||||
;;
|
||||
*-knuth)
|
||||
*-knuth)
|
||||
os=-mmixware
|
||||
;;
|
||||
*-wec)
|
||||
|
170
configure.in
170
configure.in
@ -1,5 +1,5 @@
|
||||
dnl***************************************************************************
|
||||
dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
dnl Copyright (c) 1998-2007,2008 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.433 2008/04/12 23:39:06 tom Exp $
|
||||
dnl $Id: configure.in,v 1.454 2008/10/18 14:53:32 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.433 $)
|
||||
AC_REVISION($Revision: 1.454 $)
|
||||
AC_INIT(ncurses/base/lib_initscr.c)
|
||||
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
|
||||
|
||||
@ -361,12 +361,7 @@ 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)
|
||||
CF_ENABLE_RPATH
|
||||
AC_MSG_CHECKING(if shared libraries should be relinked during install)
|
||||
AC_ARG_ENABLE(relink,
|
||||
[ --disable-relink relink shared libraries during install],
|
||||
@ -428,6 +423,8 @@ if test "$use_database" != no ; then
|
||||
[ --with-hashed-db specify hashed-database library],,
|
||||
[with_hashed_db=no])
|
||||
AC_MSG_RESULT($with_hashed_db)
|
||||
else
|
||||
with_hashed_db=no
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(for list of fallback descriptions)
|
||||
@ -504,12 +501,13 @@ 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.
|
||||
### when constructed using "big" strings. More than the C compiler, the awk
|
||||
### program is a limit on most vendor UNIX systems. Check that we can build.
|
||||
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])
|
||||
[with_big_strings=$enableval],
|
||||
[CF_AWK_BIG_PRINTF(12000,with_big_strings)])
|
||||
AC_MSG_RESULT($with_big_strings)
|
||||
|
||||
USE_BIG_STRINGS=0
|
||||
@ -681,10 +679,10 @@ if test "$with_widec" = yes ; then
|
||||
CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
|
||||
# with_overwrite=no
|
||||
NCURSES_CH_T=cchar_t
|
||||
AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
|
||||
AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
|
||||
if test "$ac_cv_func_putwc" != yes ; then
|
||||
CF_LIBUTF8
|
||||
if test "$cf_cv_libutf8" = yes ; then
|
||||
CF_UTF8_LIB
|
||||
if test "$cf_cv_utf8_lib" != no ; then
|
||||
NCURSES_LIBUTF8=1
|
||||
fi
|
||||
fi
|
||||
@ -744,6 +742,18 @@ NCURSES_TPARM_VARARGS=0
|
||||
test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
|
||||
AC_SUBST(NCURSES_TPARM_VARARGS)
|
||||
|
||||
### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
|
||||
if test "$with_ticlib" != no ; then
|
||||
AC_MSG_CHECKING(if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library)
|
||||
AC_ARG_ENABLE(tic-depends,
|
||||
[ --disable-tic-depends link tic library without explicit dependency on ncurses library],
|
||||
[with_tic_depends=$enableval],
|
||||
[with_tic_depends=yes])
|
||||
AC_MSG_RESULT($with_tic_depends)
|
||||
else
|
||||
with_tic_depends=no
|
||||
fi
|
||||
|
||||
### use option --with-bool to override bool's type
|
||||
AC_MSG_CHECKING(for type of bool)
|
||||
AC_ARG_WITH(bool,
|
||||
@ -836,6 +846,40 @@ if test "$with_ext_const" = yes ; then
|
||||
fi
|
||||
AC_SUBST(NCURSES_CONST)
|
||||
|
||||
### use option --enable-ext-colors to turn on use of colors beyond 16.
|
||||
AC_MSG_CHECKING(if you want to use extended colors)
|
||||
AC_ARG_ENABLE(ext-colors,
|
||||
[ --enable-ext-colors compile for 256-color support],
|
||||
[with_ext_colors=$enableval],
|
||||
[with_ext_colors=no])
|
||||
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_ERROR(This option applies only to wide-character library)
|
||||
else
|
||||
# cannot be ABI 5 since it changes sizeof(cchar_t)
|
||||
CF_NCURSES_ABI_6
|
||||
fi
|
||||
NCURSES_EXT_COLORS=1
|
||||
AC_DEFINE(NCURSES_EXT_COLORS)
|
||||
fi
|
||||
AC_SUBST(NCURSES_EXT_COLORS)
|
||||
|
||||
### use option --enable-ext-mouse to modify coding to support 5-button mice
|
||||
AC_MSG_CHECKING(if you want to use extended mouse encoding)
|
||||
AC_ARG_ENABLE(ext-mouse,
|
||||
[ --enable-ext-mouse compile for extended mouse-encoding],
|
||||
[with_ext_mouse=$enableval],
|
||||
[with_ext_mouse=no])
|
||||
AC_MSG_RESULT($with_ext_mouse)
|
||||
NCURSES_MOUSE_VERSION=1
|
||||
if test "$with_ext_mouse" = yes ; then
|
||||
NCURSES_MOUSE_VERSION=2
|
||||
CF_NCURSES_ABI_6
|
||||
fi
|
||||
AC_SUBST(NCURSES_MOUSE_VERSION)
|
||||
|
||||
AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
|
||||
AC_ARG_ENABLE(no-padding,
|
||||
[ --enable-no-padding compile with $NCURSES_NO_PADDING code],
|
||||
@ -935,47 +979,35 @@ AC_ARG_ENABLE(colorfgbg,
|
||||
AC_MSG_RESULT($with_colorfgbg)
|
||||
test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
|
||||
|
||||
### use option --enable-ext-colors to turn on use of colors beyond 16.
|
||||
AC_MSG_CHECKING(if you want to use experimental extended colors)
|
||||
AC_ARG_ENABLE(ext-colors,
|
||||
[ --enable-ext-colors compile for experimental 256-color support],
|
||||
[with_ext_colors=$enableval],
|
||||
[with_ext_colors=no])
|
||||
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_ERROR(This option applies only to wide-character library)
|
||||
else
|
||||
# cannot be ABI 5 since it changes sizeof(cchar_t)
|
||||
CF_NCURSES_ABI_6
|
||||
fi
|
||||
NCURSES_EXT_COLORS=1
|
||||
AC_DEFINE(NCURSES_EXT_COLORS)
|
||||
fi
|
||||
AC_SUBST(NCURSES_EXT_COLORS)
|
||||
|
||||
### use option --enable-ext-mouse to modify coding to support 5-button mice
|
||||
AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
|
||||
AC_ARG_ENABLE(ext-mouse,
|
||||
[ --enable-ext-mouse compile for experimental mouse-encoding],
|
||||
[with_ext_mouse=$enableval],
|
||||
[with_ext_mouse=no])
|
||||
AC_MSG_RESULT($with_ext_mouse)
|
||||
NCURSES_MOUSE_VERSION=1
|
||||
if test "$with_ext_mouse" = yes ; then
|
||||
NCURSES_MOUSE_VERSION=2
|
||||
CF_NCURSES_ABI_6
|
||||
fi
|
||||
AC_SUBST(NCURSES_MOUSE_VERSION)
|
||||
|
||||
# This is still experimental (20080329), but should ultimately be moved to
|
||||
# the script-block --with-normal, etc.
|
||||
CF_WITH_PTHREAD
|
||||
|
||||
AC_MSG_CHECKING(if you want to use weak-symbols for pthreads)
|
||||
AC_ARG_ENABLE(weak-symbols,
|
||||
[ --enable-weak-symbols enable weak-symbols for pthreads],
|
||||
[use_weak_symbols=$withval],
|
||||
[use_weak_symbols=no])
|
||||
AC_MSG_RESULT($use_weak_symbols)
|
||||
if test "$use_weak_symbols" = yes ; then
|
||||
CF_WEAK_SYMBOLS
|
||||
else
|
||||
cf_cv_weak_symbols=no
|
||||
fi
|
||||
|
||||
if test $cf_cv_weak_symbols = yes ; then
|
||||
AC_DEFINE(USE_WEAK_SYMBOLS)
|
||||
fi
|
||||
|
||||
PTHREAD=
|
||||
if test "$with_pthread" = "yes" ; then
|
||||
AC_DEFINE(USE_PTHREADS)
|
||||
enable_reentrant=yes
|
||||
if test $cf_cv_weak_symbols = yes ; then
|
||||
PTHREAD=-lpthread
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(PTHREAD)
|
||||
|
||||
# Reentrant code has to be opaque; there's little advantage to making ncurses
|
||||
# opaque outside of that, so there is no --enable-opaque option. We can use
|
||||
@ -992,7 +1024,11 @@ if test "$with_reentrant" = yes ; then
|
||||
cf_cv_enable_opaque="NCURSES_INTERNALS"
|
||||
NCURSES_OPAQUE=1
|
||||
NCURSES_SIZE_T=int
|
||||
LIB_SUFFIX="t${LIB_SUFFIX}"
|
||||
if test $cf_cv_weak_symbols = yes ; then
|
||||
CF_REMOVE_LIB(LIBS,$LIBS,pthread)
|
||||
else
|
||||
LIB_SUFFIX="t${LIB_SUFFIX}"
|
||||
fi
|
||||
AC_DEFINE(USE_REENTRANT)
|
||||
CF_NCURSES_ABI_6
|
||||
else
|
||||
@ -1297,6 +1333,20 @@ if test -n "$CXX" ; then
|
||||
|
||||
AC_CHECK_HEADERS(iostream typeinfo)
|
||||
|
||||
if test x"$ac_cv_header_iostream" = xyes ; then
|
||||
AC_MSG_CHECKING(if iostream uses std-namespace)
|
||||
AC_TRY_COMPILE([
|
||||
#include <iostream>
|
||||
using std::endl;
|
||||
using std::cerr;],[
|
||||
cerr << "testing" << endl;
|
||||
],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
|
||||
AC_MSG_RESULT($cf_iostream_namespace)
|
||||
if test "$cf_iostream_namespace" = yes ; then
|
||||
AC_DEFINE(IOSTREAM_NAMESPACE)
|
||||
fi
|
||||
fi
|
||||
|
||||
CF_BOOL_DECL
|
||||
CF_BOOL_SIZE
|
||||
CF_ETIP_DEFINES
|
||||
@ -1527,16 +1577,7 @@ AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("")
|
||||
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
|
||||
CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_LIB_SUFFIX,DFT_DEP_SUFFIX)dnl
|
||||
AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
|
||||
AC_MSG_RESULT($DFT_DEP_SUFFIX)
|
||||
|
||||
@ -1551,7 +1592,7 @@ AC_MSG_CHECKING(c++ library-dependency suffix)
|
||||
if test "$with_libtool" != "no"; then
|
||||
CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
|
||||
else
|
||||
CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
|
||||
CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library
|
||||
fi
|
||||
AC_MSG_RESULT($CXX_LIB_SUFFIX)
|
||||
AC_SUBST(CXX_LIB_SUFFIX)
|
||||
@ -1627,7 +1668,11 @@ else
|
||||
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}"
|
||||
if test "$with_tic_depends" = yes ; then
|
||||
TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
else
|
||||
TICS_LIST="$SHLIB_LIST"
|
||||
fi
|
||||
|
||||
TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
fi
|
||||
@ -1771,6 +1816,7 @@ 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"
|
||||
cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
|
||||
cf_cv_shared_soname='$cf_cv_shared_soname'
|
||||
cf_cv_shlib_version="$cf_cv_shlib_version"
|
||||
cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
|
||||
cf_cv_system_name="$cf_cv_system_name"
|
||||
|
11
dist.mk
11
dist.mk
@ -25,7 +25,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: dist.mk,v 1.641 2008/05/03 12:31:08 tom Exp $
|
||||
# $Id: dist.mk,v 1.671 2008/11/02 00:58:38 tom Exp $
|
||||
# Makefile for creating ncurses distributions.
|
||||
#
|
||||
# This only needs to be used directly as a makefile by developers, but
|
||||
@ -36,8 +36,8 @@ SHELL = /bin/sh
|
||||
|
||||
# These define the major/minor/patch versions of ncurses.
|
||||
NCURSES_MAJOR = 5
|
||||
NCURSES_MINOR = 6
|
||||
NCURSES_PATCH = 20080503
|
||||
NCURSES_MINOR = 7
|
||||
NCURSES_PATCH = 20081102
|
||||
|
||||
# We don't append the patch to the version, since this only applies to releases
|
||||
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
|
||||
@ -91,6 +91,11 @@ doc/hackguide.doc: doc/html/hackguide.html
|
||||
#
|
||||
# The distributed html files are formatted using
|
||||
# configure --without-manpage-renames
|
||||
#
|
||||
# The edit_man.sed script is built as a side-effect of installing the manpages.
|
||||
# If that conflicts with the --without-manpage-renames, you can install those
|
||||
# in a different location using the --with-install-prefix option of the
|
||||
# configure script.
|
||||
MANPROG = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii
|
||||
|
||||
manhtml:
|
||||
|
@ -1,8 +1,8 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
|
||||
<!--
|
||||
$Id: announce.html,v 1.51 2006/12/17 23:32:42 tom Exp $
|
||||
$Id: announce.html,v 1.52 2008/11/02 01:05:08 tom Exp $
|
||||
****************************************************************************
|
||||
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -31,13 +31,13 @@
|
||||
-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Announcing ncurses 5.6</TITLE>
|
||||
<TITLE>Announcing ncurses 5.7</TITLE>
|
||||
<link rev=made href="mailto:bug-ncurses@gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
||||
<H1>Announcing ncurses 5.6</H1>
|
||||
<H1>Announcing ncurses 5.7</H1>
|
||||
|
||||
The ncurses (new curses) library is a free software emulation of
|
||||
curses in System V Release 4.0, and more. It uses terminfo format,
|
||||
@ -69,185 +69,170 @@ the GNU distribution site
|
||||
|
||||
<H1>Release Notes</H1>
|
||||
|
||||
This release is designed to be upward compatible from ncurses 5.0 through 5.5;
|
||||
This release is designed to be upward compatible from ncurses 5.0 through 5.6;
|
||||
very few applications will require recompilation, depending on the platform.
|
||||
These are the highlights from the change-log since ncurses 5.5 release.
|
||||
These are the highlights from the change-log since ncurses 5.6 release.
|
||||
<p>
|
||||
Interface changes:
|
||||
<ul>
|
||||
<li>generate linkable stubs for some macros:
|
||||
<br>
|
||||
getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
|
||||
getpary, getpary,
|
||||
<br>
|
||||
and (for libncursesw)
|
||||
<br>
|
||||
wgetbkgrnd
|
||||
getattrs
|
||||
|
||||
</ul>
|
||||
New features and improvements:
|
||||
<ul>
|
||||
<li>library
|
||||
<ul>
|
||||
<li>support hashed databases for the terminal descriptions.
|
||||
This uses the Berkeley database, has been tested for
|
||||
several versions on different platforms.
|
||||
<li>new flavor of the ncurses library provides rudimentary
|
||||
support for POSIX threads. Several functions are
|
||||
reentrant, but most require either a window-level or
|
||||
screen-level mutex.<br>
|
||||
(This is <em>API</em>-compatible,
|
||||
but not <em>ABI</em>-compatible with the normal library).
|
||||
|
||||
<li>add <code>use_legacy_coding()</code> function to support
|
||||
lynx's font-switching feature.
|
||||
<li>add <code>NCURSES_OPAQUE</code> symbol to curses.h, will
|
||||
use to make structs opaque in selected configurations.
|
||||
|
||||
<li>add extension <code>nofilter()</code>, to cancel a prior
|
||||
<code>filter()</code> call.
|
||||
<li>add <code>NCURSES_EXT_FUNCS</code> and
|
||||
<code>NCURSES_EXT_COLORS</code> symbols to curses.h to make
|
||||
it simpler to tell if the extended functions and/or colors
|
||||
are declared.
|
||||
|
||||
<li>add/install a package config script, e.g.,
|
||||
<code>ncurses5-config</code> or
|
||||
<code>ncursesw5-config</code>, according to
|
||||
configuration options.
|
||||
<li>add wresize() to C++ binding
|
||||
|
||||
<li>provide ifdef for <code>NCURSES_NOMACROS</code> which
|
||||
suppresses most macro definitions from curses.h, i.e.,
|
||||
where a macro is defined to override a function to improve
|
||||
performance.
|
||||
<li>eliminate fixed-buffer vsprintf() calls in C++ binding.
|
||||
|
||||
<li>make ifdef's consistent in <code>curses.h</code> for the
|
||||
extended colors so the header file can be used for the
|
||||
normal curses library. The header file installed for
|
||||
extended colors is a variation of the wide-character
|
||||
configuration.
|
||||
<li>add several functions to C++ binding which wrap C functions
|
||||
that pass a WINDOW* parameter.
|
||||
|
||||
<li>improve <code>tgetstr()</code> by making the return value
|
||||
point into the user's buffer, if provided.
|
||||
<li>adapt mouse-handling code from menu library in form-library
|
||||
|
||||
<li>add ifdef's allowing ncurses to be built with
|
||||
<code>tparm()</code> using either varargs (the existing
|
||||
status), or using a fixed-parameter list (to match X/Open).
|
||||
<li>improve tracing for form library, showing created forms,
|
||||
fields, etc.
|
||||
|
||||
<li>widen the test for xterm <code>kmous</code> a little to
|
||||
<code>allow</code> for other
|
||||
strings than "\E[M", e.g., for <code>xterm-sco</code>
|
||||
functionality in xterm.
|
||||
<li>make $NCURSES_NO_PADDING feature work for termcap interface .
|
||||
|
||||
<li>modify <code>wgetnstr()</code> to return
|
||||
<code>KEY_RESIZE</code> if a sigwinch occurs.
|
||||
<li>add check to trace-file open, if the given name is a
|
||||
directory, add ".log" to the name and try again.
|
||||
|
||||
<li>move prototypes for wide-character trace functions from
|
||||
curses.tail to curses.wide to avoid accidental reference to
|
||||
those if <code>_XOPEN_SOURCE_EXTENDED</code> is defined
|
||||
without ensuring that <wchar.h> is included.
|
||||
|
||||
<li>change the way shared libraries (other than libtool) are
|
||||
installed. Rather than copying the build-tree's libraries,
|
||||
link the shared objects into the install directory. This
|
||||
makes the <code>--with-rpath</code> option work except with
|
||||
<code>$(DESTDIR)</code>.
|
||||
|
||||
<li>several improvements for rendering in hpterm. These are
|
||||
only available if the library is configured using
|
||||
<code>--enable-xmc-glitch</code>.
|
||||
|
||||
<li>Add <code>NCURSES_NO_HARD_TABS</code> and
|
||||
<code>NCURSES_NO_MAGIC_COOKIE</code> environment variables
|
||||
to allow runtime suppression of the related hard-tabs and
|
||||
xmc-glitch features.
|
||||
<li>several new manpages: curs_legacy.3x, curs_memleaks.3x,
|
||||
curs_opaque.3x and curs_threads.3x
|
||||
</ul>
|
||||
|
||||
<li>programs:
|
||||
<ul>
|
||||
<li>add new test programs: chgat.c, demo_altkeys.c,
|
||||
echochar.c, foldkeys.c, movewindow.c, redraw.c, (noting
|
||||
that existing test programs also were modified to test
|
||||
additional features).
|
||||
<li>modified three test-programs to demonstrate the threading
|
||||
support in this version: ditto, rain, worm.
|
||||
|
||||
<li>modify tack to test extended capability function-key
|
||||
strings.
|
||||
<li>several new test-programs: demo_panels, dots_mvcur,
|
||||
inch_wide, inchs, key_name, key_names, savescreen,
|
||||
savescreen.sh test_arrays, test_get_wstr, test_getstr,
|
||||
test_instr, test_inwstr and test_opaque.
|
||||
|
||||
<li>modify toe to access termcap data, e.g., via <code>cgetent()</code>
|
||||
functions, or as a text file if those are not available.
|
||||
<li>add <code>adacurses-config</code> to the Ada95 install.
|
||||
|
||||
<li>improve infocmp/tic <code>-f</code> option formatting.
|
||||
<li>modify tic <code>-f</code> option to format spaces as
|
||||
<code>\s</code> to prevent them from being lost when that
|
||||
is read back in unformatted strings.
|
||||
|
||||
<li>add <code>toe -a</code> option, to show all databases.
|
||||
This uses new private interfaces in the ncurses library for
|
||||
iterating through the list of databases.
|
||||
|
||||
<li>modify <code>MKfallback.sh</code> to use
|
||||
<code>tic -x</code> when constructing fallback tables to
|
||||
allow extended capabilities to be retrieved from a fallback entry.
|
||||
<li>The <code>tack</code> program is now distributed separately
|
||||
from ncurses.
|
||||
</ul>
|
||||
|
||||
<li>terminal database
|
||||
<ul>
|
||||
<li>add terminfo entries for xfce terminal (xfce) and multi gnome terminal (mgt)
|
||||
<li>add nsterm-16color entry
|
||||
<li>updated mlterm terminfo entry
|
||||
<li>add kon, kon2 and jfbterm terminfo entry
|
||||
<li>remove invis capability from klone+sgr, mainly used by linux entry, since it does not really do this
|
||||
<li>add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
|
||||
<li>add shifted up/down arrow codes to xterm-new as kind/kri strings
|
||||
<li>add hpterm-color terminfo entry
|
||||
<li>add 256color variants of terminfo entries for programs which are reported to implement this feature
|
||||
<li>correct order of use-clauses in rxvt-basic entry which made codes for f1-f4 vt100-style rather than vt220-style.
|
||||
<li>added entries:
|
||||
<ul>
|
||||
<li><code>Eterm-256color</code>,
|
||||
<code>Eterm-88color</code> and
|
||||
<code>rxvt-88color</code>
|
||||
<li><code>aterm</code>
|
||||
<li><code>konsole-256color</code>
|
||||
<li><code>mrxvt</code>
|
||||
<li><code>screen.mlterm</code>
|
||||
<li><code>screen.rxvt</code>
|
||||
<li><code>teraterm4.59</code> is now the primary primary
|
||||
teraterm entry, renamed original to
|
||||
<code>teraterm2.3</code>
|
||||
<li><code>9term</code> terminal
|
||||
<li>Newbury Data entries
|
||||
</ul>
|
||||
<li>updated/improved entries:
|
||||
<ul>
|
||||
<li><code>gnome</code> to version 2.22.3
|
||||
<li><code>h19</code>, <code>z100</code>
|
||||
<li><code>konsole</code> to version 1.6.6
|
||||
<li><code>mlterm</code>, <code>mlterm+pcfkeys</code>
|
||||
<li><code>xterm</code>, and building-blocks for function-keys
|
||||
to <a href="http://invisible-island.net/xterm/xterm.log.html#xterm_230">xterm patch #230</a>.
|
||||
</ul>
|
||||
</ul>
|
||||
</ul>
|
||||
Major bug fixes:
|
||||
<ul>
|
||||
<li>correct a typo in configure <code>--with-bool</code> option for the
|
||||
case where <code>--without-cxx</code> is used.
|
||||
<li>add logic to tic for cancelling strings in user-defined
|
||||
capabilities
|
||||
(this is <em>needed</em> for
|
||||
current <code>konsole</code> terminfo entry).
|
||||
|
||||
<li>move assignment from environment variable <code>ESCDELAY</code>
|
||||
from <code>initscr()</code> down to <code>newterm()</code> so the
|
||||
environment variable affects timeouts for terminals opened with
|
||||
newterm() as well.
|
||||
<li>modify <code>mk-1st.awk</code> so the generated makefile rules for
|
||||
linking or installing shared libraries do not first remove the
|
||||
library, in case it is in use, e.g., <code>libncurses.so</code> by
|
||||
<code>/bin/sh</code>.
|
||||
|
||||
<li>modify <code>werase</code> to clear multicolumn characters that
|
||||
extend into a derived window.
|
||||
<li>correct check for notimeout() in wgetch().
|
||||
|
||||
<li>modify <code>wchgat()</code> to mark updated cells as changed so a
|
||||
refresh will repaint those cells.
|
||||
<li>fix a sign-extension bug in infocmp's repair_acsc() function.
|
||||
|
||||
<li>correct logic in <code>wadd_wch()</code> and
|
||||
<code>wecho_wch()</code>, which did not guard against passing the
|
||||
multi-column attribute into a call on <code>waddch()</code>, e.g.,
|
||||
using data returned by <code>win_wch()</code>
|
||||
<li>change winnstr() to stop at the end of the line.
|
||||
|
||||
<li>fix redrawing of windows other than <code>stdscr</code> using
|
||||
<code>wredrawln()</code> by touching the corresponding rows in
|
||||
<code>curscr</code>.
|
||||
<li>make Ada95 demo_panels() example work.
|
||||
|
||||
<li>reduce memory leaks in repeated calls to <code>tgetent()</code> by
|
||||
remembering the last <code>TERMINAL*</code> value allocated to hold
|
||||
the corresponding data and freeing that if the
|
||||
<code>tgetent()</code> result buffer is the same as the previous
|
||||
call.
|
||||
<li>fix for adding a non-spacing character at the beginning of a line.
|
||||
|
||||
<li>modify <code>read_termtype()</code> so the <code>term_names</code>
|
||||
data is always allocated as part of the <code>str_table</code>, a
|
||||
better fix for a memory leak.
|
||||
<li>fill in extended-color pair to make colors work
|
||||
for wide-characters using extended-colors.
|
||||
|
||||
<li>fix <code>wins_nwstr(),</code> which did not handle single-column
|
||||
non-8bit codes.
|
||||
<li>improve refresh of window on top of multi-column characters,
|
||||
taking into account split characters on left/right window
|
||||
boundaries.
|
||||
|
||||
<li>modify <code>wbkgrnd()</code> to avoid clearing the
|
||||
<code>A_CHARTEXT</code> attribute bits since those record the state
|
||||
of multicolumn characters.
|
||||
<li>modify <code>win_wchnstr()</code> to ensure that only a base cell
|
||||
is returned for each multi-column character.
|
||||
|
||||
<li>improve <code>SIGWINCH</code> handling by postponing its effect
|
||||
during <code>newterm()</code>, etc., when allocating screens.
|
||||
<li>improve <code>waddch()</code> and <code>winsch()</code> handling of
|
||||
EILSEQ from <code>mbrtowc()</code> by using <code>unctrl()</code>
|
||||
to display illegal bytes rather than trying to append further bytes
|
||||
to make up a valid sequence.
|
||||
|
||||
<li>remove 970913 feature for copying subwindows as they are moved in
|
||||
<code>mvwin()</code>.
|
||||
<li>restore <code>curs_set()</code> state after
|
||||
<code>endwin()</code>/<code>refresh()</code>
|
||||
|
||||
<li>add checks in <code>waddchnstr()</code> and
|
||||
<code>wadd_wchnstr()</code> to stop copying when a null character
|
||||
is found.
|
||||
<li>modify <code>keyname()</code> to use "^X" form only if
|
||||
<code>meta()</code> has been called, or if <code>keyname()</code>
|
||||
is called without initializing curses, e.g., via
|
||||
<code>initscr()</code> or <code>newterm()</code>.
|
||||
|
||||
<li>add some checks to ensure current position is within scrolling
|
||||
region before scrolling on a new line.
|
||||
<li>modify <code>unctrl()</code> to check codes in 128-255 range versus
|
||||
<code>isprint()</code>.
|
||||
If they are not printable, and locale was set, use a "M-" or "~"
|
||||
sequence.
|
||||
|
||||
<li>add a workaround to ACS mapping to allow applications such as
|
||||
test/blue.c to use the "PC ROM" characters by masking them with
|
||||
A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
|
||||
of legacy coding.
|
||||
<li>improve <code>resizeterm()</code> by moving ripped-off lines, and
|
||||
repainting the soft-keys.
|
||||
|
||||
<li>modify form library to accept control characters such as newline
|
||||
in set_field_buffer(), which is compatible with Solaris.
|
||||
|
||||
<li>use <code>NCURSES_MOUSE_MASK()</code> in definition of
|
||||
<code>BUTTON_RELEASE()</code>, etc., to make those work properly
|
||||
with the <code>--enable-ext-mouse</code> configuration
|
||||
|
||||
<li>correct some functions in Ada95 binding which were using return
|
||||
value from C where none was returned.
|
||||
|
||||
<li>reviewed/fixed issues reported by Coverity and Klocwork tools.
|
||||
</ul>
|
||||
|
||||
Portability:
|
||||
@ -257,110 +242,115 @@ Portability:
|
||||
<li>new options:
|
||||
<dl>
|
||||
|
||||
<dt>--with-hashed-db
|
||||
<dd>Use Berkeley hashed database for storing terminfo data rather than storing
|
||||
each compiled entry in a separate binary file within a directory
|
||||
tree.
|
||||
<dt>--disable-big-strings
|
||||
<dd>control whether static string tables are generated as single
|
||||
large strings (to improve startup performance), or as array
|
||||
of individual strings.
|
||||
|
||||
<dt>--without-dlsym
|
||||
<dd>Do not use <code>dlsym()</code> to load GPM dynamically.
|
||||
<dt>--disable-relink
|
||||
<dd>control whether shared libraries are relinked (during install)
|
||||
when rpath is enabled.
|
||||
|
||||
<dt>--with-valgrind
|
||||
<dd>Simplify building for testing with valgrind.
|
||||
<dt>--disable-tic-depends
|
||||
<dd>make explicit whether tic library depends on ncurses/ncursesw
|
||||
library.
|
||||
|
||||
<dt>--enable-wgetch-events
|
||||
<dd>Compile with experimental wgetch-events code.
|
||||
<dt>--enable-mixed-case
|
||||
<dd>override the configure script's check if the filesystem
|
||||
supports mixed-case filenames.
|
||||
This allows one to control how the terminal database
|
||||
maps to the filesystem.
|
||||
For filesystems that do not support mixed-case, the library
|
||||
uses generate 2-character (hexadecimal) codes for the
|
||||
lower-level of the filesystem terminfo database
|
||||
|
||||
<dt>--enable-signed-char
|
||||
<dd>Store booleans in "signed char" rather than "char".
|
||||
<dt>--enable-reentrant
|
||||
<dd>builds a different flavor of the ncurses library (ncursest)
|
||||
which improves reentrant use of the
|
||||
library by reducing global and static variables
|
||||
(see the "--with-pthread" option for the threaded support).
|
||||
|
||||
<dt>--enable-weak-symbols
|
||||
<dd>use weak-symbols for linking to the POSIX thread library,
|
||||
and use the same soname for the ncurses shared library
|
||||
as the normal library (caveat: the ABI is for the threaded
|
||||
library, which makes global data accessed via functions).
|
||||
|
||||
<dt>--with-pthread
|
||||
<dd>build with the POSIX thread library (tested with AIX,
|
||||
Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64).
|
||||
|
||||
<dt>--with-ticlib
|
||||
<dd>build/install the tic-support functions in a separate library
|
||||
|
||||
</dl>
|
||||
|
||||
<li>improved options:
|
||||
<dl>
|
||||
|
||||
<dt>--disable-largefile
|
||||
<dd>make the option work both ways.
|
||||
<dt>--enable-ext-colors
|
||||
<dd>requires the wide-character configuration.
|
||||
|
||||
<dt>--with-gpm
|
||||
<dd>The option now accepts a parameter,
|
||||
i.e., the name of the dynamic GPM library to load via
|
||||
<code>dlopen()</code>
|
||||
<dt>--with-chtype
|
||||
<dd>ignore option value "unsigned" is always added to
|
||||
the type in curses.h; do the same for --with-mmask-t.
|
||||
|
||||
<dt>--disable-symlinks
|
||||
<dd>The option now allows one to
|
||||
disable <code>symlink()</code> in <code>tic</code> even when
|
||||
<code>link()</code> does not work.
|
||||
<dt>--with-dmalloc
|
||||
<dd>build-fix for redefinition of <code>strndup</code>.
|
||||
|
||||
<dt>--with-hashed-db
|
||||
<dd>accepts a parameter which is the install-prefix of a given
|
||||
Berkeley Database.
|
||||
|
||||
<dt>--with-hashed-db
|
||||
<dd>the $LIBS environment variable overrides the search for the db
|
||||
library.
|
||||
|
||||
<dt>--without-hashed-db
|
||||
<dd>assumed when "--disable-database" is used.
|
||||
|
||||
</dl>
|
||||
|
||||
</ul>
|
||||
|
||||
<li>other configure/build issues: <ul> <li>remove special case for
|
||||
Darwin in <code>CF_XOPEN_SOURCE</code> configure macro.
|
||||
|
||||
<li>add configure check to ensure that <code>SIGWINCH</code> is
|
||||
defined on platforms such as OS X which exclude that when
|
||||
<code>_XOPEN_SOURCE,</code> etc., are defined
|
||||
|
||||
<li>use ld's <code>-search_paths_first</code> option on Darwin
|
||||
to work around odd search rules on that platform.
|
||||
|
||||
<li>improve ifdef's for <code>_POSIX_VDISABLE</code> in tset to
|
||||
work with Mac OS X.
|
||||
|
||||
<li>modify configure script to ensure that if the C compiler is
|
||||
used rather than the loader in making shared libraries, the
|
||||
<code>$(CFLAGS)</code> variable is also used.
|
||||
|
||||
<li>use <code>${CC}</code> rather than <code>${LD}</code> in
|
||||
shared library rules for IRIX64, Solaris to help ensure
|
||||
that initialization sections are provided for extra linkage
|
||||
requirements, e.g., of C++ applications.
|
||||
|
||||
<li>improve some shared-library configure scripting for Linux,
|
||||
FreeBSD and NetBSD to make
|
||||
<code>--with-shlib-version</code> work.
|
||||
|
||||
<li>split up dependency of <code>names.c</code> and
|
||||
<code>codes.c</code> in <code>ncurses/Makefile</code> to
|
||||
work with parallel make.
|
||||
|
||||
<li>modify <code>MKlib_gen.sh</code> to change
|
||||
preprocessor-expanded <code>_Bool</code> back to <code>bool</code>.
|
||||
|
||||
<li>modify <code>progs/Makefile.in</code> to make
|
||||
<code>tput init</code> work properly with cygwin,
|
||||
i.e., do not pass a <code>.exe</code> in the reference
|
||||
string used in check_aliases.
|
||||
<li>other configure/build issues:
|
||||
<ul>
|
||||
<li>build-fixes for LynxOS
|
||||
<li>modify shared-library rules to allow FreeBSD 3.x to use rpath.
|
||||
<li>build-fix for FreeBSD "contemporary" TTY interface.
|
||||
<li>build-fixes for AIX with libtool.
|
||||
<li>build-fixes for Darwin and libtool.
|
||||
<li>modify BeOS-specific ifdef's to build on Haiku.
|
||||
<li>corrected gcc options for building shared libraries on Solaris
|
||||
and IRIX64.
|
||||
<li>change shared-library configuration for OpenBSD, make rpath work.
|
||||
<li>build-fixes for using libutf8, e.g., on OpenBSD 3.7
|
||||
<li>add "-e" option in ncurses/Makefile.in when generating source-files
|
||||
to force earlier exit if the build environment fails unexpectedly.
|
||||
<li>add support for shared libraries for QNX.
|
||||
<li>change delimiter in <code>MKlib_gen.sh</code> from '%' to '@', to
|
||||
avoid substitution by IBM xlc to '#' as part of its extensions to
|
||||
digraphs.
|
||||
</ul>
|
||||
|
||||
<li>library:
|
||||
<ul>
|
||||
<li>ignore wide-acs line-drawing characters that
|
||||
<code>wcwidth()</code> claims are not one-column. This is
|
||||
a workaround for Solaris' broken locale support.
|
||||
|
||||
<li>reduce name-pollution in <code>term.h</code> by removing
|
||||
<code>#define</code>'s for HAVE_xxx symbols.
|
||||
|
||||
<li>fix <code>#ifdef</code> in <code>c++/internal.h</code> for
|
||||
QNX 6.1
|
||||
<li>rewrite wrapper for <code>wcrtomb()</code>, making it work on
|
||||
Solaris. This is used in the form library to determine the length
|
||||
of the buffer needed by <code>field_buffer</code>.
|
||||
<li>add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
|
||||
type for data manipulated by signal handlers.
|
||||
<li>set locale in misc/ncurses-config.in since it uses a range
|
||||
<li>disable GPM mouse support when $TERM does not happen to contain
|
||||
"linux", since Gpm_Open() no longer limits its assertion to terminals
|
||||
that it might handle, e.g., within "screen" in xterm.
|
||||
<li>reset mouse file-descriptor when unloading GPM library.
|
||||
</ul>
|
||||
|
||||
<li>test programs: <ul> <li>modify <code>test/configure</code> script
|
||||
to allow building test programs with PDCurses/X11.
|
||||
|
||||
<li>modified test programs to allow some to work with NetBSD
|
||||
curses. Several do not because NetBSD curses implements a
|
||||
subset of X/Open curses, and also lacks much of SVr4
|
||||
additions. But it is enough for comparison.
|
||||
|
||||
<li>improved <code>test/configure</code> to build test/ncurses
|
||||
on HPUX 11 using the vendor curses.
|
||||
|
||||
<li>change configure script to produce
|
||||
<code>test/Makefile</code> from data file.
|
||||
<li>test programs:
|
||||
<ul>
|
||||
<li>update test programs to build/work with various UNIX curses for
|
||||
comparisons.
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
@ -410,6 +400,8 @@ and <CODE>define_key()</CODE> allow
|
||||
you to better control the use of function keys,
|
||||
e.g., disabling the ncurses KEY_MOUSE,
|
||||
or by defining more than one control sequence to map to a given key code.
|
||||
<LI>Support for 256-color terminals, such as modern xterm, when configured
|
||||
using the <code>--enable-ext-colors</code> option.
|
||||
<LI>Support for 16-color terminals, such as aixterm and modern xterm.
|
||||
<LI>Better cursor-movement optimization. The package now features a
|
||||
cursor-local-movement computation more efficient than either BSD's
|
||||
@ -513,14 +505,10 @@ for similar applications on GNU/Linux.
|
||||
<br>
|
||||
<DT> pinfo
|
||||
<DD> Lynx-like info browser.
|
||||
<A HREF="http://dione.ids.pl/~pborys/software/pinfo/">http://dione.ids.pl/~pborys/software/pinfo/</A>
|
||||
<A HREF="https://alioth.debian.org/projects/pinfo/">https://alioth.debian.org/projects/pinfo/</A>
|
||||
<DT> tin
|
||||
<DD> newsreader, supporting color, MIME
|
||||
<A HREF="http://www.tin.org/">http://www.tin.org/</A>
|
||||
<DT> vh-1.6
|
||||
<DD> Volks-Hypertext browser for the Jargon File
|
||||
<br>
|
||||
<A HREF="http://www.debian.org/Packages/unstable/text/vh.html">http://www.debian.org/Packages/unstable/text/vh.html</A>
|
||||
</DL>
|
||||
as well as some that use ncurses for the terminfo support alone:
|
||||
<DL>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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: form.priv.h,v 0.26 2006/12/17 19:47:09 tom Exp $ */
|
||||
/* $Id: form.priv.h,v 0.27 2008/09/08 20:29:05 tom Exp $ */
|
||||
|
||||
#ifndef FORM_PRIV_H
|
||||
#define FORM_PRIV_H 1
|
||||
@ -39,8 +39,6 @@
|
||||
#include "mf_common.h"
|
||||
|
||||
#if USE_WIDEC_SUPPORT
|
||||
#include <wchar.h>
|
||||
|
||||
#if HAVE_WCTYPE_H
|
||||
#include <wctype.h>
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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.22 2007/10/13 19:31:17 tom Exp $")
|
||||
MODULE_ID("$Id: frm_def.c,v 1.23 2008/08/04 00:07:55 tom Exp $")
|
||||
|
||||
/* this can't be readonly */
|
||||
static FORM default_form =
|
||||
@ -234,8 +234,16 @@ Connect_Fields(FORM *form, FIELD **fields)
|
||||
fields[j]->page = page_nr;
|
||||
fld = Insert_Field_By_Position(fields[j], fld);
|
||||
}
|
||||
form->page[page_nr].smin = fld->index;
|
||||
form->page[page_nr].smax = fld->sprev->index;
|
||||
if (fld)
|
||||
{
|
||||
form->page[page_nr].smin = fld->index;
|
||||
form->page[page_nr].smax = fld->sprev->index;
|
||||
}
|
||||
else
|
||||
{
|
||||
form->page[page_nr].smin = 0;
|
||||
form->page[page_nr].smax = 0;
|
||||
}
|
||||
}
|
||||
RETURN(E_OK);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_driver.c,v 1.86 2008/01/19 20:11:03 tom Exp $")
|
||||
MODULE_ID("$Id: frm_driver.c,v 1.88 2008/10/18 16:25:00 tom Exp $")
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
This is the core module of the form library. It contains the majority
|
||||
@ -4176,7 +4176,7 @@ form_driver(FORM *form, int c)
|
||||
NULL /* Choice Request is generic */
|
||||
};
|
||||
size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0]));
|
||||
size_t method = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
|
||||
size_t method = (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */
|
||||
|
||||
if ((method >= nMethods) || !(BI->cmd))
|
||||
res = E_SYSTEM_ERROR;
|
||||
@ -4333,15 +4333,6 @@ set_field_buffer(FIELD *field, int buffer, const char *value)
|
||||
|
||||
len = Buffer_Length(field);
|
||||
|
||||
if (buffer == 0)
|
||||
{
|
||||
for (i = 0; (value[i] != '\0') && (i < len); ++i)
|
||||
{
|
||||
if (iscntrl(UChar(value[i])))
|
||||
RETURN(E_BAD_ARGUMENT);
|
||||
}
|
||||
}
|
||||
|
||||
if (Growable(field))
|
||||
{
|
||||
/* for a growable field we must assume zero terminated strings, because
|
||||
@ -4356,14 +4347,6 @@ set_field_buffer(FIELD *field, int buffer, const char *value)
|
||||
* field->cols))))
|
||||
RETURN(E_SYSTEM_ERROR);
|
||||
|
||||
/* in this case we also have to check, whether or not the remaining
|
||||
characters in value are also printable for buffer 0. */
|
||||
if (buffer == 0)
|
||||
{
|
||||
for (i = len; i < vlen; i++)
|
||||
if (iscntrl(UChar(value[i])))
|
||||
RETURN(E_BAD_ARGUMENT);
|
||||
}
|
||||
len = vlen;
|
||||
}
|
||||
}
|
||||
@ -4376,6 +4359,13 @@ set_field_buffer(FIELD *field, int buffer, const char *value)
|
||||
* There should be a better way, but this handles nonspacing characters
|
||||
* and other special cases that we really do not want to handle here.
|
||||
*/
|
||||
#if NCURSES_EXT_FUNCS
|
||||
if (wresize(field->working, field->drows, field->dcols) == ERR)
|
||||
#endif
|
||||
{
|
||||
delwin(field->working);
|
||||
field->working = newpad(field->drows, field->dcols);
|
||||
}
|
||||
wclear(field->working);
|
||||
mvwaddstr(field->working, 0, 0, value);
|
||||
|
||||
@ -4385,7 +4375,12 @@ set_field_buffer(FIELD *field, int buffer, const char *value)
|
||||
}
|
||||
else
|
||||
{
|
||||
mvwin_wchnstr(field->working, 0, 0, widevalue, (int)len);
|
||||
for (i = 0; i < (unsigned)field->drows; ++i)
|
||||
{
|
||||
mvwin_wchnstr(field->working, i, 0,
|
||||
widevalue + (i * field->dcols),
|
||||
field->dcols);
|
||||
}
|
||||
for (i = 0; i < len; ++i)
|
||||
{
|
||||
if (CharEq(myZEROS, widevalue[i]))
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2005,2008 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 *
|
||||
@ -37,7 +37,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_req_name.c,v 1.15 2005/04/16 16:59:27 tom Exp $")
|
||||
MODULE_ID("$Id: frm_req_name.c,v 1.16 2008/07/05 23:22:08 tom Exp $")
|
||||
|
||||
static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
|
||||
{
|
||||
@ -154,7 +154,7 @@ form_request_by_name(const char *str)
|
||||
strncpy(buf, str, sizeof(buf));
|
||||
while ((i < sizeof(buf)) && (buf[i] != '\0'))
|
||||
{
|
||||
buf[i] = toupper(buf[i]);
|
||||
buf[i] = toupper(UChar(buf[i]));
|
||||
i++;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# vile:awkmode
|
||||
BEGIN {
|
||||
print "/****************************************************************************"
|
||||
print " * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *"
|
||||
print " * Copyright (c) 1998-2007,2008 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 *"
|
||||
@ -34,7 +34,7 @@ BEGIN {
|
||||
print "/* and: Thomas E. Dickey 1995-on */"
|
||||
print "/****************************************************************************/"
|
||||
print ""
|
||||
print "/* $Id: MKterm.h.awk.in,v 1.49 2007/08/18 11:44:26 tom Exp $ */"
|
||||
print "/* $Id: MKterm.h.awk.in,v 1.50 2008/05/24 23:13:59 tom Exp $ */"
|
||||
print ""
|
||||
print "/*"
|
||||
print "** term.h -- Definition of struct term"
|
||||
@ -228,9 +228,8 @@ END {
|
||||
print " char * _termname; /* used for termname() */"
|
||||
print "} TERMINAL;"
|
||||
print ""
|
||||
print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
|
||||
print ""
|
||||
print "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
|
||||
print "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);"
|
||||
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);"
|
||||
@ -241,6 +240,7 @@ END {
|
||||
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
|
||||
print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
|
||||
print ""
|
||||
print "#define cur_term NCURSES_PUBLIC_VAR(cur_term())"
|
||||
print "#define boolnames NCURSES_PUBLIC_VAR(boolnames())"
|
||||
print "#define boolcodes NCURSES_PUBLIC_VAR(boolcodes())"
|
||||
print "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
|
||||
@ -253,6 +253,8 @@ END {
|
||||
print ""
|
||||
print "#else"
|
||||
print ""
|
||||
print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
|
||||
print ""
|
||||
print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
|
||||
print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
|
||||
print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2000 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2000,2008 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,9 +29,10 @@
|
||||
/****************************************************************************
|
||||
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
|
||||
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
|
||||
* and: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: capdefaults.c,v 1.12 2000/01/02 02:34:56 tom Exp $ */
|
||||
/* $Id: capdefaults.c,v 1.13 2008/08/04 12:33:42 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Compute obsolete capabilities. The reason this is an include file is
|
||||
@ -44,9 +45,10 @@
|
||||
*/
|
||||
{
|
||||
char *sp;
|
||||
int capval;
|
||||
short capval;
|
||||
|
||||
#define EXTRACT_DELAY(str) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0)
|
||||
#define EXTRACT_DELAY(str) \
|
||||
(short) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0)
|
||||
|
||||
/* current (4.4BSD) capabilities marked obsolete */
|
||||
if (VALID_STRING(carriage_return)
|
||||
@ -73,8 +75,8 @@
|
||||
magic_cookie_glitch_ul = magic_cookie_glitch;
|
||||
|
||||
/* totally obsolete capabilities */
|
||||
linefeed_is_newline = VALID_STRING(newline)
|
||||
&& (strcmp("\n", newline) == 0);
|
||||
linefeed_is_newline = (char) (VALID_STRING(newline)
|
||||
&& (strcmp("\n", newline) == 0));
|
||||
if (VALID_STRING(cursor_left)
|
||||
&& (capval = EXTRACT_DELAY(cursor_left)))
|
||||
backspace_delay = capval;
|
||||
|
@ -32,7 +32,7 @@
|
||||
* and: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: curses.h.in,v 1.186 2008/04/05 15:30:28 tom Exp $ */
|
||||
/* $Id: curses.h.in,v 1.187 2008/08/30 20:11:29 tom Exp $ */
|
||||
|
||||
#ifndef __NCURSES_H
|
||||
#define __NCURSES_H
|
||||
@ -423,7 +423,8 @@ struct _win_st
|
||||
*/
|
||||
#if @NCURSES_EXT_FUNCS@
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
#if !defined(__BEOS__) /* Fix _nc_timed_wait() on BEOS... */
|
||||
#if !defined(__BEOS__) || defined(__HAIKU__)
|
||||
/* Fix _nc_timed_wait() on BEOS... */
|
||||
# define NCURSES_EVENT_VERSION 1
|
||||
#endif /* !defined(__BEOS__) */
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: curses.tail,v 1.15 2007/03/10 17:51:24 tom Exp $ */
|
||||
/* $Id: curses.tail,v 1.16 2008/07/05 20:20:38 tom Exp $ */
|
||||
/*
|
||||
* vile:cmode:
|
||||
* This file is part of ncurses, designed to be appended after curses.h.in
|
||||
@ -79,12 +79,12 @@
|
||||
#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1)
|
||||
|
||||
/* macros to extract single event-bits from masks */
|
||||
#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1))))
|
||||
#define BUTTON_PRESS(e, x) ((e) & (002 << (6 * ((x) - 1))))
|
||||
#define BUTTON_CLICK(e, x) ((e) & (004 << (6 * ((x) - 1))))
|
||||
#define BUTTON_DOUBLE_CLICK(e, x) ((e) & (010 << (6 * ((x) - 1))))
|
||||
#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1))))
|
||||
#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1))))
|
||||
#define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001))
|
||||
#define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002))
|
||||
#define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004))
|
||||
#define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010))
|
||||
#define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020))
|
||||
#define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040))
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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,9 +27,9 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
|
||||
* Author: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
/* $Id: nc_alloc.h,v 1.15 2007/02/03 18:40:23 tom Exp $ */
|
||||
/* $Id: nc_alloc.h,v 1.16 2008/09/27 22:30:33 tom Exp $ */
|
||||
|
||||
#ifndef NC_ALLOC_included
|
||||
#define NC_ALLOC_included 1
|
||||
@ -39,6 +39,8 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#if HAVE_LIBDMALLOC
|
||||
#include <string.h>
|
||||
#undef strndup /* workaround for #define in GLIBC 2.7 */
|
||||
#include <dmalloc.h> /* Gray Watson's library */
|
||||
#else
|
||||
#undef HAVE_LIBDMALLOC
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998,2000 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2000,2008 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,13 +27,13 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
|
||||
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
|
||||
* Author: Juergen Pfeifer 1997 *
|
||||
* and: Thomas E. Dickey *
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* $Id: nc_panel.h,v 1.3 2000/12/10 02:04:35 tom Exp $
|
||||
* $Id: nc_panel.h,v 1.5 2008/08/04 18:26:46 tom Exp $
|
||||
*
|
||||
* nc_panel.h
|
||||
*
|
||||
@ -54,6 +54,9 @@ struct panelhook {
|
||||
struct panel* top_panel;
|
||||
struct panel* bottom_panel;
|
||||
struct panel* stdscr_pseudo_panel;
|
||||
#if NO_LEAKS
|
||||
int (*destroy)(struct panel *);
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Retrieve the panelhook of the current screen */
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: ncurses_defs,v 1.38 2008/02/10 00:12:03 tom Exp $
|
||||
# $Id: ncurses_defs,v 1.40 2008/09/06 15:57:41 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. #
|
||||
# #
|
||||
@ -60,8 +60,8 @@ HAVE_GETEGID
|
||||
HAVE_GETEUID
|
||||
HAVE_GETMAXX 1
|
||||
HAVE_GETNSTR
|
||||
HAVE_GETPARX 1
|
||||
HAVE_GETOPT_H
|
||||
HAVE_GETPARX 1
|
||||
HAVE_GETTIMEOFDAY
|
||||
HAVE_GETTTYNAM
|
||||
HAVE_GETWIN 1
|
||||
@ -88,6 +88,8 @@ HAVE_LONG_FILE_NAMES
|
||||
HAVE_MBLEN
|
||||
HAVE_MBRLEN
|
||||
HAVE_MBRTOWC
|
||||
HAVE_MBSRTOWCS
|
||||
HAVE_MBSTOWCS
|
||||
HAVE_MBTOWC
|
||||
HAVE_MENU_H
|
||||
HAVE_MKSTEMP
|
||||
@ -153,6 +155,8 @@ HAVE_USE_DEFAULT_COLORS
|
||||
HAVE_VFSCANF
|
||||
HAVE_VSNPRINTF
|
||||
HAVE_VSSCANF
|
||||
HAVE_WCSRTOMBS
|
||||
HAVE_WCSTOMBS
|
||||
HAVE_WCTOB
|
||||
HAVE_WCTOMB
|
||||
HAVE_WCTYPE_H
|
||||
@ -199,5 +203,6 @@ USE_SIGWINCH
|
||||
USE_SYMLINKS
|
||||
USE_SYSMOUSE
|
||||
USE_TERMCAP
|
||||
USE_WEAK_SYMBOLS
|
||||
USE_WIDEC_SUPPORT
|
||||
USE_XMC_SUPPORT
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2005,2008 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,10 +29,10 @@
|
||||
/****************************************************************************
|
||||
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
|
||||
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
|
||||
* and: Thomas E. Dickey 1998-2004 *
|
||||
* and: Thomas E. Dickey 1998-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: term_entry.h,v 1.34 2005/07/16 21:15:07 tom Exp $ */
|
||||
/* $Id: term_entry.h,v 1.35 2008/08/16 16:16:03 tom Exp $ */
|
||||
|
||||
/*
|
||||
* term_entry.h -- interface to entry-manipulation code
|
||||
@ -52,7 +52,7 @@ extern "C" {
|
||||
|
||||
typedef struct entry {
|
||||
TERMTYPE tterm;
|
||||
int nuses;
|
||||
unsigned nuses;
|
||||
struct
|
||||
{
|
||||
char *name;
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 2001-2003,2006 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 2001-2006,2008 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_getcchar.3x,v 1.10 2006/12/24 16:00:02 tom Exp $
|
||||
.\" $Id: curs_getcchar.3x,v 1.11 2008/05/17 19:37:05 tom Exp $
|
||||
.TH curs_getcchar 3X ""
|
||||
.SH NAME
|
||||
\fBgetcchar\fP,
|
||||
@ -106,9 +106,14 @@ The color pair in
|
||||
-
|
||||
The wide-character string pointed to by \fIwch\fP.
|
||||
The string must be L'\\0' terminated,
|
||||
contain at most one character with strictly positive width,
|
||||
which must be the first,
|
||||
and contain no characters of negative width.
|
||||
contain at most one spacing character,
|
||||
which must be the first.
|
||||
.IP
|
||||
Up to \fBCCHARW_MAX\fP-1 nonspacing characters may follow.
|
||||
Additional nonspacing characters are ignored.
|
||||
.IP
|
||||
The string may contain a single control character instead.
|
||||
In that case, no nonspacing characters are allowed.
|
||||
.SH NOTES
|
||||
.PP
|
||||
The \fIopts\fP argument is reserved for future use.
|
||||
|
75
man/curs_memleaks.3x
Normal file
75
man/curs_memleaks.3x
Normal file
@ -0,0 +1,75 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 2008 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_memleaks.3x,v 1.1 2008/10/25 23:38:13 tom Exp $
|
||||
.TH curs_memleaks 3X ""
|
||||
.na
|
||||
.hy 0
|
||||
.SH NAME
|
||||
\fB_nc_freeall\fP
|
||||
\fB_nc_free_and_exit\fP - \fBcurses\fR memory-leak checking
|
||||
.ad
|
||||
.hy
|
||||
.SH SYNOPSIS
|
||||
\fB#include <curses.h>\fR
|
||||
.sp
|
||||
\fBvoid _nc_freeall(void);\fR
|
||||
.br
|
||||
\fBvoid _nc_free_and_exit(int);\fR
|
||||
.SH DESCRIPTION
|
||||
These functions are used to simplify analysis of memory leaks in the ncurses
|
||||
library.
|
||||
They are normally not available; they must be configured into the library
|
||||
at build time using the \fB--disable-leaks\fP option.
|
||||
That compiles-in code that frees memory that normally would not be freed.
|
||||
.PP
|
||||
Any implementation of curses must not free the memory associated with
|
||||
a screen, since (even after calling \fBendwin\fP), it must be available
|
||||
for use in the next call to \fBrefresh\fP.
|
||||
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, one can build a debugging version of the ncurses
|
||||
library which frees those chunks which it can, and provides these
|
||||
functions to free all of the memory allocated by the ncurses library.
|
||||
.PP
|
||||
The \fP_nc_free_and_exit\fP function is the preferred one since
|
||||
some of the memory which is freed may be required for the application
|
||||
to continue running.
|
||||
Its parameter is the code to pass to the \fPexit\fP routine.
|
||||
.SH RETURN VALUE
|
||||
These functions do not return a value.
|
||||
.SH PORTABILITY
|
||||
These functions are not part of the XSI interface.
|
||||
.SH SEE ALSO
|
||||
\fBcurses\fR(3X).
|
||||
.\"#
|
||||
.\"# The following sets edit modes for GNU EMACS
|
||||
.\"# Local Variables:
|
||||
.\"# mode:nroff
|
||||
.\"# fill-column:79
|
||||
.\"# End:
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1999-2006,2007 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1999-2007,2008 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.28 2007/05/26 20:09:06 tom Exp $
|
||||
.\" $Id: curs_terminfo.3x,v 1.30 2008/08/16 20:53:27 tom Exp $
|
||||
.TH curs_terminfo 3X ""
|
||||
.ds n 5
|
||||
.na
|
||||
@ -274,6 +274,9 @@ In this implementation
|
||||
returns an error
|
||||
if its terminal parameter is null.
|
||||
.TP 5
|
||||
\fBputp\fP
|
||||
calls \fBtputs\fP, returning the same error-codes.
|
||||
.TP 5
|
||||
\fBrestartterm\fP
|
||||
returns an error
|
||||
if the associated call to \fBsetupterm\fP returns an error.
|
||||
@ -283,6 +286,12 @@ returns an error
|
||||
if it cannot allocate enough memory, or
|
||||
create the initial windows (stdscr, curscr, newscr).
|
||||
Other error conditions are documented above.
|
||||
.TP 5
|
||||
\fBtputs\fP
|
||||
returns an error if the string parameter is null.
|
||||
It does not detect I/O errors:
|
||||
X/Open states that \fBtputs\fP ignores the return value
|
||||
of the output function \fIputc\fP.
|
||||
.RE
|
||||
.SH NOTES
|
||||
The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR.
|
||||
@ -291,27 +300,30 @@ committing to the allocation of storage involved in \fBinitscr\fR.
|
||||
.PP
|
||||
Note that \fBvidattr\fR and \fBvidputs\fR may be macros.
|
||||
.SH PORTABILITY
|
||||
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.
|
||||
The function \fBsetterm\fR is not described by X/Open and must
|
||||
be considered non-portable. All other functions are as described by X/Open.
|
||||
.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
|
||||
returns \fBOK\fR or \fBERR\fR. We have chosen to implement the X/Open Curses
|
||||
semantics.
|
||||
.PP
|
||||
In System V Release 4, the third argument of \fBtputs\fR has the type
|
||||
\fBint (*putc)(char)\fR.
|
||||
.PP
|
||||
The XSI Curses standard prototypes \fBtparm\fR with a fixed number of parameters,
|
||||
At least one implementation of X/Open Curses (Solaris) returns a value
|
||||
other than OK/ERR from \fBtputs\fP.
|
||||
That returns the length of the string, and does no error-checking.
|
||||
.PP
|
||||
X/Open Curses prototypes \fBtparm\fR with a fixed number of parameters,
|
||||
rather than a variable argument list.
|
||||
This implementation uses a variable argument list.
|
||||
Portable applications should provide 9 parameters after the format;
|
||||
zeroes are fine for this purpose.
|
||||
.PP
|
||||
XSI notes that after calling \fBmvcur\fR, the curses state may not match the
|
||||
X/Open notes that after calling \fBmvcur\fR, the curses state may not match the
|
||||
actual terminal state, and that an application should touch and refresh
|
||||
the window before resuming normal curses calls.
|
||||
Both ncurses and System V Release 4 curses implement \fBmvcur\fR using
|
||||
@ -319,15 +331,19 @@ 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 for \fBmvcur\fP.
|
||||
X/Open 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
|
||||
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(3), \fBterminfo\fR(\*n)
|
||||
\fBcurses\fR(3X),
|
||||
\fBcurs_initscr\fR(3X),
|
||||
\fBcurs_kernel\fR(3X),
|
||||
\fBcurs_termcap\fR(3X),
|
||||
\fBputc\fR(3),
|
||||
\fBterminfo\fR(\*n)
|
||||
.\"#
|
||||
.\"# The following sets edit modes for GNU EMACS
|
||||
.\"# Local Variables:
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2007,2008 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.25 2007/05/26 21:44:42 tom Exp $
|
||||
.\" $Id: curs_util.3x,v 1.27 2008/10/25 23:45:41 tom Exp $
|
||||
.TH curs_util 3X ""
|
||||
.na
|
||||
.hy 0
|
||||
@ -77,10 +77,37 @@ Printing characters are displayed as is.
|
||||
The corresponding \fBwunctrl\fR returns a printable representation of
|
||||
a wide-character.
|
||||
.PP
|
||||
The \fBkeyname\fR routine returns a character string corresponding to the key \fIc\fR.
|
||||
The \fBkeyname\fR routine returns a character string corresponding to the key \fIc\fR:
|
||||
.RS 3
|
||||
.TP 3
|
||||
-
|
||||
Printable characters are displayed as themselves, e.g., a one-character string containing the key.
|
||||
.TP 3
|
||||
-
|
||||
Control characters are displayed in the \fB^\fR\fIX\fR notation.
|
||||
Values above 128 are either meta characters, shown in the \fBM-\fR\fIX\fR notation,
|
||||
or the names of function keys, or null.
|
||||
.TP 3
|
||||
-
|
||||
DEL (character 127) is displayed as \fB^?\fP.
|
||||
.TP 3
|
||||
-
|
||||
Values above 128 are either meta characters
|
||||
(if the screen has not been initialized,
|
||||
or if \fBmeta\fP has been called with a TRUE parameter),
|
||||
shown in the \fBM-\fR\fIX\fR notation,
|
||||
or are displayed as themselves.
|
||||
In the latter case, the values may not be printable;
|
||||
this follows the X/Open specification.
|
||||
.TP 3
|
||||
-
|
||||
Values above 256 may be the names of the names of function keys.
|
||||
.TP 3
|
||||
-
|
||||
Otherwise (if there is no corresponding name) the function returns null,
|
||||
to denote an error.
|
||||
X/Open also lists an "UNKNOWN KEY" return value, which some implementations
|
||||
return rather than null.
|
||||
.RE
|
||||
.LP
|
||||
The corresponding \fBkey_name\fR returns a character string corresponding
|
||||
to the wide-character value \fIw\fR.
|
||||
The two functions do not return the same set of strings;
|
||||
@ -134,11 +161,14 @@ Routines that return pointers return \fBNULL\fR on error.
|
||||
.PP
|
||||
X/Open does not define any error conditions.
|
||||
In this implementation
|
||||
.RS
|
||||
.RS 3
|
||||
.TP 5
|
||||
\fBflushinp\fR
|
||||
returns an error if the terminal was not initialized.
|
||||
.TP 5
|
||||
\fBmeta\fR
|
||||
returns an error if the terminal was not initialized.
|
||||
.TP 5
|
||||
\fBputwin\fP
|
||||
returns an error if the associated \fBfwrite\fP calls return an error.
|
||||
.RE
|
||||
@ -206,6 +236,8 @@ user-defined strings which begin with "k".
|
||||
The keycodes start at KEY_MAX, but are not guaranteed to be
|
||||
the same value for different runs because user-defined codes are
|
||||
merged from all terminal descriptions which have been loaded.
|
||||
The \fBuse_extended_names\fP function controls whether this data is
|
||||
loaded when the terminal description is read by the library.
|
||||
.PP
|
||||
The \fBnofilter\fP routine is specific to ncurses.
|
||||
It was not supported on Version 7, BSD or System V implementations.
|
||||
|
16
man/form.3x
16
man/form.3x
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: form.3x,v 1.21 2008/04/26 17:11:52 tom Exp $
|
||||
.\" $Id: form.3x,v 1.22 2008/10/11 20:48:11 tom Exp $
|
||||
.TH form 3X ""
|
||||
.SH NAME
|
||||
\fBform\fR - curses extension for programming forms
|
||||
@ -41,10 +41,18 @@ routines, which create and modify form fields; and form routines, which group
|
||||
fields into forms, display forms on the screen, and handle interaction with the
|
||||
user.
|
||||
.PP
|
||||
The \fBform\fR library uses the \fBcurses\fR libraries, and a curses
|
||||
initialization routine such as \fBinitscr\fR must be called before using any of
|
||||
these functions. To use the \fBform\fR library, link with the options
|
||||
The \fBform\fR library uses the \fBcurses\fR libraries.
|
||||
To use the \fBform\fR library, link with the options
|
||||
\fB-lform -lcurses\fR.
|
||||
.PP
|
||||
Your program should set up the locale, e.g.,
|
||||
.sp
|
||||
\fBsetlocale(LC_ALL, "");\fP
|
||||
.sp
|
||||
so that input/output processing will work.
|
||||
.PP
|
||||
A curses initialization routine such as \fBinitscr\fR must be called
|
||||
before using any of these functions.
|
||||
.
|
||||
.SS Current Default Values for Field Attributes
|
||||
.
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2007,2008 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.15 2007/06/02 22:56:49 tom Exp $
|
||||
.\" $Id: form_driver.3x,v 1.16 2008/06/21 21:55:39 tom Exp $
|
||||
.TH form_driver 3X ""
|
||||
.SH NAME
|
||||
\fBform_driver\fR - command-processing loop of the form system
|
||||
@ -37,8 +37,21 @@ int form_driver(FORM *form, int c);
|
||||
.br
|
||||
.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 is a printable ASCII character.
|
||||
through \fBform_driver\fR. This routine has three major input cases:
|
||||
.TP 3
|
||||
-
|
||||
The input is a form navigation request.
|
||||
Navigation request codes are constants defined in \fB<form.h>\fP,
|
||||
which are distinct from the key- and character codes returned by \fBwgetch\fP.
|
||||
.TP 3
|
||||
-
|
||||
The input is a printable character.
|
||||
Printable characters (which must be positive, less than 256) are
|
||||
checked according to the program's locale settings.
|
||||
.TP 3
|
||||
-
|
||||
The input is the KEY_MOUSE special key associated with an mouse event.
|
||||
.PP
|
||||
The form driver requests are as follows:
|
||||
.TP 5
|
||||
REQ_NEXT_PAGE
|
||||
@ -218,7 +231,7 @@ Display next field choice.
|
||||
REQ_PREV_CHOICE
|
||||
Display previous field choice.
|
||||
.PP
|
||||
If the second argument is a printable ASCII character, the driver places it
|
||||
If the second argument is a printable 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
|
||||
@ -269,11 +282,11 @@ 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
|
||||
If you clicked outside the user window or the mouse event could not 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
|
||||
If the second argument is neither printable nor one of the above
|
||||
pre-defined form requests, the driver assumes it is an application-specific
|
||||
command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
|
||||
should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
|
||||
@ -306,7 +319,9 @@ System error occurred (see \fBerrno\fR).
|
||||
The form driver code saw an unknown request code.
|
||||
.
|
||||
.SH SEE ALSO
|
||||
\fBcurses\fR(3X), \fBform\fR(3X).
|
||||
\fBcurses\fR(3X),
|
||||
\fBform\fR(3X),
|
||||
\fBwgetch\fR(3X).
|
||||
.SH NOTES
|
||||
The header file \fB<form.h>\fR automatically includes the header files
|
||||
\fB<curses.h>\fR.
|
||||
|
@ -1,6 +1,6 @@
|
||||
'\" t
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2006,2008 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_buffer.3x,v 1.14 2006/11/04 17:12:00 tom Exp $
|
||||
.\" $Id: form_field_buffer.3x,v 1.15 2008/10/18 18:35:17 tom Exp $
|
||||
.TH form_field_buffer 3X ""
|
||||
.SH NAME
|
||||
\fBform_field_buffer\fR - field buffer control
|
||||
@ -46,17 +46,47 @@ int set_max_field(FIELD *field, int max);
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The function \fBset_field_buffer\fR sets the numbered buffer of the given field
|
||||
to contain a given string. Buffer 0 is the displayed value of the field; other
|
||||
numbered buffers may be allocated by applications through the \fBnbuf\fR
|
||||
argument of (see \fBform_field_new\fR(3X)) but are not manipulated by the forms
|
||||
library. The function \fBfield_buffer\fR returns the address of the buffer.
|
||||
Please note that this buffer has always the length of the buffer, that means
|
||||
that it may typically contain trailing spaces. If you entered leading spaces
|
||||
the buffer may also contain them. If you want the raw data, you must write your
|
||||
to contain a given string:
|
||||
.RS 3
|
||||
.TP 3
|
||||
-
|
||||
Buffer 0 is the displayed value of the field.
|
||||
.TP 3
|
||||
-
|
||||
Other numbered buffers may be allocated by applications through the \fBnbuf\fR
|
||||
argument of (see \fBform_field_new\fR(3X))
|
||||
but are not manipulated by the forms library.
|
||||
.RE
|
||||
.PP
|
||||
The function \fBfield_buffer\fR returns a pointer to
|
||||
the contents of the given numbered buffer:
|
||||
.RS 3
|
||||
.TP 3
|
||||
-
|
||||
The buffer contents always have the same length,
|
||||
and are padded with trailing spaces
|
||||
as needed to ensure this length is the same.
|
||||
.TP 3
|
||||
-
|
||||
The buffer may contain leading spaces, depending on how it was set.
|
||||
.TP 3
|
||||
-
|
||||
The buffer contents are set with \fBset_field_buffer\fP,
|
||||
or as a side effect of any editing operations on the corresponding field.
|
||||
.TP 3
|
||||
-
|
||||
Editing operations are based on the \fIwindow\fP which displays the field,
|
||||
rather than a \fIstring\fP.
|
||||
The window contains only printable characters, and is filled with blanks.
|
||||
If you want the raw data, you must write your
|
||||
own routine that copies the value out of the buffer and removes the leading
|
||||
and trailing spaces. Please note also, that subsequent operations on the form
|
||||
will probably change the content of the buffer. So do not use it for long term
|
||||
storage of the entered form data.
|
||||
and trailing spaces.
|
||||
.TP 3
|
||||
-
|
||||
Because editing operations change the content of the buffer to
|
||||
correspond to the window, you should not rely on using buffers
|
||||
for long-term storage of form data.
|
||||
.RE
|
||||
.PP
|
||||
The function \fBset_field_status\fR sets the associated status flag of
|
||||
\fIfield\fR; \fBfield_status\fR gets the current value. The status flag
|
||||
|
@ -25,7 +25,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: man_db.renames,v 0.40 2008/01/19 18:28:50 tom Exp $
|
||||
# $Id: man_db.renames,v 0.41 2008/10/25 23:24:03 tom Exp $
|
||||
# Manual-page renamings for the man_db program
|
||||
#
|
||||
# Files:
|
||||
@ -68,6 +68,7 @@ curs_instr.3x instr.3ncurses
|
||||
curs_inwstr.3x inwstr.3ncurses
|
||||
curs_kernel.3x kernel.3ncurses
|
||||
curs_legacy.3x legacy.3ncurses
|
||||
curs_memleaks.3x memleaks.3ncurses
|
||||
curs_mouse.3x mouse.3ncurses
|
||||
curs_move.3x move.3ncurses
|
||||
curs_opaque.3x opaque.3ncurses
|
||||
|
@ -1,6 +1,6 @@
|
||||
'\" t
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2006,2008 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: menu_attributes.3x,v 1.9 2006/11/04 17:12:00 tom Exp $
|
||||
.\" $Id: menu_attributes.3x,v 1.10 2008/08/23 18:24:23 tom Exp $
|
||||
.TH menu_attributes 3X ""
|
||||
.SH NAME
|
||||
\fBmenu_attributes\fR - color and attribute control for menus
|
||||
@ -54,7 +54,7 @@ int menu_pad(const MENU *menu);
|
||||
The function \fBset_menu_fore\fR sets the foreground attribute of
|
||||
\fImenu\fR. This is the highlight used for selected menu items.
|
||||
\fBmenu_fore\fR returns the foreground attribute. The default
|
||||
is \fBA_STANDOUT\fR.
|
||||
is \fBA_REVERSE\fR.
|
||||
.PP
|
||||
The function \fBset_menu_back\fR sets the background attribute of
|
||||
\fImenu\fR. This is the highlight used for selectable (but not currently
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2007,2008 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.14 2007/06/02 22:50:09 tom Exp $
|
||||
.\" $Id: menu_driver.3x,v 1.15 2008/06/21 21:55:30 tom Exp $
|
||||
.TH menu_driver 3X ""
|
||||
.SH NAME
|
||||
\fBmenu_driver\fR - command-processing loop of the menu system
|
||||
@ -37,9 +37,21 @@ int menu_driver(MENU *menu, int c);
|
||||
.br
|
||||
.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 is a printable ASCII character or it
|
||||
is the KEY_MOUSE special key associated with an mouse event.
|
||||
through \fBmenu_driver\fR. This routine has three major input cases:
|
||||
.TP 3
|
||||
-
|
||||
The input is a form navigation request.
|
||||
Navigation request codes are constants defined in \fB<form.h>\fP,
|
||||
which are distinct from the key- and character codes returned by \fBwgetch\fP.
|
||||
.TP 3
|
||||
-
|
||||
The input is a printable character.
|
||||
Printable characters (which must be positive, less than 256) are
|
||||
checked according to the program's locale settings.
|
||||
.TP 3
|
||||
-
|
||||
The input is the KEY_MOUSE special key associated with an mouse event.
|
||||
.PP
|
||||
The menu driver requests are as follows:
|
||||
.TP 5
|
||||
REQ_LEFT_ITEM
|
||||
@ -93,7 +105,7 @@ Move to the next item matching the pattern match.
|
||||
REQ_PREV_MATCH
|
||||
Move to the previous item matching the pattern match.
|
||||
.PP
|
||||
If the second argument is a printable ASCII character, the code appends
|
||||
If the second argument is a printable character, the code appends
|
||||
it to the pattern buffer and attempts to move to the next item matching
|
||||
the new pattern. If there is no such match, \fBmenu_driver\fR returns
|
||||
\fBE_NO_MATCH\fR and deletes the appended character from the buffer.
|
||||
@ -147,11 +159,11 @@ 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
|
||||
If you clicked outside the user window or the mouse event could not 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
|
||||
If the second argument is neither printable nor one of the above
|
||||
pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
|
||||
command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
|
||||
should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
|
||||
@ -183,7 +195,9 @@ Character failed to match.
|
||||
.B E_REQUEST_DENIED
|
||||
The menu driver could not process the request.
|
||||
.SH SEE ALSO
|
||||
\fBcurses\fR(3X), \fBmenu\fR(3X).
|
||||
\fBcurses\fR(3X),
|
||||
\fBmenu\fR(3X),
|
||||
\fBwgetch\fR(3X).
|
||||
.SH NOTES
|
||||
The header file \fB<menu.h>\fR automatically includes the header files
|
||||
\fB<curses.h>\fR.
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2006,2008 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_pattern.3x,v 1.10 2006/11/04 18:25:24 tom Exp $
|
||||
.\" $Id: menu_pattern.3x,v 1.11 2008/06/21 21:58:20 tom Exp $
|
||||
.TH menu_pattern 3X ""
|
||||
.SH NAME
|
||||
\fBmenu_pattern\fR - get and set a menu's pattern buffer
|
||||
@ -39,7 +39,7 @@ char *menu_pattern(const MENU *menu);
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
Every menu has an associated pattern match buffer. As input events that are
|
||||
printable ASCII characters come in, they are appended to this match buffer
|
||||
printable characters come in, they are appended to this match buffer
|
||||
and tested for a match, as described in \fBmenu_driver\fR(3X).
|
||||
.PP
|
||||
The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu
|
||||
|
@ -1,6 +1,6 @@
|
||||
'\" t
|
||||
.\"***************************************************************************
|
||||
.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
.\" Copyright (c) 1998-2007,2008 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.89 2007/09/01 18:57:29 tom Exp $
|
||||
.\" $Id: ncurses.3x,v 1.92 2008/10/25 23:31:45 tom Exp $
|
||||
.hy 0
|
||||
.TH ncurses 3X ""
|
||||
.ds n 5
|
||||
@ -74,10 +74,23 @@ terminal and \fBcurses\fR input and output options; environment query
|
||||
routines; color manipulation; use of soft label keys; terminfo capabilities;
|
||||
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
|
||||
The library uses the locale which the calling program has initialized.
|
||||
That is normally done with \fBsetlocale\fP:
|
||||
.sp
|
||||
\fBsetlocale(LC_ALL, "");\fP
|
||||
.sp
|
||||
If the locale is not initialized,
|
||||
the library assumes that characters are printable as in ISO-8859-1,
|
||||
to work with certain legacy programs.
|
||||
You should initialize the locale and not rely on specific details of
|
||||
the library when the locale has not been setup.
|
||||
.PP
|
||||
The function \fBinitscr\fR or \fBnewterm\fR
|
||||
must be called to initialize the library
|
||||
before any of the other routines that deal with windows
|
||||
and screens are used.
|
||||
The routine \fBendwin\fR must be called before exiting.
|
||||
.PP
|
||||
To get character-at-a-time input without echoing (most
|
||||
interactive, screen oriented programs want this), the following
|
||||
sequence should be used:
|
||||
@ -280,6 +293,8 @@ l l .
|
||||
=
|
||||
COLOR_PAIR/\fBcurs_color\fR(3X)
|
||||
PAIR_NUMBER/\fBcurs_attr\fR(3X)
|
||||
_nc_free_and_exit/\fBcurs_memleaks\fR(3X)*
|
||||
_nc_freeall/\fBcurs_memleaks\fR(3X)*
|
||||
_nc_tracebits/\fBcurs_trace\fR(3X)*
|
||||
_traceattr/\fBcurs_trace\fR(3X)*
|
||||
_traceattr2/\fBcurs_trace\fR(3X)*
|
||||
@ -830,6 +845,18 @@ about the colors, set this to "-1,-1".
|
||||
To make it green-on-black, set it to "2,0".
|
||||
Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
|
||||
.TP 5
|
||||
NCURSES_GPM_TERMS
|
||||
This applies only to ncurses configured to use the GPM interface.
|
||||
.IP
|
||||
If present,
|
||||
the environment variable is a list of one or more terminal names
|
||||
against which the TERM environment variable is matched.
|
||||
Setting it to an empty value disables the GPM interface;
|
||||
using the built-in support for xterm, etc.
|
||||
.IP
|
||||
If the environment variable is absent,
|
||||
ncurses will attempt to open GPM if TERM contains "linux".
|
||||
.TP 5
|
||||
NCURSES_NO_HARD_TABS
|
||||
\fBNcurses\fP may use tabs as part of the cursor movement optimization.
|
||||
In some cases,
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2005,2008 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 *
|
||||
@ -37,7 +37,7 @@
|
||||
|
||||
#include "menu.priv.h"
|
||||
|
||||
MODULE_ID("$Id: m_driver.c,v 1.25 2005/11/26 20:46:59 tom Exp $")
|
||||
MODULE_ID("$Id: m_driver.c,v 1.27 2008/08/03 22:08:22 tom Exp $")
|
||||
|
||||
/* Macros */
|
||||
|
||||
@ -74,7 +74,7 @@ Is_Sub_String(
|
||||
{
|
||||
while (*string && *part)
|
||||
{
|
||||
if (toupper(*string++) != toupper(*part))
|
||||
if (toupper(UChar(*string++)) != toupper(UChar(*part)))
|
||||
break;
|
||||
part++;
|
||||
}
|
||||
@ -303,7 +303,7 @@ menu_driver(MENU * menu, int c)
|
||||
else
|
||||
{
|
||||
my_top_row += rdiff;
|
||||
while (rdiff-- > 0 && item != (ITEM *) 0)
|
||||
while (rdiff-- > 0 && item != 0 && item->down != 0)
|
||||
item = item->down;
|
||||
}
|
||||
break;
|
||||
@ -316,7 +316,7 @@ menu_driver(MENU * menu, int c)
|
||||
else
|
||||
{
|
||||
my_top_row -= rdiff;
|
||||
while (rdiff-- && item != (ITEM *) 0)
|
||||
while (rdiff-- > 0 && item != 0 && item->up != 0)
|
||||
item = item->up;
|
||||
}
|
||||
break;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2005,2008 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 *
|
||||
@ -37,7 +37,7 @@
|
||||
|
||||
#include "menu.priv.h"
|
||||
|
||||
MODULE_ID("$Id: m_req_name.c,v 1.19 2005/04/16 16:59:52 tom Exp $")
|
||||
MODULE_ID("$Id: m_req_name.c,v 1.20 2008/09/13 18:59:17 tom Exp $")
|
||||
|
||||
static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] =
|
||||
{
|
||||
@ -109,7 +109,7 @@ menu_request_by_name(const char *str)
|
||||
strncpy(buf, str, sizeof(buf));
|
||||
while ((i < sizeof(buf)) && (buf[i] != '\0'))
|
||||
{
|
||||
buf[i] = toupper(buf[i]);
|
||||
buf[i] = toupper(UChar(buf[i]));
|
||||
i++;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#****************************************************************************
|
||||
#* Copyright (c) 2001-2005,2006 Thomas E. Dickey *
|
||||
#* Copyright (c) 2001-2006,2008 Thomas E. Dickey *
|
||||
#* *
|
||||
#* 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 @@
|
||||
#* sale, use or other dealings in this Software without prior written *
|
||||
#* authorization. *
|
||||
#****************************************************************************/
|
||||
# $Id: ncu-indent,v 1.16 2006/02/18 17:02:22 tom Exp $
|
||||
# $Id: ncu-indent,v 1.17 2008/08/03 15:46:44 tom Exp $
|
||||
NOOP=no
|
||||
OPTS='
|
||||
--blank-lines-after-procedures
|
||||
@ -87,6 +87,7 @@ do
|
||||
rm -f "$save" "$test"
|
||||
mv "$name" "$save"
|
||||
sed \
|
||||
-e '/EMPTY_MODULE(/s/)$/);/' \
|
||||
-e '/MODULE_ID(/s/)$/);/' \
|
||||
-e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
|
||||
-e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
|
||||
@ -98,6 +99,7 @@ do
|
||||
# ${INDENT_PROG-indent} --version
|
||||
${INDENT_PROG-indent} -npro $OPTS "$name"
|
||||
sed \
|
||||
-e '/EMPTY_MODULE(/s/);$/)/' \
|
||||
-e '/MODULE_ID(/s/);$/)/' \
|
||||
-e 's,;[ ]*//GCC_NORETURN;, GCC_NORETURN;,' \
|
||||
-e 's,;[ ]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
|
||||
|
205
misc/ncurses.supp
Normal file
205
misc/ncurses.supp
Normal file
@ -0,0 +1,205 @@
|
||||
# $Id: ncurses.supp,v 1.7 2008/09/20 18:43:42 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright (c) 2008 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. #
|
||||
##############################################################################
|
||||
#
|
||||
# This is a warning-suppression file for valgrind and ncurses.
|
||||
#
|
||||
# ncurses can also be configured using the --disable-leaks option, which
|
||||
# allows an application to call _nc_freeall() or _nc_free_and_exit(), to
|
||||
# free all of ncurses' "permanent" memory.
|
||||
#
|
||||
# Some of these leaks can be freed if the application does its own cleanup,
|
||||
# for example:
|
||||
# delscreen(SP);
|
||||
# del_curterm(cur_term);
|
||||
# However, few applications do this.
|
||||
|
||||
{
|
||||
ncurses_leak__nc_add_to_try
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_add_to_try
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_home_terminfo
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:_nc_home_terminfo
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_init_wacs
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:_nc_init_wacs
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_keyname
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:_nc_keyname
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_keyname_2
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:strdup
|
||||
fun:_nc_keyname
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_printf_string
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:_nc_doalloc
|
||||
fun:_nc_printf_string
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_read_termtype
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_read_termtype
|
||||
fun:_nc_read_file_entry
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_read_termtype_2
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_doalloc
|
||||
fun:_nc_read_termtype
|
||||
fun:_nc_read_file_entry
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_scroll_optimize
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_hash_map
|
||||
fun:_nc_scroll_optimize
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_scroll_optimize_2
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_doalloc
|
||||
fun:_nc_scroll_optimize
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_setupscreen
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:_nc_setupscreen
|
||||
fun:newterm
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_setupscreen_2
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:newwin
|
||||
fun:_nc_setupscreen
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_setupterm_1
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:strdup
|
||||
fun:_nc_setupterm
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_setupterm
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:_nc_setupterm
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_setupscreen_3
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:_nc_makenew
|
||||
fun:newwin
|
||||
fun:_nc_setupscreen
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_set_buffer
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:_nc_set_buffer
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_tparm_analyze
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_doalloc
|
||||
fun:_nc_tparm_analyze
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak__nc_trace_alloc
|
||||
Memcheck:Leak
|
||||
fun:*alloc
|
||||
fun:_nc_doalloc
|
||||
fun:_nc_trace_alloc
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak_start_color
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:start_color
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak_tparm
|
||||
Memcheck:Leak
|
||||
fun:realloc
|
||||
fun:_nc_doalloc
|
||||
fun:tparm
|
||||
}
|
||||
|
||||
{
|
||||
ncurses_leak_tparam_internal
|
||||
Memcheck:Leak
|
||||
fun:realloc
|
||||
fun:_nc_doalloc
|
||||
fun:get_space
|
||||
fun:save_number
|
||||
fun:tparam_internal
|
||||
}
|
@ -6,8 +6,8 @@
|
||||
# Report bugs and new terminal descriptions to
|
||||
# bug-ncurses@gnu.org
|
||||
#
|
||||
# $Revision: 1.328 $
|
||||
# $Date: 2008/04/29 00:49:41 $
|
||||
# $Revision: 1.341 $
|
||||
# $Date: 2008/10/12 23:03:54 $
|
||||
#
|
||||
# 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
|
||||
@ -761,6 +761,15 @@ linux|linux console,
|
||||
civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
|
||||
cvvis=\E[?25h\E[?8c, use=linux-c-nc,
|
||||
|
||||
# Subject: linux 2.6.26 vt back_color_erase
|
||||
# Changes to the Linux console driver broke bce model as reported in
|
||||
# https://bugzilla.novell.com/show_bug.cgi?id=418613
|
||||
# apparently from
|
||||
# http://lkml.org/lkml/2008/4/26/305
|
||||
# http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e
|
||||
linux2.6.26|linux console w/o bce,
|
||||
bce@, use=linux,
|
||||
|
||||
# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
|
||||
linux-nic|linux with ich/ich1 suppressed for non-curses programs,
|
||||
ich@, ich1@, use=linux,
|
||||
@ -2751,7 +2760,7 @@ putty-vt100|VT100+ keyboard layout,
|
||||
# retrieving the window title, and for setting the window size (i.e., using
|
||||
# "resize -s"), though it does not pass SIGWINCH to the application if the
|
||||
# user resizes the window with the mouse.
|
||||
teraterm|Tera Term Pro,
|
||||
teraterm2.3|Tera Term Pro,
|
||||
km, xon@,
|
||||
ncv#43, vt@,
|
||||
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
|
||||
@ -2771,6 +2780,28 @@ teraterm|Tera Term Pro,
|
||||
smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
|
||||
use=klone+color, use=vt100,
|
||||
|
||||
# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
|
||||
# to choose a Windows OEM font).
|
||||
#
|
||||
# Testing with tack:
|
||||
# - it does not have xenl (suppress that)
|
||||
# - underline seems to work with color (modify ncv).
|
||||
# Testing with vttest:
|
||||
# - wrapping differs from vt100 (menu 1).
|
||||
# - it recognizes xterm's X10 and normal mouse tracking, but none of the
|
||||
# other flavors.
|
||||
# - it recognizes the dtterm window controls for reporting size in
|
||||
# characters and pixels.
|
||||
# - it passes SIGWINCH.
|
||||
teraterm4.59|Tera Term Pro,
|
||||
bce, xenl@,
|
||||
ncv#41,
|
||||
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
kmous=\E[M, use=teraterm2.3,
|
||||
|
||||
teraterm|Tera Term,
|
||||
use=teraterm4.59,
|
||||
|
||||
# Tested with WinNT 4.0, the telnet application assumes the screensize is
|
||||
# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
|
||||
#
|
||||
@ -3251,6 +3282,10 @@ xterm+256color|xterm 256-color feature,
|
||||
# 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.
|
||||
#
|
||||
# The default color palette for the 256- and 88-colors are different. A
|
||||
# given executable will have one palette (perhaps compiled-in). If the program
|
||||
# supports xterm's control sequence, it can be programmed using initc.
|
||||
xterm+88color|xterm 88-color feature,
|
||||
colors#88, pairs#7744, use=xterm+256color,
|
||||
|
||||
@ -3542,8 +3577,43 @@ gnome-fc5|GNOME Terminal,
|
||||
gnome-2007|GNOME Terminal snapshot 2.18.1,
|
||||
use=xterm+pcc2, use=gnome-fc5,
|
||||
|
||||
# GNOME Terminal 2.22.3 (2008 snapshot)
|
||||
#
|
||||
# In vttest, it claims to be a vt220 with national replacement character-sets,
|
||||
# but aside from the identifier string, implements only a small fraction of
|
||||
# vt220's behavior, which will make it less usable on a VMS system (unclear
|
||||
# what the intent of the developer is, since the NRC feature exposed in vttest
|
||||
# by this change does not work).
|
||||
gnome-2008|GNOME Terminal snapshot 2.22.3,
|
||||
use=gnome+pcfkeys, use=gnome-2007,
|
||||
|
||||
# GNOME terminal may automatically use the contents of the "xterm" terminfo to
|
||||
# supply key information which is not built into the program. With 2.22.3,
|
||||
# this list is built into the program (which addresses the inadvertant use of
|
||||
# random terminfo data, though using a set of values which does not correspond
|
||||
# to any that xterm produces - still not solving the problem that GNOME
|
||||
# terminal hardcodes the $TERM variable as "xterm").
|
||||
#
|
||||
# terminfo modifier code keys
|
||||
# kf13-kf24 shift 2 F1 to F12
|
||||
# kf25-kf36 control 5 F1 to F12
|
||||
# kf37-kf48 shift/control 6 F1 to F12
|
||||
# kf49-kf60 alt 3 F1 to F12
|
||||
# kf61-kf63 shift-alt 4 F1 to F3
|
||||
#
|
||||
# The parameters with \EO (SS3) are technically an error, since SS3 should have
|
||||
# no parameters. This appears to be rote copying based on xterm+pcc0.
|
||||
gnome+pcfkeys|gnome variation on xterm+pcfkeys,
|
||||
kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
|
||||
kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
|
||||
kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
|
||||
kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
|
||||
kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
|
||||
kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
|
||||
use=xterm+pcfkeys,
|
||||
|
||||
gnome|GNOME Terminal,
|
||||
use=gnome-2007,
|
||||
use=gnome-2008,
|
||||
|
||||
# palette is hardcoded...
|
||||
gnome-256color|GNOME Terminal with xterm 256-colors,
|
||||
@ -3601,6 +3671,13 @@ kvt|KDE terminal,
|
||||
#
|
||||
# Updated for konsole 1.6.4:
|
||||
# add konsole-solaris
|
||||
#
|
||||
# Updated for konsole 1.6.6:
|
||||
# add control-key modifiers for function-keys, etc.
|
||||
#
|
||||
# vttest menu 1 shows that both konsole and gnome terminal do wrapping
|
||||
# different from xterm (and vt100's). They have the same behavior in this
|
||||
# detail, but it is unclear which copies the other.
|
||||
konsole-base|KDE console window,
|
||||
bce, km@, npc,
|
||||
bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
|
||||
@ -3629,11 +3706,12 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
|
||||
# The value for kbs reflects local customization rather than the settings used
|
||||
# for XFree86 xterm.
|
||||
konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
|
||||
kend=\EOF, kf1=\EOP, kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R,
|
||||
kf16=\EO2S, 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~, kf3=\EOR, kf4=\EOS,
|
||||
khome=\EOH, use=konsole-vt100,
|
||||
kend=\EOF, khome=\EOH, use=konsole+pcfkeys,
|
||||
use=konsole-vt100,
|
||||
# Konsole does not implement shifted cursor-keys.
|
||||
konsole+pcfkeys|konsole subset of xterm+pcfkeys,
|
||||
kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
|
||||
use=xterm+pcf0,
|
||||
# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
|
||||
# it is still useful for deriving the other entries.
|
||||
konsole-vt100|KDE console window with vt100 (sic) keyboard,
|
||||
@ -3671,7 +3749,7 @@ konsole-256color|KDE console window with xterm 256-colors,
|
||||
# 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~
|
||||
# control/shift/alt kf1 to kf12 \E[11;8~ to \E[24;8~
|
||||
#
|
||||
mlterm|multi lingual terminal emulator,
|
||||
am, eslok, km, mc5i, mir, msgr, npc, xenl,
|
||||
@ -3687,10 +3765,11 @@ mlterm|multi lingual terminal emulator,
|
||||
home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
|
||||
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, 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,
|
||||
kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
|
||||
kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~,
|
||||
khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M,
|
||||
knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, 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,
|
||||
@ -3706,11 +3785,14 @@ mlterm|multi lingual terminal emulator,
|
||||
# (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,
|
||||
kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B,
|
||||
kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~,
|
||||
kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D,
|
||||
kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~,
|
||||
kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
|
||||
kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C,
|
||||
kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
|
||||
kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
|
||||
|
||||
# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
|
||||
# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
|
||||
@ -3867,6 +3949,8 @@ rxvt-color|rxvt terminal emulator (X Window System),
|
||||
use=rxvt,
|
||||
rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
|
||||
use=xterm+256color, use=rxvt,
|
||||
rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
|
||||
use=xterm+88color, use=rxvt,
|
||||
rxvt-xpm|rxvt terminal emulator (X Window System),
|
||||
use=rxvt,
|
||||
rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
|
||||
@ -3927,6 +4011,16 @@ Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
|
||||
vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
|
||||
use=ecma+color,
|
||||
|
||||
Eterm-256color|Eterm with xterm 256-colors,
|
||||
use=xterm+256color, use=Eterm,
|
||||
|
||||
Eterm-88color|Eterm with 88 colors,
|
||||
use=xterm+88color, use=Eterm,
|
||||
|
||||
# Based on rxvt 2.4.8, it has a few differences in key bindings
|
||||
aterm|AfterStep terminal,
|
||||
kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
|
||||
|
||||
# xiterm 0.5-5.2
|
||||
# This is not based on xterm's source...
|
||||
# vttest shows several problems with keyboard, cursor-movements.
|
||||
@ -4407,6 +4501,8 @@ screen.rxvt|screen in rxvt,
|
||||
screen.linux|screen in linux console,
|
||||
bw,
|
||||
kbs=\177, kcbt@, use=screen+fkeys, use=screen,
|
||||
screen.mlterm|screen in mlterm,
|
||||
use=screen+fkeys, use=mlterm,
|
||||
|
||||
screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
|
||||
cols#132, use=screen,
|
||||
@ -21679,6 +21775,22 @@ v3220|LANPAR Vision II model 3220/3221/3222,
|
||||
# 2008-04-28
|
||||
# * add screen+fkeys (prompted by Debian # 478094) -TD
|
||||
#
|
||||
# 2008-06-28
|
||||
# * add screen.mlterm -TD
|
||||
# * improve mlterm and mlterm+pcfkeys -TD
|
||||
#
|
||||
# 2008-08-23
|
||||
# * add Eterm-256color, Eterm-88color -TD
|
||||
# * add rxvt-88color -TD
|
||||
#
|
||||
# 2008-10-12
|
||||
# * add teraterm4.59 entry, use that as primary teraterm entry, rename
|
||||
# original to teraterm2.3 -TD
|
||||
# * update "gnome" to 2.22.3 -TD
|
||||
# * update "konsole" to 1.6.6 -TD
|
||||
# * add "aterm" -TD
|
||||
# * add "linux2.6.26" -TD
|
||||
#
|
||||
# The following sets edit modes for GNU EMACS.
|
||||
# Local Variables:
|
||||
# fill-prefix:"\t"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# $Id: Makefile.in,v 1.112 2007/09/01 20:45:53 tom Exp $
|
||||
# $Id: Makefile.in,v 1.113 2008/10/18 14:11:54 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
|
||||
# Copyright (c) 1998-2007,2008 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"), #
|
||||
@ -183,10 +183,10 @@ $(DESTDIR)$(libdir) :
|
||||
../lib : ; mkdir $@
|
||||
|
||||
./fallback.c : $(tinfo)/MKfallback.sh
|
||||
sh $(tinfo)/MKfallback.sh @TERMINFO@ @TERMINFO_SRC@ $(FALLBACK_LIST) >$@
|
||||
sh -e $(tinfo)/MKfallback.sh @TERMINFO@ @TERMINFO_SRC@ $(FALLBACK_LIST) >$@
|
||||
|
||||
./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
|
||||
sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
|
||||
sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
|
||||
|
||||
init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
|
||||
./make_keys$(BUILD_EXEEXT) keys.list > $@
|
||||
@ -205,14 +205,14 @@ make_hash$(BUILD_EXEEXT) : \
|
||||
$(BUILD_CC) -o $@ $(BUILD_CCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
|
||||
|
||||
./expanded.c : $(serial)/MKexpanded.sh
|
||||
sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
|
||||
sh -e $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
|
||||
|
||||
./comp_captab.c: \
|
||||
make_hash$(BUILD_EXEEXT) \
|
||||
../include/hashsize.h \
|
||||
$(tinfo)/MKcaptab.sh \
|
||||
$(tinfo)/MKcaptab.awk
|
||||
sh $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(srcdir)/../include/@TERMINFO_CAPS@ > $@
|
||||
sh -e $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(srcdir)/../include/@TERMINFO_CAPS@ > $@
|
||||
|
||||
./lib_keyname.c: keys.list $(base)/MKkeyname.awk
|
||||
$(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
|
||||
@ -257,7 +257,7 @@ realclean :: distclean
|
||||
test_progs : $(TEST_PROGS)
|
||||
|
||||
./link_test.c : $(base)/MKlib_gen.sh ../include/curses.h
|
||||
sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
|
||||
sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
|
||||
|
||||
captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
|
||||
@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# $Id: MKkeyname.awk,v 1.38 2007/08/18 18:41:18 tom Exp $
|
||||
# $Id: MKkeyname.awk,v 1.40 2008/07/12 18:40:00 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright (c) 1999-2006,2007 Free Software Foundation, Inc. #
|
||||
# Copyright (c) 1999-2007,2008 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"), #
|
||||
@ -67,7 +67,7 @@ END {
|
||||
print "#define SIZEOF_TABLE 256"
|
||||
print "#define MyTable _nc_globals.keyname_table"
|
||||
print ""
|
||||
print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
|
||||
print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *sp, int c)"
|
||||
print "{"
|
||||
print " int i;"
|
||||
print " char name[20];"
|
||||
@ -100,7 +100,7 @@ END {
|
||||
print " if (MyTable[c] == 0) {"
|
||||
print " int cc = c;"
|
||||
print " p = name;"
|
||||
print " if (cc >= 128 && (SP == 0 || SP->_use_meta)) {"
|
||||
print " if (cc >= 128 && (sp == 0 || sp->_use_meta)) {"
|
||||
print " strcpy(p, \"M-\");"
|
||||
print " p += 2;"
|
||||
print " cc -= 128;"
|
||||
@ -124,7 +124,7 @@ END {
|
||||
print ""
|
||||
print " _nc_tracing = 0; /* prevent recursion via keybound() */"
|
||||
print " for (j = 0; (bound = keybound(c, j)) != 0; ++j) {"
|
||||
print " for(k = STRCOUNT; k < NUM_STRINGS(tp); k++) {"
|
||||
print " for(k = STRCOUNT; k < (int) NUM_STRINGS(tp); k++) {"
|
||||
print " if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {"
|
||||
print " result = ExtStrname(tp, k, strnames);"
|
||||
print " break;"
|
||||
@ -141,6 +141,11 @@ END {
|
||||
print " return result;"
|
||||
print "}"
|
||||
print ""
|
||||
print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
|
||||
print "{"
|
||||
print "\treturn _nc_keyname(SP, c);"
|
||||
print "}"
|
||||
print ""
|
||||
print "#if NO_LEAKS"
|
||||
print "void _nc_keyname_leaks(void)"
|
||||
print "{"
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# MKlib_gen.sh -- generate sources from curses.h macro definitions
|
||||
#
|
||||
# ($Id: MKlib_gen.sh,v 1.30 2008/01/05 23:21:10 tom Exp $)
|
||||
# ($Id: MKlib_gen.sh,v 1.34 2008/08/30 19:20:50 tom Exp $)
|
||||
#
|
||||
##############################################################################
|
||||
# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
|
||||
@ -152,7 +152,7 @@ cat >$ED3 <<EOF3
|
||||
s/ )/)/g
|
||||
s/ gen_/ /
|
||||
s/^M_/#undef /
|
||||
s/^[ ]*%[ ]*%[ ]*/ /
|
||||
s/^[ ]*@[ ]*@[ ]*/ /
|
||||
:done
|
||||
EOF3
|
||||
|
||||
@ -252,7 +252,7 @@ $0 !~ /^P_/ {
|
||||
dotrace = 0;
|
||||
}
|
||||
|
||||
call = "%%T((T_CALLED(\""
|
||||
call = "@@T((T_CALLED(\""
|
||||
args = ""
|
||||
comma = ""
|
||||
num = 0;
|
||||
@ -338,7 +338,7 @@ $0 !~ /^P_/ {
|
||||
else if (dotrace)
|
||||
call = sprintf("return%s( ", returnType);
|
||||
else
|
||||
call = "%%return ";
|
||||
call = "@@return ";
|
||||
|
||||
call = call $myfunc "(";
|
||||
for (i = 1; i < argcount; i++) {
|
||||
@ -358,7 +358,7 @@ $0 !~ /^P_/ {
|
||||
print call ";"
|
||||
|
||||
if (match($0, "^void"))
|
||||
print "%%returnVoid;"
|
||||
print "@@returnVoid;"
|
||||
print "}";
|
||||
}
|
||||
EOF1
|
||||
@ -416,11 +416,14 @@ $preprocessor $TMP 2>/dev/null \
|
||||
| sed \
|
||||
-e 's/ / /g' \
|
||||
-e 's/^ //' \
|
||||
-e 's/^_Bool/bool/' \
|
||||
-e 's/_Bool/NCURSES_BOOL/g' \
|
||||
| $AWK -f $AW2 \
|
||||
| sed -f $ED3 \
|
||||
| sed \
|
||||
-e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
|
||||
-e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/ return \1;/' \
|
||||
-e 's/gen_//' \
|
||||
-e 's/^[ ]*#/#/' \
|
||||
-e '/#ident/d' \
|
||||
-e '/#line/d' \
|
||||
| sed -f $ED4
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: MKunctrl.awk,v 1.21 2008/02/03 20:24:30 tom Exp $
|
||||
# $Id: MKunctrl.awk,v 1.23 2008/10/04 21:40:24 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
|
||||
# #
|
||||
@ -46,7 +46,7 @@ BEGIN {
|
||||
print ""
|
||||
}
|
||||
END {
|
||||
print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
|
||||
print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *sp, chtype ch)"
|
||||
print "{"
|
||||
|
||||
blob=""
|
||||
@ -101,6 +101,7 @@ END {
|
||||
blob = blob "\"";
|
||||
|
||||
print ""
|
||||
printf "#if NCURSES_EXT_FUNCS\n";
|
||||
if (bigstrings) {
|
||||
blob = blob "\n/* printable values in 128-255 range */"
|
||||
printf "static const short unctrl_c1[] = {"
|
||||
@ -135,6 +136,7 @@ END {
|
||||
}
|
||||
}
|
||||
print "};"
|
||||
print "#endif /* NCURSES_EXT_FUNCS */"
|
||||
blob = blob "\"\n"
|
||||
|
||||
print ""
|
||||
@ -150,8 +152,8 @@ END {
|
||||
print ""
|
||||
print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
|
||||
print "#if NCURSES_EXT_FUNCS"
|
||||
print "\t\tif ((SP != 0)"
|
||||
print "\t\t && (SP->_legacy_coding > 1)"
|
||||
print "\t\tif ((sp != 0)"
|
||||
print "\t\t && (sp->_legacy_coding > 1)"
|
||||
print "\t\t && (check >= 128)"
|
||||
print "\t\t && (check < 160))"
|
||||
printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
|
||||
@ -159,18 +161,18 @@ END {
|
||||
print "#if USE_WIDEC_SUPPORT"
|
||||
print "\t\tif ((check >= 160)"
|
||||
print "\t\t && (check < 256)"
|
||||
print "\t\t && ((SP != 0)"
|
||||
print "\t\t && ((SP->_legacy_coding > 0)"
|
||||
print "\t\t || (SP->_legacy_coding == 0"
|
||||
print "\t\t && ((sp != 0)"
|
||||
print "\t\t && ((sp->_legacy_coding > 0)"
|
||||
print "\t\t || (sp->_legacy_coding == 0"
|
||||
print "\t\t && (isprint(check) || iswprint(check))))))"
|
||||
printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
|
||||
print "\t\telse"
|
||||
print "#else"
|
||||
print "\t\tif ((check >= 160)"
|
||||
print "\t\t && (check < 256)"
|
||||
print "\t\t && ((SP != 0)"
|
||||
print "\t\t && ((SP->_legacy_coding > 0)"
|
||||
print "\t\t || (SP->_legacy_coding == 0"
|
||||
print "\t\t && ((sp != 0)"
|
||||
print "\t\t && ((sp->_legacy_coding > 0)"
|
||||
print "\t\t || (sp->_legacy_coding == 0"
|
||||
print "\t\t && isprint(check)))))"
|
||||
printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
|
||||
print "\t\telse"
|
||||
@ -182,4 +184,9 @@ END {
|
||||
print "\t}"
|
||||
print "\treturn (NCURSES_CONST char *)result;"
|
||||
print "}"
|
||||
print ""
|
||||
print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch)"
|
||||
print "{"
|
||||
print "\treturn _nc_unctrl(SP, ch);"
|
||||
print "}"
|
||||
}
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <ctype.h>
|
||||
|
||||
MODULE_ID("$Id: lib_addch.c,v 1.111 2008/03/29 18:48:02 tom Exp $")
|
||||
MODULE_ID("$Id: lib_addch.c,v 1.113 2008/08/16 19:20:04 tom Exp $")
|
||||
|
||||
static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
|
||||
|
||||
@ -210,7 +210,7 @@ _nc_build_wch(WINDOW *win, ARG_CH_T ch)
|
||||
WINDOW_EXT(win, addch_y) = y;
|
||||
|
||||
init_mb(state);
|
||||
buffer[WINDOW_EXT(win, addch_used)] = CharOf(CHDEREF(ch));
|
||||
buffer[WINDOW_EXT(win, addch_used)] = (char) CharOf(CHDEREF(ch));
|
||||
WINDOW_EXT(win, addch_used) += 1;
|
||||
buffer[WINDOW_EXT(win, addch_used)] = '\0';
|
||||
if ((len = mbrtowc(&result,
|
||||
@ -290,12 +290,15 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch)
|
||||
int len = wcwidth(CharOf(ch));
|
||||
int i;
|
||||
int j;
|
||||
wchar_t *chars;
|
||||
|
||||
if (len == 0) { /* non-spacing */
|
||||
if ((x > 0 && y >= 0)
|
||||
|| ((y = win->_cury - 1) >= 0 &&
|
||||
(x = win->_maxx) > 0)) {
|
||||
wchar_t *chars = (win->_line[y].text[x - 1].chars);
|
||||
|| (win->_maxx >= 0 && win->_cury >= 1)) {
|
||||
if (x > 0 && y >= 0)
|
||||
chars = (win->_line[y].text[x - 1].chars);
|
||||
else
|
||||
chars = (win->_line[y - 1].text[win->_maxx].chars);
|
||||
for (i = 0; i < CCHARW_MAX; ++i) {
|
||||
if (chars[i] == 0) {
|
||||
TR(TRACE_VIRTPUT,
|
||||
|
@ -40,7 +40,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_delwin.c,v 1.16 2008/05/03 14:13:51 tom Exp $")
|
||||
MODULE_ID("$Id: lib_delwin.c,v 1.17 2008/06/07 14:10:56 tom Exp $")
|
||||
|
||||
static bool
|
||||
cannot_delete(WINDOW *win)
|
||||
@ -67,12 +67,10 @@ delwin(WINDOW *win)
|
||||
|
||||
T((T_CALLED("delwin(%p)"), win));
|
||||
|
||||
if (_nc_try_global(windowlist) == 0) {
|
||||
_nc_lock_window(win);
|
||||
if (_nc_try_global(curses) == 0) {
|
||||
if (win == 0
|
||||
|| cannot_delete(win)) {
|
||||
result = ERR;
|
||||
_nc_unlock_window(win);
|
||||
} else {
|
||||
|
||||
if (win->_flags & _SUBWIN)
|
||||
@ -80,10 +78,9 @@ delwin(WINDOW *win)
|
||||
else if (curscr != 0)
|
||||
touchwin(curscr);
|
||||
|
||||
_nc_unlock_window(win);
|
||||
result = _nc_freewin(win);
|
||||
}
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
returnCode(result);
|
||||
}
|
||||
|
@ -40,7 +40,7 @@
|
||||
extern int malloc_errfd; /* FIXME */
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: lib_freeall.c,v 1.46 2008/05/03 14:13:51 tom Exp $")
|
||||
MODULE_ID("$Id: lib_freeall.c,v 1.54 2008/09/27 13:09:57 tom Exp $")
|
||||
|
||||
/*
|
||||
* Free all ncurses data. This is used for testing only (there's no practical
|
||||
@ -58,10 +58,13 @@ _nc_freeall(void)
|
||||
if (SP->_oldnum_list != 0) {
|
||||
FreeAndNull(SP->_oldnum_list);
|
||||
}
|
||||
if (SP->_panelHook.destroy != 0) {
|
||||
SP->_panelHook.destroy(SP->_panelHook.stdscr_pseudo_panel);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (SP != 0) {
|
||||
_nc_lock_global(windowlist);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
while (_nc_windows != 0) {
|
||||
bool deleted = FALSE;
|
||||
@ -93,23 +96,18 @@ _nc_freeall(void)
|
||||
break;
|
||||
}
|
||||
delscreen(SP);
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
if (cur_term != 0)
|
||||
del_curterm(cur_term);
|
||||
|
||||
#if USE_WIDEC_SUPPORT
|
||||
FreeIfNeeded(_nc_wacs);
|
||||
#endif
|
||||
(void) _nc_printf_string(0, empty_va);
|
||||
#ifdef TRACE
|
||||
(void) _nc_trace_buf(-1, 0);
|
||||
#endif
|
||||
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
FreeIfNeeded(_nc_prescreen.real_acs_map);
|
||||
#if USE_WIDEC_SUPPORT
|
||||
FreeIfNeeded(_nc_wacs);
|
||||
#endif
|
||||
|
||||
_nc_leaks_tinfo();
|
||||
|
||||
#if HAVE_LIBDBMALLOC
|
||||
@ -131,7 +129,10 @@ _nc_free_and_exit(int code)
|
||||
_nc_freeall();
|
||||
#ifdef TRACE
|
||||
trace(0); /* close trace file, freeing its setbuf */
|
||||
free(_nc_varargs("?", 0));
|
||||
{
|
||||
static va_list fake;
|
||||
free(_nc_varargs("?", fake));
|
||||
}
|
||||
#endif
|
||||
fclose(stdout);
|
||||
FreeIfNeeded(last_setbuf);
|
||||
@ -143,4 +144,14 @@ NCURSES_EXPORT(void)
|
||||
_nc_freeall(void)
|
||||
{
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_free_and_exit(int code)
|
||||
{
|
||||
if (SP)
|
||||
delscreen(SP);
|
||||
if (cur_term != 0)
|
||||
del_curterm(cur_term);
|
||||
exit(code);
|
||||
}
|
||||
#endif
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_getch.c,v 1.87 2008/05/03 22:42:10 tom Exp $")
|
||||
MODULE_ID("$Id: lib_getch.c,v 1.99 2008/09/20 19:46:13 tom Exp $")
|
||||
|
||||
#include <fifo_defs.h>
|
||||
|
||||
@ -76,6 +76,13 @@ set_escdelay(int value)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
_nc_use_meta(WINDOW *win)
|
||||
{
|
||||
SCREEN *sp = _nc_screen_of(win);
|
||||
return (sp ? sp->_use_meta : 0);
|
||||
}
|
||||
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
#define TWAIT_MASK 7
|
||||
#else
|
||||
@ -123,7 +130,7 @@ fifo_pull(SCREEN *sp)
|
||||
{
|
||||
int ch;
|
||||
ch = sp->_fifo[head];
|
||||
TR(TRACE_IEVENT, ("pulling %s from %d", _tracechar(ch), head));
|
||||
TR(TRACE_IEVENT, ("pulling %s from %d", _nc_tracechar(sp, ch), head));
|
||||
|
||||
if (peek == head) {
|
||||
h_inc();
|
||||
@ -228,7 +235,7 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
|
||||
if (head == -1)
|
||||
head = peek = tail;
|
||||
t_inc();
|
||||
TR(TRACE_IEVENT, ("pushed %s at %d", _tracechar(ch), tail));
|
||||
TR(TRACE_IEVENT, ("pushed %s at %d", _nc_tracechar(sp, ch), tail));
|
||||
#ifdef TRACE
|
||||
if (USE_TRACEF(TRACE_IEVENT)) {
|
||||
_nc_fifo_dump(sp);
|
||||
@ -248,9 +255,59 @@ fifo_clear(SCREEN *sp)
|
||||
|
||||
static int kgetch(SCREEN *EVENTLIST_2nd(_nc_eventlist * evl));
|
||||
|
||||
#define wgetch_should_refresh(win) (\
|
||||
(is_wintouched(win) || (win->_flags & _HASMOVED)) \
|
||||
&& !(win->_flags & _ISPAD))
|
||||
static void
|
||||
recur_wrefresh(WINDOW *win)
|
||||
{
|
||||
#ifdef USE_PTHREADS
|
||||
SCREEN *sp = _nc_screen_of(win);
|
||||
if (_nc_use_pthreads && sp != SP) {
|
||||
SCREEN *save_SP;
|
||||
|
||||
/* temporarily switch to the window's screen to check/refresh */
|
||||
_nc_lock_global(curses);
|
||||
save_SP = SP;
|
||||
_nc_set_screen(sp);
|
||||
recur_wrefresh(win);
|
||||
_nc_set_screen(save_SP);
|
||||
_nc_unlock_global(curses);
|
||||
} else
|
||||
#endif
|
||||
if ((is_wintouched(win) || (win->_flags & _HASMOVED))
|
||||
&& !(win->_flags & _ISPAD)) {
|
||||
wrefresh(win);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
recur_wgetnstr(WINDOW *win, char *buf)
|
||||
{
|
||||
SCREEN *sp = _nc_screen_of(win);
|
||||
int rc;
|
||||
|
||||
if (sp != 0) {
|
||||
#ifdef USE_PTHREADS
|
||||
if (_nc_use_pthreads && sp != SP) {
|
||||
SCREEN *save_SP;
|
||||
|
||||
/* temporarily switch to the window's screen to get cooked input */
|
||||
_nc_lock_global(curses);
|
||||
save_SP = SP;
|
||||
_nc_set_screen(sp);
|
||||
rc = recur_wgetnstr(win, buf);
|
||||
_nc_set_screen(save_SP);
|
||||
_nc_unlock_global(curses);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
sp->_called_wgetch = TRUE;
|
||||
rc = wgetnstr(win, buf, MAXCOLUMNS);
|
||||
sp->_called_wgetch = FALSE;
|
||||
}
|
||||
} else {
|
||||
rc = ERR;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_wgetch(WINDOW *win,
|
||||
@ -258,7 +315,7 @@ _nc_wgetch(WINDOW *win,
|
||||
int use_meta
|
||||
EVENTLIST_2nd(_nc_eventlist * evl))
|
||||
{
|
||||
SCREEN *sp = SP;
|
||||
SCREEN *sp;
|
||||
int ch;
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
long event_delay = -1;
|
||||
@ -267,14 +324,14 @@ _nc_wgetch(WINDOW *win,
|
||||
T((T_CALLED("_nc_wgetch(%p)"), win));
|
||||
|
||||
*result = 0;
|
||||
|
||||
sp = _nc_screen_of(win);
|
||||
if (win == 0 || sp == 0) {
|
||||
returnCode(ERR);
|
||||
}
|
||||
|
||||
if (cooked_key_in_fifo()) {
|
||||
if (wgetch_should_refresh(win))
|
||||
wrefresh(win);
|
||||
|
||||
recur_wrefresh(win);
|
||||
*result = fifo_pull(sp);
|
||||
returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
|
||||
}
|
||||
@ -299,9 +356,7 @@ _nc_wgetch(WINDOW *win,
|
||||
|
||||
TR(TRACE_IEVENT, ("filling queue in cooked mode"));
|
||||
|
||||
sp->_called_wgetch = TRUE;
|
||||
rc = wgetnstr(win, buf, MAXCOLUMNS);
|
||||
sp->_called_wgetch = FALSE;
|
||||
rc = recur_wgetnstr(win, buf);
|
||||
|
||||
/* ungetch in reverse order */
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
@ -324,10 +379,9 @@ _nc_wgetch(WINDOW *win,
|
||||
if (win->_use_keypad != sp->_keypad_on)
|
||||
_nc_keypad(sp, win->_use_keypad);
|
||||
|
||||
if (wgetch_should_refresh(win))
|
||||
wrefresh(win);
|
||||
recur_wrefresh(win);
|
||||
|
||||
if (!win->_notimeout && (win->_delay >= 0 || sp->_cbreak > 1)) {
|
||||
if (win->_notimeout || (win->_delay >= 0) || (sp->_cbreak > 1)) {
|
||||
if (head == -1) { /* fifo is empty */
|
||||
int delay;
|
||||
int rc;
|
||||
@ -353,8 +407,9 @@ _nc_wgetch(WINDOW *win,
|
||||
returnCode(KEY_CODE_YES);
|
||||
}
|
||||
#endif
|
||||
if (!rc)
|
||||
if (!rc) {
|
||||
returnCode(ERR);
|
||||
}
|
||||
}
|
||||
/* else go on to read data available */
|
||||
}
|
||||
@ -388,7 +443,7 @@ _nc_wgetch(WINDOW *win,
|
||||
&& (((rc = check_mouse_activity(sp, sp->_maxclick
|
||||
EVENTLIST_2nd(evl))) != 0
|
||||
&& !(rc & 4))
|
||||
|| !sp->_mouse_parse(runcount)));
|
||||
|| !sp->_mouse_parse(sp, runcount)));
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
if ((rc & 4) && !ch == KEY_EVENT) {
|
||||
_nc_ungetch(sp, ch);
|
||||
@ -467,7 +522,7 @@ _nc_wgetch(WINDOW *win,
|
||||
if ((ch < KEY_MIN) && (ch & 0x80))
|
||||
ch &= 0x7f;
|
||||
|
||||
T(("wgetch returning : %s", _tracechar(ch)));
|
||||
T(("wgetch returning : %s", _nc_tracechar(sp, ch)));
|
||||
|
||||
*result = ch;
|
||||
returnCode(ch >= KEY_MIN ? KEY_CODE_YES : OK);
|
||||
@ -477,14 +532,13 @@ _nc_wgetch(WINDOW *win,
|
||||
NCURSES_EXPORT(int)
|
||||
wgetch_events(WINDOW *win, _nc_eventlist * evl)
|
||||
{
|
||||
SCREEN *sp = SP;
|
||||
int code;
|
||||
unsigned long value;
|
||||
|
||||
T((T_CALLED("wgetch_events(%p,%p)"), win, evl));
|
||||
code = _nc_wgetch(win,
|
||||
&value,
|
||||
sp->_use_meta
|
||||
_nc_use_meta(win)
|
||||
EVENTLIST_2nd(evl));
|
||||
if (code != ERR)
|
||||
code = value;
|
||||
@ -495,14 +549,13 @@ wgetch_events(WINDOW *win, _nc_eventlist * evl)
|
||||
NCURSES_EXPORT(int)
|
||||
wgetch(WINDOW *win)
|
||||
{
|
||||
SCREEN *sp = SP;
|
||||
int code;
|
||||
unsigned long value;
|
||||
|
||||
T((T_CALLED("wgetch(%p)"), win));
|
||||
code = _nc_wgetch(win,
|
||||
&value,
|
||||
(sp ? sp->_use_meta : 0)
|
||||
_nc_use_meta(win)
|
||||
EVENTLIST_2nd((_nc_eventlist *) 0));
|
||||
if (code != ERR)
|
||||
code = value;
|
||||
@ -564,7 +617,7 @@ kgetch(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
|
||||
return ch;
|
||||
}
|
||||
|
||||
TR(TRACE_IEVENT, ("ch: %s", _tracechar((unsigned char) ch)));
|
||||
TR(TRACE_IEVENT, ("ch: %s", _nc_tracechar(sp, (unsigned char) ch)));
|
||||
while ((ptr != NULL) && (ptr->ch != (unsigned char) ch))
|
||||
ptr = ptr->sibling;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -41,7 +41,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <term.h>
|
||||
|
||||
MODULE_ID("$Id: lib_getstr.c,v 1.25 2006/01/12 00:33:52 tom Exp $")
|
||||
MODULE_ID("$Id: lib_getstr.c,v 1.27 2008/08/16 19:20:04 tom Exp $")
|
||||
|
||||
/*
|
||||
* This wipes out the last character, no matter whether it was a tab, control
|
||||
@ -75,6 +75,7 @@ wgetnstr_events(WINDOW *win,
|
||||
int maxlen,
|
||||
EVENTLIST_1st(_nc_eventlist * evl))
|
||||
{
|
||||
SCREEN *sp = _nc_screen_of(win);
|
||||
TTY buf;
|
||||
bool oldnl, oldecho, oldraw, oldcbreak;
|
||||
char erasec;
|
||||
@ -90,10 +91,10 @@ wgetnstr_events(WINDOW *win,
|
||||
|
||||
_nc_get_tty_mode(&buf);
|
||||
|
||||
oldnl = SP->_nl;
|
||||
oldecho = SP->_echo;
|
||||
oldraw = SP->_raw;
|
||||
oldcbreak = SP->_cbreak;
|
||||
oldnl = sp->_nl;
|
||||
oldecho = sp->_echo;
|
||||
oldraw = sp->_raw;
|
||||
oldcbreak = sp->_cbreak;
|
||||
nl();
|
||||
noecho();
|
||||
noraw();
|
||||
@ -145,7 +146,7 @@ wgetnstr_events(WINDOW *win,
|
||||
|| (maxlen >= 0 && str - oldstr >= maxlen)) {
|
||||
beep();
|
||||
} else {
|
||||
*str++ = ch;
|
||||
*str++ = (char) ch;
|
||||
if (oldecho == TRUE) {
|
||||
int oldy = win->_cury;
|
||||
if (waddch(win, (chtype) ch) == ERR) {
|
||||
@ -187,10 +188,10 @@ wgetnstr_events(WINDOW *win,
|
||||
/* Restore with a single I/O call, to fix minor asymmetry between
|
||||
* raw/noraw, etc.
|
||||
*/
|
||||
SP->_nl = oldnl;
|
||||
SP->_echo = oldecho;
|
||||
SP->_raw = oldraw;
|
||||
SP->_cbreak = oldcbreak;
|
||||
sp->_nl = oldnl;
|
||||
sp->_echo = oldecho;
|
||||
sp->_raw = oldraw;
|
||||
sp->_cbreak = oldcbreak;
|
||||
|
||||
_nc_set_tty_mode(&buf);
|
||||
|
||||
|
@ -45,7 +45,7 @@
|
||||
#include <sys/termio.h> /* needed for ISC */
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: lib_initscr.c,v 1.36 2008/04/12 18:11:36 tom Exp $")
|
||||
MODULE_ID("$Id: lib_initscr.c,v 1.38 2008/08/16 21:20:48 Werner.Fink Exp $")
|
||||
|
||||
NCURSES_EXPORT(WINDOW *)
|
||||
initscr(void)
|
||||
@ -57,7 +57,9 @@ initscr(void)
|
||||
START_TRACE();
|
||||
T((T_CALLED("initscr()")));
|
||||
|
||||
_nc_lock_global(set_SP);
|
||||
_nc_init_pthreads();
|
||||
_nc_lock_global(curses);
|
||||
|
||||
/* Portable applications must not call initscr() more than once */
|
||||
if (!_nc_globals.init_screen) {
|
||||
_nc_globals.init_screen = TRUE;
|
||||
@ -91,7 +93,7 @@ initscr(void)
|
||||
def_prog_mode();
|
||||
}
|
||||
result = stdscr;
|
||||
_nc_unlock_global(set_SP);
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
returnWin(result);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -48,7 +48,7 @@
|
||||
#include <term.h> /* clear_screen, cup & friends, cur_term */
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: lib_newterm.c,v 1.69 2008/04/12 18:15:04 tom Exp $")
|
||||
MODULE_ID("$Id: lib_newterm.c,v 1.73 2008/08/16 21:20:48 Werner.Fink Exp $")
|
||||
|
||||
#ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */
|
||||
#define ONLCR 0
|
||||
@ -125,11 +125,17 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
|
||||
int errret;
|
||||
SCREEN *current;
|
||||
SCREEN *result = 0;
|
||||
TERMINAL *its_term;
|
||||
|
||||
START_TRACE();
|
||||
T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
|
||||
|
||||
_nc_lock_global(set_SP);
|
||||
_nc_init_pthreads();
|
||||
_nc_lock_global(curses);
|
||||
|
||||
current = SP;
|
||||
its_term = (SP ? SP->_term : 0);
|
||||
|
||||
/* this loads the capability entry, then sets LINES and COLS */
|
||||
if (setupterm(name, fileno(ofp), &errret) != ERR) {
|
||||
int slk_format = _nc_globals.slk_format;
|
||||
@ -138,7 +144,6 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
|
||||
* This actually allocates the screen structure, and saves the original
|
||||
* terminal settings.
|
||||
*/
|
||||
current = SP;
|
||||
_nc_set_screen(0);
|
||||
|
||||
/* allow user to set maximum escape delay from the environment */
|
||||
@ -154,6 +159,19 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
|
||||
_nc_set_screen(current);
|
||||
result = 0;
|
||||
} else {
|
||||
assert(SP != 0);
|
||||
/*
|
||||
* In setupterm() we did a set_curterm(), but it was before we set
|
||||
* SP. So the "current" screen's terminal pointer was overwritten
|
||||
* with a different terminal. Later, in _nc_setupscreen(), we set
|
||||
* SP and the terminal pointer in the new screen.
|
||||
*
|
||||
* Restore the terminal-pointer for the pre-existing screen, if
|
||||
* any.
|
||||
*/
|
||||
if (current)
|
||||
current->_term = its_term;
|
||||
|
||||
/* if the terminal type has real soft labels, set those up */
|
||||
if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format))
|
||||
_nc_slk_initialize(stdscr, COLS);
|
||||
@ -212,6 +230,6 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
|
||||
result = SP;
|
||||
}
|
||||
}
|
||||
_nc_unlock_global(set_SP);
|
||||
_nc_unlock_global(curses);
|
||||
returnSP(result);
|
||||
}
|
||||
|
@ -42,7 +42,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <stddef.h>
|
||||
|
||||
MODULE_ID("$Id: lib_newwin.c,v 1.50 2008/05/03 16:36:39 tom Exp $")
|
||||
MODULE_ID("$Id: lib_newwin.c,v 1.52 2008/06/07 13:58:09 tom Exp $")
|
||||
|
||||
#define window_is(name) ((sp)->_##name == win)
|
||||
|
||||
@ -85,7 +85,7 @@ _nc_freewin(WINDOW *win)
|
||||
T((T_CALLED("_nc_freewin(%p)"), win));
|
||||
|
||||
if (win != 0) {
|
||||
if (_nc_try_global(windowlist) == 0) {
|
||||
if (_nc_try_global(curses) == 0) {
|
||||
q = 0;
|
||||
for (each_window(p)) {
|
||||
if (&(p->win) == win) {
|
||||
@ -108,7 +108,7 @@ _nc_freewin(WINDOW *win)
|
||||
}
|
||||
q = p;
|
||||
}
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
}
|
||||
returnCode(result);
|
||||
@ -229,8 +229,6 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
|
||||
if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
|
||||
returnWin(0);
|
||||
|
||||
_nc_mutex_init(&(wp->mutex_use_window));
|
||||
|
||||
win = &(wp->win);
|
||||
|
||||
if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
|
||||
@ -238,7 +236,7 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
|
||||
returnWin(0);
|
||||
}
|
||||
|
||||
_nc_lock_global(windowlist);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
win->_curx = 0;
|
||||
win->_cury = 0;
|
||||
@ -313,10 +311,28 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
|
||||
}
|
||||
|
||||
wp->next = _nc_windows;
|
||||
wp->screen = SP;
|
||||
_nc_windows = wp;
|
||||
|
||||
T((T_CREATE("window %p"), win));
|
||||
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
returnWin(win);
|
||||
}
|
||||
|
||||
/*
|
||||
* wgetch() and other functions with a WINDOW* parameter may use a SCREEN*
|
||||
* internally, and it is useful to allow those to be invoked without switching
|
||||
* SCREEN's, e.g., for multi-threaded applications.
|
||||
*/
|
||||
NCURSES_EXPORT(SCREEN *)
|
||||
_nc_screen_of(WINDOW *win)
|
||||
{
|
||||
SCREEN *sp = 0;
|
||||
|
||||
if (win != 0) {
|
||||
WINDOWLIST *wp = (WINDOWLIST *) win;
|
||||
sp = wp->screen;
|
||||
}
|
||||
return (sp);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -40,7 +40,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_overlay.c,v 1.25 2008/04/12 17:21:59 tom Exp $")
|
||||
MODULE_ID("$Id: lib_overlay.c,v 1.27 2008/06/07 23:30:34 tom Exp $")
|
||||
|
||||
static int
|
||||
overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
|
||||
@ -55,8 +55,7 @@ overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
|
||||
T((T_CALLED("overlap(%p,%p,%d)"), src, dst, flag));
|
||||
|
||||
if (src != 0 && dst != 0) {
|
||||
_nc_lock_window(src);
|
||||
_nc_lock_window(dst);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
T(("src : begy %ld, begx %ld, maxy %ld, maxx %ld",
|
||||
(long) src->_begy,
|
||||
@ -93,8 +92,7 @@ overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
|
||||
dmaxrow, dmaxcol,
|
||||
flag);
|
||||
}
|
||||
_nc_unlock_window(dst);
|
||||
_nc_unlock_window(src);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
returnCode(rc);
|
||||
}
|
||||
@ -150,9 +148,7 @@ copywin(const WINDOW *src, WINDOW *dst,
|
||||
src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over));
|
||||
|
||||
if (src && dst) {
|
||||
|
||||
_nc_lock_window(src);
|
||||
_nc_lock_window(dst);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
bk = AttrOf(dst->_nc_bkgd);
|
||||
mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
|
||||
@ -204,8 +200,7 @@ copywin(const WINDOW *src, WINDOW *dst,
|
||||
rc = OK;
|
||||
}
|
||||
}
|
||||
_nc_unlock_window(dst);
|
||||
_nc_unlock_window(src);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
returnCode(rc);
|
||||
}
|
||||
|
@ -36,8 +36,6 @@
|
||||
* Terminfo-only terminal setup routines:
|
||||
*
|
||||
* int restartterm(const char *, int, int *)
|
||||
* TERMINAL *set_curterm(TERMINAL *)
|
||||
* int del_curterm(TERMINAL *)
|
||||
*/
|
||||
|
||||
#include <curses.priv.h>
|
||||
@ -48,7 +46,7 @@
|
||||
|
||||
#include <term.h> /* lines, columns, cur_term */
|
||||
|
||||
MODULE_ID("$Id: lib_restart.c,v 1.9 2008/05/03 22:43:52 tom Exp $")
|
||||
MODULE_ID("$Id: lib_restart.c,v 1.10 2008/06/21 17:31:22 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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,12 +29,14 @@
|
||||
/****************************************************************************
|
||||
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
|
||||
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
|
||||
* and: Thomas E. Dickey 1996 on *
|
||||
* and: Thomas E. Dickey 1996 on *
|
||||
****************************************************************************/
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_screen.c,v 1.30 2007/03/10 23:20:41 tom Exp $")
|
||||
MODULE_ID("$Id: lib_screen.c,v 1.31 2008/08/16 19:05:37 tom Exp $")
|
||||
|
||||
#define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */
|
||||
|
||||
NCURSES_EXPORT(WINDOW *)
|
||||
getwin(FILE *filep)
|
||||
@ -46,7 +48,11 @@ getwin(FILE *filep)
|
||||
|
||||
clearerr(filep);
|
||||
(void) fread(&tmp, sizeof(WINDOW), 1, filep);
|
||||
if (ferror(filep))
|
||||
if (ferror(filep)
|
||||
|| tmp._maxy == 0
|
||||
|| tmp._maxy > MAX_SIZE
|
||||
|| tmp._maxx == 0
|
||||
|| tmp._maxx > MAX_SIZE)
|
||||
returnWin(0);
|
||||
|
||||
if (tmp._flags & _ISPAD) {
|
||||
@ -115,7 +121,7 @@ putwin(WINDOW *win, FILE *filep)
|
||||
T((T_CALLED("putwin(%p,%p)"), win, filep));
|
||||
|
||||
if (win != 0) {
|
||||
size_t len = (win->_maxx + 1);
|
||||
size_t len = (size_t) (win->_maxx + 1);
|
||||
|
||||
clearerr(filep);
|
||||
if (fwrite(win, sizeof(WINDOW), 1, filep) != 1
|
||||
|
@ -44,28 +44,30 @@
|
||||
#include <term.h> /* cur_term */
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: lib_set_term.c,v 1.108 2008/05/03 22:42:43 tom Exp $")
|
||||
MODULE_ID("$Id: lib_set_term.c,v 1.117 2008/08/04 18:11:12 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(SCREEN *)
|
||||
set_term(SCREEN *screenp)
|
||||
{
|
||||
SCREEN *oldSP;
|
||||
SCREEN *newSP;
|
||||
|
||||
T((T_CALLED("set_term(%p)"), screenp));
|
||||
|
||||
_nc_lock_global(set_SP);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
oldSP = SP;
|
||||
_nc_set_screen(screenp);
|
||||
newSP = SP;
|
||||
|
||||
if (SP != 0) {
|
||||
set_curterm(SP->_term);
|
||||
if (newSP != 0) {
|
||||
set_curterm(newSP->_term);
|
||||
#if !USE_REENTRANT
|
||||
curscr = SP->_curscr;
|
||||
newscr = SP->_newscr;
|
||||
stdscr = SP->_stdscr;
|
||||
COLORS = SP->_color_count;
|
||||
COLOR_PAIRS = SP->_pair_count;
|
||||
curscr = newSP->_curscr;
|
||||
newscr = newSP->_newscr;
|
||||
stdscr = newSP->_stdscr;
|
||||
COLORS = newSP->_color_count;
|
||||
COLOR_PAIRS = newSP->_pair_count;
|
||||
#endif
|
||||
} else {
|
||||
set_curterm(0);
|
||||
@ -78,7 +80,7 @@ set_term(SCREEN *screenp)
|
||||
#endif
|
||||
}
|
||||
|
||||
_nc_unlock_global(set_SP);
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
T((T_RETURN("%p"), oldSP));
|
||||
return (oldSP);
|
||||
@ -125,7 +127,7 @@ delscreen(SCREEN *sp)
|
||||
|
||||
T((T_CALLED("delscreen(%p)"), sp));
|
||||
|
||||
_nc_lock_global(set_SP);
|
||||
_nc_lock_global(curses);
|
||||
if (delink_screen(sp)) {
|
||||
|
||||
(void) _nc_freewin(sp->_curscr);
|
||||
@ -162,8 +164,6 @@ delscreen(SCREEN *sp)
|
||||
FreeIfNeeded(sp->_acs_map);
|
||||
FreeIfNeeded(sp->_screen_acs_map);
|
||||
|
||||
del_curterm(sp->_term);
|
||||
|
||||
/*
|
||||
* If the associated output stream has been closed, we can discard the
|
||||
* set-buffer. Limit the error check to EBADF, since fflush may fail
|
||||
@ -176,6 +176,7 @@ delscreen(SCREEN *sp)
|
||||
free(sp->_setbuf);
|
||||
}
|
||||
|
||||
del_curterm(sp->_term);
|
||||
free(sp);
|
||||
|
||||
/*
|
||||
@ -194,7 +195,7 @@ delscreen(SCREEN *sp)
|
||||
_nc_set_screen(0);
|
||||
}
|
||||
}
|
||||
_nc_unlock_global(set_SP);
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
returnVoid;
|
||||
}
|
||||
@ -212,7 +213,7 @@ no_mouse_inline(SCREEN *sp GCC_UNUSED)
|
||||
}
|
||||
|
||||
static bool
|
||||
no_mouse_parse(int code GCC_UNUSED)
|
||||
no_mouse_parse(SCREEN *sp GCC_UNUSED, int code GCC_UNUSED)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@ -321,11 +322,7 @@ _nc_setupscreen(int slines GCC_UNUSED,
|
||||
SP->_ofp = output;
|
||||
SP->_cursor = -1; /* cannot know real cursor shape */
|
||||
|
||||
#if NCURSES_NO_PADDING
|
||||
SP->_no_padding = getenv("NCURSES_NO_PADDING") != 0;
|
||||
TR(TRACE_CHARPUT | TRACE_MOVE, ("padding will%s be used",
|
||||
SP->_no_padding ? " not" : ""));
|
||||
#endif
|
||||
SetNoPadding(SP);
|
||||
|
||||
#if NCURSES_EXT_FUNCS
|
||||
SP->_default_color = FALSE;
|
||||
@ -362,11 +359,10 @@ _nc_setupscreen(int slines GCC_UNUSED,
|
||||
* Allow those assumed/default color assumptions to be overridden at
|
||||
* runtime:
|
||||
*/
|
||||
if (getenv("NCURSES_ASSUMED_COLORS") != 0) {
|
||||
char *p = getenv("NCURSES_ASSUMED_COLORS");
|
||||
if ((env = getenv("NCURSES_ASSUMED_COLORS")) != 0) {
|
||||
int fg, bg;
|
||||
char sep1, sep2;
|
||||
int count = sscanf(p, "%d%c%d%c", &fg, &sep1, &bg, &sep2);
|
||||
int count = sscanf(env, "%d%c%d%c", &fg, &sep1, &bg, &sep2);
|
||||
if (count >= 1) {
|
||||
SP->_default_fg = (fg >= 0 && fg < max_colors) ? fg : C_MASK;
|
||||
if (count >= 3) {
|
||||
@ -422,11 +418,6 @@ _nc_setupscreen(int slines GCC_UNUSED,
|
||||
SP->_mouse_wrap = no_mouse_wrap;
|
||||
SP->_mouse_fd = -1;
|
||||
|
||||
/* initialize the panel hooks */
|
||||
SP->_panelHook.top_panel = (struct panel *) 0;
|
||||
SP->_panelHook.bottom_panel = (struct panel *) 0;
|
||||
SP->_panelHook.stdscr_pseudo_panel = (struct panel *) 0;
|
||||
|
||||
/*
|
||||
* If we've no magic cookie support, we suppress attributes that xmc would
|
||||
* affect, i.e., the attributes that affect the rendition of a space.
|
||||
@ -515,7 +506,7 @@ _nc_setupscreen(int slines GCC_UNUSED,
|
||||
|
||||
/* initialize normal acs before wide, since we use mapping in the latter */
|
||||
#if !USE_WIDEC_SUPPORT
|
||||
if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
|
||||
if (_nc_unicode_locale() && _nc_locale_breaks_acs(cur_term)) {
|
||||
acs_chars = NULL;
|
||||
ena_acs = NULL;
|
||||
enter_alt_charset_mode = NULL;
|
||||
@ -527,7 +518,8 @@ _nc_setupscreen(int slines GCC_UNUSED,
|
||||
#if USE_WIDEC_SUPPORT
|
||||
_nc_init_wacs();
|
||||
|
||||
SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
|
||||
SP->_screen_acs_fix = (_nc_unicode_locale()
|
||||
&& _nc_locale_breaks_acs(cur_term));
|
||||
#endif
|
||||
env = _nc_get_locale();
|
||||
SP->_legacy_coding = ((env == 0)
|
||||
|
@ -45,32 +45,7 @@
|
||||
#include <ctype.h>
|
||||
#include <term.h> /* num_labels, label_*, plab_norm */
|
||||
|
||||
MODULE_ID("$Id: lib_slk.c,v 1.31 2008/01/12 20:21:00 tom Exp $")
|
||||
|
||||
/*
|
||||
* We'd like to move these into the screen context structure, but cannot,
|
||||
* because slk_init() is called before initscr()/newterm().
|
||||
*/
|
||||
NCURSES_EXPORT_VAR(int)
|
||||
_nc_slk_format = 0; /* one more than format specified in slk_init() */
|
||||
|
||||
/*
|
||||
* Paint the info line for the PC style SLK emulation.
|
||||
*/
|
||||
static void
|
||||
slk_paint_info(WINDOW *win)
|
||||
{
|
||||
if (win && SP->slk_format == 4) {
|
||||
int i;
|
||||
|
||||
mvwhline(win, 0, 0, 0, getmaxx(win));
|
||||
wmove(win, 0, 0);
|
||||
|
||||
for (i = 0; i < SP->_slk->maxlab; i++) {
|
||||
mvwprintw(win, 0, SP->_slk->ent[i].ent_x, "F%d", i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
MODULE_ID("$Id: lib_slk.c,v 1.35 2008/09/27 14:07:33 juergen Exp $")
|
||||
|
||||
/*
|
||||
* Free any memory related to soft labels, return an error.
|
||||
@ -145,7 +120,7 @@ _nc_slk_initialize(WINDOW *stwin, int cols)
|
||||
memset(SP->_slk->ent[i].form_text, 0, used);
|
||||
|
||||
memset(SP->_slk->ent[i].form_text, ' ', max_length);
|
||||
SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
|
||||
SP->_slk->ent[i].visible = (char) (i < SP->_slk->maxlab);
|
||||
}
|
||||
if (_nc_globals.slk_format >= 3) { /* PC style */
|
||||
int gap = (cols - 3 * (3 + 4 * max_length)) / 2;
|
||||
@ -158,7 +133,6 @@ _nc_slk_initialize(WINDOW *stwin, int cols)
|
||||
x += max_length;
|
||||
x += (i == 3 || i == 7) ? gap : 1;
|
||||
}
|
||||
slk_paint_info(stwin);
|
||||
} else {
|
||||
if (_nc_globals.slk_format == 2) { /* 4-4 */
|
||||
int gap = cols - (SP->_slk->maxlab * max_length) - 6;
|
||||
@ -212,8 +186,6 @@ slk_restore(void)
|
||||
return (ERR);
|
||||
SP->_slk->hidden = FALSE;
|
||||
SP->_slk->dirty = TRUE;
|
||||
/* we have to repaint info line eventually */
|
||||
slk_paint_info(SP->_slk->win);
|
||||
|
||||
returnCode(slk_refresh());
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -40,7 +40,27 @@
|
||||
#include <curses.priv.h>
|
||||
#include <term.h> /* num_labels, label_*, plab_norm */
|
||||
|
||||
MODULE_ID("$Id: lib_slkrefr.c,v 1.15 2006/11/25 22:32:15 tom Exp $")
|
||||
MODULE_ID("$Id: lib_slkrefr.c,v 1.17 2008/09/27 14:07:53 juergen Exp $")
|
||||
|
||||
/*
|
||||
* Paint the info line for the PC style SLK emulation.
|
||||
*/
|
||||
static void
|
||||
slk_paint_info(WINDOW *win)
|
||||
{
|
||||
SCREEN *sp = _nc_screen_of(win);
|
||||
|
||||
if (win && sp && (sp->slk_format == 4)) {
|
||||
int i;
|
||||
|
||||
mvwhline(win, 0, 0, 0, getmaxx(win));
|
||||
wmove(win, 0, 0);
|
||||
|
||||
for (i = 0; i < sp->_slk->maxlab; i++) {
|
||||
mvwprintw(win, 0, sp->_slk->ent[i].ent_x, "F%d", i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Write the soft labels to the soft-key window.
|
||||
@ -60,8 +80,10 @@ slk_intern_refresh(SLK * slk)
|
||||
putp(TPARM_2(plab_norm, i + 1, slk->ent[i].form_text));
|
||||
}
|
||||
} else {
|
||||
if (fmt == 4)
|
||||
slk_paint_info(slk->win);
|
||||
wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
|
||||
if (SP && SP->_slk) {
|
||||
if (SP->_slk) {
|
||||
wattrset(slk->win, AttrOf(SP->_slk->attr));
|
||||
}
|
||||
waddstr(slk->win, slk->ent[i].form_text);
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_ungetch.c,v 1.10 2008/05/03 20:20:58 tom Exp $")
|
||||
MODULE_ID("$Id: lib_ungetch.c,v 1.11 2008/05/31 16:44:54 tom Exp $")
|
||||
|
||||
#include <fifo_defs.h>
|
||||
|
||||
@ -52,7 +52,7 @@ _nc_fifo_dump(SCREEN *sp)
|
||||
int i;
|
||||
T(("head = %d, tail = %d, peek = %d", head, tail, peek));
|
||||
for (i = 0; i < 10; i++)
|
||||
T(("char %d = %s", i, _tracechar(sp->_fifo[i])));
|
||||
T(("char %d = %s", i, _nc_tracechar(sp, sp->_fifo[i])));
|
||||
}
|
||||
#endif /* TRACE */
|
||||
|
||||
@ -70,7 +70,7 @@ _nc_ungetch(SCREEN *sp, int ch)
|
||||
h_dec();
|
||||
|
||||
sp->_fifo[head] = ch;
|
||||
T(("ungetch %s ok", _tracechar(ch)));
|
||||
T(("ungetch %s ok", _nc_tracechar(sp, ch)));
|
||||
#ifdef TRACE
|
||||
if (USE_TRACEF(TRACE_IEVENT)) {
|
||||
_nc_fifo_dump(sp);
|
||||
@ -85,6 +85,6 @@ _nc_ungetch(SCREEN *sp, int ch)
|
||||
NCURSES_EXPORT(int)
|
||||
ungetch(int ch)
|
||||
{
|
||||
T((T_CALLED("ungetch(%s)"), _tracechar(ch)));
|
||||
T((T_CALLED("ungetch(%s)"), _nc_tracechar(SP, ch)));
|
||||
returnCode(_nc_ungetch(SP, ch));
|
||||
}
|
||||
|
@ -39,7 +39,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_window.c,v 1.24 2008/04/12 22:40:21 tom Exp $")
|
||||
MODULE_ID("$Id: lib_window.c,v 1.25 2008/06/07 14:12:56 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_synchook(WINDOW *win)
|
||||
@ -186,7 +186,7 @@ dupwin(WINDOW *win)
|
||||
|
||||
if (win != 0) {
|
||||
|
||||
_nc_lock_window(win);
|
||||
_nc_lock_global(curses);
|
||||
if (win->_flags & _ISPAD) {
|
||||
nwin = newpad(win->_maxy + 1,
|
||||
win->_maxx + 1);
|
||||
@ -244,7 +244,7 @@ dupwin(WINDOW *win)
|
||||
nwin->_line[i].lastchar = win->_line[i].lastchar;
|
||||
}
|
||||
}
|
||||
_nc_unlock_window(win);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
returnWin(nwin);
|
||||
}
|
||||
|
@ -41,7 +41,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <term.h>
|
||||
|
||||
MODULE_ID("$Id: resizeterm.c,v 1.32 2008/05/03 14:28:55 tom Exp $")
|
||||
MODULE_ID("$Id: resizeterm.c,v 1.34 2008/06/07 13:58:40 tom Exp $")
|
||||
|
||||
#define stolen_lines (screen_lines - SP->_lines_avail)
|
||||
|
||||
@ -66,7 +66,7 @@ show_window_sizes(const char *name)
|
||||
{
|
||||
WINDOWLIST *wp;
|
||||
|
||||
_nc_lock_global(windowlist);
|
||||
_nc_lock_global(curses);
|
||||
_tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS,
|
||||
screen_lines, screen_columns);
|
||||
for (each_window(wp)) {
|
||||
@ -77,7 +77,7 @@ show_window_sizes(const char *name)
|
||||
(long) wp->win._begy,
|
||||
(long) wp->win._begx);
|
||||
}
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -320,7 +320,7 @@ resize_term(int ToLines, int ToCols)
|
||||
returnCode(ERR);
|
||||
}
|
||||
|
||||
_nc_lock_global(windowlist);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
was_stolen = (screen_lines - SP->_lines_avail);
|
||||
if (is_term_resized(ToLines, ToCols)) {
|
||||
@ -378,7 +378,7 @@ resize_term(int ToLines, int ToCols)
|
||||
SET_LINES(ToLines - was_stolen);
|
||||
SET_COLS(ToCols);
|
||||
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
returnCode(result);
|
||||
}
|
||||
@ -418,7 +418,7 @@ resizeterm(int ToLines, int ToCols)
|
||||
result = resize_term(ToLines, ToCols);
|
||||
|
||||
#if USE_SIGWINCH
|
||||
ungetch(KEY_RESIZE); /* so application can know this */
|
||||
_nc_ungetch(SP, KEY_RESIZE); /* so application can know this */
|
||||
clearok(curscr, TRUE); /* screen contents are unknown */
|
||||
|
||||
/* ripped-off lines are a special case: if we did not lengthen
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -39,7 +39,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: tries.c,v 1.25 2007/09/29 20:37:13 tom Exp $")
|
||||
MODULE_ID("$Id: tries.c,v 1.27 2008/08/16 19:22:55 tom Exp $")
|
||||
|
||||
/*
|
||||
* Expand a keycode into the string that it corresponds to, returning null if
|
||||
@ -68,11 +68,11 @@ _nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len)
|
||||
}
|
||||
}
|
||||
if (result != 0) {
|
||||
if (ptr != 0 && (result[len] = ptr->ch) == 0)
|
||||
if (ptr != 0 && (result[len] = (char) ptr->ch) == 0)
|
||||
*((unsigned char *) (result + len)) = 128;
|
||||
#ifdef TRACE
|
||||
if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) {
|
||||
_tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
|
||||
_tracef("expand_key %s %s", _nc_tracechar(SP, code), _nc_visbuf(result));
|
||||
_nc_unlock_global(tracef);
|
||||
}
|
||||
#endif
|
||||
|
@ -32,37 +32,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: use_window.c,v 1.7 2008/05/03 14:09:38 tom Exp $")
|
||||
|
||||
#ifdef USE_PTHREADS
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_lock_window(const WINDOW *win)
|
||||
{
|
||||
WINDOWLIST *p;
|
||||
|
||||
_nc_lock_global(windowlist);
|
||||
for (each_window(p)) {
|
||||
if (&(p->win) == win) {
|
||||
_nc_mutex_lock(&(p->mutex_use_window));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_unlock_window(const WINDOW *win)
|
||||
{
|
||||
WINDOWLIST *p;
|
||||
|
||||
for (each_window(p)) {
|
||||
if (&(p->win) == win) {
|
||||
_nc_mutex_unlock(&(p->mutex_use_window));
|
||||
break;
|
||||
}
|
||||
}
|
||||
_nc_unlock_global(windowlist);
|
||||
}
|
||||
#endif
|
||||
MODULE_ID("$Id: use_window.c,v 1.8 2008/06/07 14:13:46 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data)
|
||||
@ -70,9 +40,9 @@ use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data)
|
||||
int code = OK;
|
||||
|
||||
T((T_CALLED("use_window(%p,%p,%p)"), win, func, data));
|
||||
_nc_lock_window(win);
|
||||
_nc_lock_global(curses);
|
||||
code = func(win, data);
|
||||
_nc_unlock_window(win);
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
returnCode(code);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: wresize.c,v 1.28 2008/05/03 14:13:51 tom Exp $")
|
||||
MODULE_ID("$Id: wresize.c,v 1.29 2008/06/07 13:59:01 tom Exp $")
|
||||
|
||||
static int
|
||||
cleanup_lines(struct ldat *data, int length)
|
||||
@ -54,7 +54,7 @@ repair_subwindows(WINDOW *cmp)
|
||||
struct ldat *pline = cmp->_line;
|
||||
int row;
|
||||
|
||||
_nc_lock_global(windowlist);
|
||||
_nc_lock_global(curses);
|
||||
|
||||
for (each_window(wp)) {
|
||||
WINDOW *tst = &(wp->win);
|
||||
@ -77,7 +77,7 @@ repair_subwindows(WINDOW *cmp)
|
||||
repair_subwindows(tst);
|
||||
}
|
||||
}
|
||||
_nc_unlock_global(windowlist);
|
||||
_nc_unlock_global(curses);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
|
||||
/*
|
||||
* $Id: curses.priv.h,v 1.373 2008/05/03 23:30:35 tom Exp $
|
||||
* $Id: curses.priv.h,v 1.394 2008/10/04 21:37:45 tom Exp $
|
||||
*
|
||||
* curses.priv.h
|
||||
*
|
||||
@ -147,7 +147,7 @@ extern int errno;
|
||||
#define HAVE_SIZECHANGE 0
|
||||
#endif
|
||||
|
||||
#if HAVE_SIZECHANGE && defined(SIGWINCH)
|
||||
#if HAVE_SIZECHANGE && USE_SIGWINCH && defined(SIGWINCH)
|
||||
#define USE_SIZECHANGE 1
|
||||
#else
|
||||
#define USE_SIZECHANGE 0
|
||||
@ -286,6 +286,15 @@ color_t;
|
||||
#define VIDATTR(attr, pair) vidattr(attr)
|
||||
#endif
|
||||
|
||||
#if NCURSES_NO_PADDING
|
||||
#define GetNoPadding(sp) ((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding)
|
||||
#define SetNoPadding(sp) _nc_set_no_padding(sp)
|
||||
extern NCURSES_EXPORT(void) _nc_set_no_padding(SCREEN *);
|
||||
#else
|
||||
#define GetNoPadding(sp) FALSE
|
||||
#define SetNoPadding(sp) /*nothing*/
|
||||
#endif
|
||||
|
||||
#define WINDOW_ATTRS(w) ((w)->_attrs)
|
||||
|
||||
#define SCREEN_ATTRS(s) (*((s)->_current_attr))
|
||||
@ -293,9 +302,15 @@ color_t;
|
||||
#define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p)
|
||||
|
||||
#if USE_REENTRANT
|
||||
#define SET_LINES(value) SP->_LINES = value
|
||||
#define SET_COLS(value) SP->_COLS = value
|
||||
NCURSES_EXPORT(int *) _nc_ptr_Lines (void);
|
||||
NCURSES_EXPORT(int *) _nc_ptr_Cols (void);
|
||||
#define ptrLines() (SP ? &(SP->_LINES) : &(_nc_prescreen._LINES))
|
||||
#define ptrCols() (SP ? &(SP->_COLS) : &(_nc_prescreen._COLS))
|
||||
#define SET_LINES(value) *_nc_ptr_Lines() = value
|
||||
#define SET_COLS(value) *_nc_ptr_Cols() = value
|
||||
#else
|
||||
#define ptrLines() &LINES
|
||||
#define ptrCols() &COLS
|
||||
#define SET_LINES(value) LINES = value
|
||||
#define SET_COLS(value) COLS = value
|
||||
#endif
|
||||
@ -315,6 +330,7 @@ color_t;
|
||||
|
||||
#if USE_REENTRANT
|
||||
#include <pthread.h>
|
||||
extern NCURSES_EXPORT(void) _nc_init_pthreads(void);
|
||||
extern NCURSES_EXPORT(void) _nc_mutex_init(pthread_mutex_t *);
|
||||
extern NCURSES_EXPORT(int) _nc_mutex_lock(pthread_mutex_t *);
|
||||
extern NCURSES_EXPORT(int) _nc_mutex_trylock(pthread_mutex_t *);
|
||||
@ -323,13 +339,40 @@ extern NCURSES_EXPORT(int) _nc_mutex_unlock(pthread_mutex_t *);
|
||||
#define _nc_try_global(name) _nc_mutex_trylock(&_nc_globals.mutex_##name)
|
||||
#define _nc_unlock_global(name) _nc_mutex_unlock(&_nc_globals.mutex_##name)
|
||||
|
||||
extern NCURSES_EXPORT(void) _nc_lock_window(const WINDOW *);
|
||||
extern NCURSES_EXPORT(void) _nc_unlock_window(const WINDOW *);
|
||||
|
||||
#else
|
||||
#error POSIX threads requires --enable-reentrant option
|
||||
#endif
|
||||
|
||||
#if USE_WEAK_SYMBOLS
|
||||
#if defined(__GNUC__)
|
||||
# if defined __USE_ISOC99
|
||||
# define _cat_pragma(exp) _Pragma(#exp)
|
||||
# define _weak_pragma(exp) _cat_pragma(weak name)
|
||||
# else
|
||||
# define _weak_pragma(exp)
|
||||
# endif
|
||||
# define _declare(name) __extension__ extern __typeof__(name) name
|
||||
# define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_PTHREADS
|
||||
# if USE_WEAK_SYMBOLS
|
||||
weak_symbol(pthread_sigmask);
|
||||
weak_symbol(pthread_self);
|
||||
weak_symbol(pthread_equal);
|
||||
weak_symbol(pthread_mutex_init);
|
||||
weak_symbol(pthread_mutex_lock);
|
||||
weak_symbol(pthread_mutex_unlock);
|
||||
weak_symbol(pthread_mutex_trylock);
|
||||
weak_symbol(pthread_mutexattr_settype);
|
||||
weak_symbol(pthread_mutexattr_init);
|
||||
extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *);
|
||||
# undef sigprocmask
|
||||
# define sigprocmask _nc_sigprocmask
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if HAVE_NANOSLEEP
|
||||
#undef HAVE_NANOSLEEP
|
||||
#define HAVE_NANOSLEEP 0 /* nanosleep suspends all threads */
|
||||
@ -337,15 +380,13 @@ extern NCURSES_EXPORT(void) _nc_unlock_window(const WINDOW *);
|
||||
|
||||
#else /* !USE_PTHREADS */
|
||||
|
||||
#define _nc_init_pthreads() /* nothing */
|
||||
#define _nc_mutex_init(obj) /* nothing */
|
||||
|
||||
#define _nc_lock_global(name) /* nothing */
|
||||
#define _nc_try_global(name) 0
|
||||
#define _nc_unlock_global(name) /* nothing */
|
||||
|
||||
#define _nc_lock_window(name) (void) TRUE
|
||||
#define _nc_unlock_window(name) /* nothing */
|
||||
|
||||
#endif /* USE_PTHREADS */
|
||||
|
||||
#if HAVE_GETTIMEOFDAY
|
||||
@ -597,8 +638,6 @@ typedef struct {
|
||||
char *tracedmp_buf;
|
||||
size_t tracedmp_used;
|
||||
|
||||
char tracemse_buf[TRACEMSE_MAX];
|
||||
|
||||
unsigned char *tracetry_buf;
|
||||
size_t tracetry_used;
|
||||
|
||||
@ -609,13 +648,12 @@ typedef struct {
|
||||
#endif /* TRACE */
|
||||
|
||||
#ifdef USE_PTHREADS
|
||||
pthread_mutex_t mutex_set_SP;
|
||||
pthread_mutex_t mutex_use_screen;
|
||||
pthread_mutex_t mutex_use_window;
|
||||
pthread_mutex_t mutex_windowlist;
|
||||
pthread_mutex_t mutex_tst_tracef;
|
||||
pthread_mutex_t mutex_tracef;
|
||||
int nested_tracef;
|
||||
pthread_mutex_t mutex_curses;
|
||||
pthread_mutex_t mutex_tst_tracef;
|
||||
pthread_mutex_t mutex_tracef;
|
||||
int nested_tracef;
|
||||
int use_pthreads;
|
||||
#define _nc_use_pthreads _nc_globals.use_pthreads
|
||||
#endif
|
||||
} NCURSES_GLOBALS;
|
||||
|
||||
@ -635,10 +673,14 @@ typedef struct {
|
||||
ripoff_t *rsp;
|
||||
TPARM_STATE tparm_state;
|
||||
TTY *saved_tty; /* savetty/resetty information */
|
||||
#if NCURSES_NO_PADDING
|
||||
bool _no_padding; /* flag to set if padding disabled */
|
||||
#endif
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
chtype *real_acs_map;
|
||||
int _LINES;
|
||||
int _COLS;
|
||||
TERMINAL *_cur_term;
|
||||
#ifdef TRACE
|
||||
long _outchars;
|
||||
const char *_tputs_trace;
|
||||
@ -704,7 +746,7 @@ struct screen {
|
||||
int slk_format; /* selected format for this screen */
|
||||
/* cursor movement costs; units are 10ths of milliseconds */
|
||||
#if NCURSES_NO_PADDING
|
||||
int _no_padding; /* flag to set if padding disabled */
|
||||
bool _no_padding; /* flag to set if padding disabled */
|
||||
#endif
|
||||
int _char_padding; /* cost of character put */
|
||||
int _cr_cost; /* cost of (carriage_return) */
|
||||
@ -789,7 +831,7 @@ struct screen {
|
||||
int _maxclick;
|
||||
bool (*_mouse_event) (SCREEN *);
|
||||
bool (*_mouse_inline)(SCREEN *);
|
||||
bool (*_mouse_parse) (int);
|
||||
bool (*_mouse_parse) (SCREEN *, int);
|
||||
void (*_mouse_resume)(SCREEN *);
|
||||
void (*_mouse_wrap) (SCREEN *);
|
||||
int _mouse_fd; /* file-descriptor, if any */
|
||||
@ -803,6 +845,7 @@ struct screen {
|
||||
bool _mouse_gpm_loaded;
|
||||
bool _mouse_gpm_found;
|
||||
#ifdef HAVE_LIBDL
|
||||
void *_dlopen_gpm;
|
||||
TYPE_gpm_fd _mouse_gpm_fd;
|
||||
TYPE_Gpm_Open _mouse_Gpm_Open;
|
||||
TYPE_Gpm_Close _mouse_Gpm_Close;
|
||||
@ -866,6 +909,11 @@ struct screen {
|
||||
long _outchars;
|
||||
const char *_tputs_trace;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef TRACE
|
||||
char tracechr_buf[40];
|
||||
char tracemse_buf[TRACEMSE_MAX];
|
||||
#endif
|
||||
/*
|
||||
* ncurses/ncursesw are the same up to this point.
|
||||
@ -882,17 +930,15 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
|
||||
extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
|
||||
|
||||
WINDOWLIST {
|
||||
WINDOW win; /* first, so WINDOW_EXT() works */
|
||||
WINDOW win; /* first, so WINDOW_EXT() works */
|
||||
WINDOWLIST *next;
|
||||
SCREEN *screen; /* screen containing the window */
|
||||
#ifdef _XOPEN_SOURCE_EXTENDED
|
||||
char addch_work[(MB_LEN_MAX * 9) + 1];
|
||||
unsigned addch_used; /* number of bytes in addch_work[] */
|
||||
int addch_x; /* x-position for addch_work[] */
|
||||
int addch_y; /* y-position for addch_work[] */
|
||||
#endif
|
||||
#ifdef USE_PTHREADS
|
||||
pthread_mutex_t mutex_use_window;
|
||||
#endif
|
||||
};
|
||||
|
||||
#define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
|
||||
@ -1296,7 +1342,7 @@ extern NCURSES_EXPORT(const char *) _nc_viscbuf (const NCURSES_CH_T *, int);
|
||||
extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
|
||||
extern NCURSES_EXPORT(const char *) _nc_visbufn (const char *, int);
|
||||
|
||||
#define empty_module(name) \
|
||||
#define EMPTY_MODULE(name) \
|
||||
extern NCURSES_EXPORT(void) name (void); \
|
||||
NCURSES_EXPORT(void) name (void) { }
|
||||
|
||||
@ -1396,6 +1442,10 @@ extern NCURSES_EXPORT(void) _nc_expanded (void);
|
||||
|
||||
#endif
|
||||
|
||||
#if !NCURSES_EXT_FUNCS
|
||||
#define set_escdelay(value) ESCDELAY = value
|
||||
#endif
|
||||
|
||||
#if !HAVE_GETCWD
|
||||
#define getcwd(buf,len) getwd(buf)
|
||||
#endif
|
||||
@ -1478,7 +1528,7 @@ extern NCURSES_EXPORT(int) _nc_has_mouse (void);
|
||||
/* lib_setup.c */
|
||||
extern NCURSES_EXPORT(char *) _nc_get_locale(void);
|
||||
extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
|
||||
extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
|
||||
extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(TERMINAL *);
|
||||
extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
|
||||
extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *);
|
||||
|
||||
@ -1526,10 +1576,15 @@ extern NCURSES_EXPORT(int) _nc_remove_key (TRIES **, unsigned);
|
||||
extern NCURSES_EXPORT(int) _nc_remove_string (TRIES **, const char *);
|
||||
|
||||
/* elsewhere ... */
|
||||
extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);
|
||||
extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry (ENTRY *, TERMTYPE *);
|
||||
extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *, int);
|
||||
extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *, chtype);
|
||||
extern NCURSES_EXPORT(SCREEN *) _nc_screen_of (WINDOW *);
|
||||
extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
|
||||
extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
|
||||
extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);
|
||||
extern NCURSES_EXPORT(char *) _nc_tracechar (SCREEN *, int);
|
||||
extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *);
|
||||
extern NCURSES_EXPORT(int) _nc_access (const char *, int);
|
||||
extern NCURSES_EXPORT(int) _nc_baudrate (int);
|
||||
extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
|
||||
@ -1539,10 +1594,11 @@ extern NCURSES_EXPORT(int) _nc_ospeed (int);
|
||||
extern NCURSES_EXPORT(int) _nc_outch (int);
|
||||
extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);
|
||||
extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int);
|
||||
extern NCURSES_EXPORT(int) _nc_timed_wait(SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
|
||||
extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
|
||||
extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, int (*)(int));
|
||||
extern NCURSES_EXPORT(void) _nc_flush (void);
|
||||
extern NCURSES_EXPORT(void) _nc_free_entry(ENTRY *, TERMTYPE *);
|
||||
extern NCURSES_EXPORT(void) _nc_free_and_exit (int);
|
||||
extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *);
|
||||
extern NCURSES_EXPORT(void) _nc_freeall (void);
|
||||
extern NCURSES_EXPORT(void) _nc_hash_map (void);
|
||||
extern NCURSES_EXPORT(void) _nc_init_keytry (SCREEN *);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998,2002 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2002,2008 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 @@
|
||||
/*
|
||||
* Common macros for lib_getch.c, lib_ungetch.c
|
||||
*
|
||||
* $Id: fifo_defs.h,v 1.5 2008/05/03 20:08:16 tom Exp $
|
||||
* $Id: fifo_defs.h,v 1.6 2008/06/28 15:52:32 tom Exp $
|
||||
*/
|
||||
|
||||
#ifndef FIFO_DEFS_H
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Thomas E. Dickey 1996-2007 *
|
||||
* Author: Thomas E. Dickey 1996-2008 *
|
||||
****************************************************************************/
|
||||
/* LINTLIBRARY */
|
||||
|
||||
@ -1128,7 +1128,7 @@ int wgetscrreg(
|
||||
NCURSES_BOOL mouse_trafo(
|
||||
int *a1,
|
||||
int *a2,
|
||||
NCURSES_BOOL z)
|
||||
NCURSES_BOOL z)
|
||||
{ return(*(NCURSES_BOOL *)0); }
|
||||
|
||||
/* ./base/lib_getch.c */
|
||||
@ -1138,6 +1138,11 @@ NCURSES_BOOL mouse_trafo(
|
||||
#undef ESCDELAY
|
||||
int ESCDELAY;
|
||||
|
||||
#undef set_escdelay
|
||||
int set_escdelay(
|
||||
int value)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_wgetch
|
||||
int _nc_wgetch(
|
||||
WINDOW *win,
|
||||
@ -1395,6 +1400,11 @@ WINDOW *_nc_makenew(
|
||||
int flags)
|
||||
{ return(*(WINDOW **)0); }
|
||||
|
||||
#undef _nc_screen_of
|
||||
SCREEN *_nc_screen_of(
|
||||
WINDOW *win)
|
||||
{ return(*(SCREEN **)0); }
|
||||
|
||||
/* ./base/lib_nl.c */
|
||||
|
||||
#undef nl
|
||||
@ -1691,9 +1701,6 @@ int ripoffline(
|
||||
|
||||
/* ./base/lib_slk.c */
|
||||
|
||||
#undef _nc_slk_format
|
||||
int _nc_slk_format;
|
||||
|
||||
#undef _nc_slk_initialize
|
||||
int _nc_slk_initialize(
|
||||
WINDOW *stwin,
|
||||
@ -1823,6 +1830,12 @@ void _tracedump(
|
||||
|
||||
/* ./trace/lib_tracemse.c */
|
||||
|
||||
#undef _nc_tracemouse
|
||||
char *_nc_tracemouse(
|
||||
SCREEN *sp,
|
||||
MEVENT const *ep)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _tracemouse
|
||||
char *_tracemouse(
|
||||
MEVENT const *ep)
|
||||
@ -1840,9 +1853,16 @@ void _nc_signal_handler(
|
||||
/* ./base/lib_ungetch.c */
|
||||
|
||||
#undef _nc_fifo_dump
|
||||
void _nc_fifo_dump(void)
|
||||
void _nc_fifo_dump(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_ungetch
|
||||
int _nc_ungetch(
|
||||
SCREEN *sp,
|
||||
int ch)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef ungetch
|
||||
int ungetch(
|
||||
int ch)
|
||||
@ -2020,6 +2040,11 @@ void _nc_vsscanf(void)
|
||||
void _nc_freeall(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_free_and_exit
|
||||
void _nc_free_and_exit(
|
||||
int code)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./expanded.c */
|
||||
|
||||
#undef _nc_toggle_attr_on
|
||||
@ -2103,6 +2128,24 @@ void _nc_trace_xnames(
|
||||
TERMTYPE *tp)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/use_screen.c */
|
||||
|
||||
#undef use_screen
|
||||
int use_screen(
|
||||
SCREEN *screen,
|
||||
NCURSES_SCREEN_CB func,
|
||||
void *data)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./base/use_window.c */
|
||||
|
||||
#undef use_window
|
||||
int use_window(
|
||||
WINDOW *win,
|
||||
NCURSES_WINDOW_CB func,
|
||||
void *data)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./base/wresize.c */
|
||||
|
||||
#undef wresize
|
||||
@ -2345,7 +2388,8 @@ const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
|
||||
#endif
|
||||
|
||||
#undef _nc_init_keytry
|
||||
void _nc_init_keytry(void)
|
||||
void _nc_init_keytry(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/lib_acs.c */
|
||||
@ -2440,6 +2484,12 @@ int flushinp(void)
|
||||
|
||||
struct kn { short offset; int code; };
|
||||
|
||||
#undef _nc_keyname
|
||||
char *_nc_keyname(
|
||||
SCREEN *sp,
|
||||
int c)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef keyname
|
||||
char *keyname(
|
||||
int c)
|
||||
@ -2526,6 +2576,7 @@ int has_key(
|
||||
|
||||
#undef _nc_keypad
|
||||
int _nc_keypad(
|
||||
SCREEN *sp,
|
||||
NCURSES_BOOL flag)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -2576,9 +2627,14 @@ int COLS;
|
||||
#undef TABSIZE
|
||||
int TABSIZE;
|
||||
|
||||
#undef set_tabsize
|
||||
int set_tabsize(
|
||||
int value)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_handle_sigwinch
|
||||
int _nc_handle_sigwinch(
|
||||
int update)
|
||||
SCREEN *sp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef use_env
|
||||
@ -2588,12 +2644,14 @@ void use_env(
|
||||
|
||||
#undef _nc_get_screensize
|
||||
void _nc_get_screensize(
|
||||
SCREEN *sp,
|
||||
int *linep,
|
||||
int *colp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_update_screensize
|
||||
void _nc_update_screensize(void)
|
||||
void _nc_update_screensize(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_get_locale
|
||||
@ -2605,7 +2663,8 @@ int _nc_unicode_locale(void)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_locale_breaks_acs
|
||||
int _nc_locale_breaks_acs(void)
|
||||
int _nc_locale_breaks_acs(
|
||||
TERMINAL *termp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_setupterm
|
||||
@ -2717,6 +2776,11 @@ NCURSES_OSPEED ospeed;
|
||||
#undef _nc_nulls_sent
|
||||
int _nc_nulls_sent;
|
||||
|
||||
#undef _nc_set_no_padding
|
||||
void _nc_set_no_padding(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef delay_output
|
||||
int delay_output(
|
||||
int ms)
|
||||
@ -2867,6 +2931,12 @@ char *_nc_tracebits(void)
|
||||
|
||||
/* ./trace/lib_tracechr.c */
|
||||
|
||||
#undef _nc_tracechar
|
||||
char *_nc_tracechar(
|
||||
SCREEN *sp,
|
||||
int ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _tracechar
|
||||
char *_tracechar(
|
||||
int ch)
|
||||
@ -2912,6 +2982,7 @@ int resetty(void)
|
||||
|
||||
#undef _nc_timed_wait
|
||||
int _nc_timed_wait(
|
||||
SCREEN *sp,
|
||||
int mode,
|
||||
int milliseconds,
|
||||
int *timeleft)
|
||||
@ -3073,9 +3144,15 @@ char *_nc_trim_sgr0(
|
||||
|
||||
/* ./unctrl.c */
|
||||
|
||||
#undef _nc_unctrl
|
||||
char *_nc_unctrl(
|
||||
SCREEN *sp,
|
||||
chtype ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef unctrl
|
||||
char *unctrl(
|
||||
chtype ch)
|
||||
chtype ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./trace/visbuf.c */
|
||||
|
@ -926,7 +926,7 @@ int vw_printw(
|
||||
#undef vw_scanw
|
||||
int vw_scanw(
|
||||
WINDOW *a1,
|
||||
const char *a2,
|
||||
char *a2,
|
||||
va_list z)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -1131,7 +1131,7 @@ int wgetscrreg(
|
||||
NCURSES_BOOL mouse_trafo(
|
||||
int *a1,
|
||||
int *a2,
|
||||
NCURSES_BOOL z)
|
||||
NCURSES_BOOL z)
|
||||
{ return(*(NCURSES_BOOL *)0); }
|
||||
|
||||
/* ./base/lib_getch.c */
|
||||
@ -1357,7 +1357,7 @@ void nofilter(void)
|
||||
|
||||
#undef newterm
|
||||
SCREEN *newterm(
|
||||
const char *name,
|
||||
char *name,
|
||||
FILE *ofp,
|
||||
FILE *ifp)
|
||||
{ return(*(SCREEN **)0); }
|
||||
@ -1404,6 +1404,11 @@ WINDOW *_nc_makenew(
|
||||
int flags)
|
||||
{ return(*(WINDOW **)0); }
|
||||
|
||||
#undef _nc_screen_of
|
||||
SCREEN *_nc_screen_of(
|
||||
WINDOW *win)
|
||||
{ return(*(SCREEN **)0); }
|
||||
|
||||
/* ./base/lib_nl.c */
|
||||
|
||||
#undef nl
|
||||
@ -1550,7 +1555,7 @@ int wnoutrefresh(
|
||||
|
||||
#undef restartterm
|
||||
int restartterm(
|
||||
const char *termp,
|
||||
char *termp,
|
||||
int filenum,
|
||||
int *errret)
|
||||
{ return(*(int *)0); }
|
||||
@ -1560,20 +1565,20 @@ int restartterm(
|
||||
#undef vwscanw
|
||||
int vwscanw(
|
||||
WINDOW *win,
|
||||
const char *fmt,
|
||||
char *fmt,
|
||||
va_list argp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef scanw
|
||||
int scanw(
|
||||
const char *fmt,
|
||||
char *fmt,
|
||||
...)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef wscanw
|
||||
int wscanw(
|
||||
WINDOW *win,
|
||||
const char *fmt,
|
||||
char *fmt,
|
||||
...)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -1581,7 +1586,7 @@ int wscanw(
|
||||
int mvscanw(
|
||||
int y,
|
||||
int x,
|
||||
const char *fmt,
|
||||
char *fmt,
|
||||
...)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -1590,7 +1595,7 @@ int mvwscanw(
|
||||
WINDOW *win,
|
||||
int y,
|
||||
int x,
|
||||
const char *fmt,
|
||||
char *fmt,
|
||||
...)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -1700,9 +1705,6 @@ int ripoffline(
|
||||
|
||||
/* ./base/lib_slk.c */
|
||||
|
||||
#undef _nc_slk_format
|
||||
int _nc_slk_format;
|
||||
|
||||
#undef _nc_slk_initialize
|
||||
int _nc_slk_initialize(
|
||||
WINDOW *stwin,
|
||||
@ -1832,6 +1834,12 @@ void _tracedump(
|
||||
|
||||
/* ./trace/lib_tracemse.c */
|
||||
|
||||
#undef _nc_tracemouse
|
||||
char *_nc_tracemouse(
|
||||
SCREEN *sp,
|
||||
MEVENT const *ep)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _tracemouse
|
||||
char *_tracemouse(
|
||||
MEVENT const *ep)
|
||||
@ -1849,9 +1857,16 @@ void _nc_signal_handler(
|
||||
/* ./base/lib_ungetch.c */
|
||||
|
||||
#undef _nc_fifo_dump
|
||||
void _nc_fifo_dump(void)
|
||||
void _nc_fifo_dump(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_ungetch
|
||||
int _nc_ungetch(
|
||||
SCREEN *sp,
|
||||
int ch)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef ungetch
|
||||
int ungetch(
|
||||
int ch)
|
||||
@ -1992,6 +2007,11 @@ void _nc_screen_init(void)
|
||||
void _nc_screen_wrap(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_do_xmc_glitch
|
||||
void _nc_do_xmc_glitch(
|
||||
attr_t previous)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./trace/varargs.c */
|
||||
|
||||
typedef enum {
|
||||
@ -2031,8 +2051,31 @@ void _nc_free_and_exit(
|
||||
|
||||
/* ./expanded.c */
|
||||
|
||||
#undef _nc_expanded
|
||||
void _nc_expanded(void)
|
||||
#undef _nc_toggle_attr_on
|
||||
void _nc_toggle_attr_on(
|
||||
attr_t *S,
|
||||
attr_t at)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_toggle_attr_off
|
||||
void _nc_toggle_attr_off(
|
||||
attr_t *S,
|
||||
attr_t at)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_DelCharCost
|
||||
int _nc_DelCharCost(
|
||||
int count)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_InsCharCost
|
||||
int _nc_InsCharCost(
|
||||
int count)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_UpdateAttrs
|
||||
void _nc_UpdateAttrs(
|
||||
chtype c)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./base/legacy_coding.c */
|
||||
@ -2094,26 +2137,16 @@ void _nc_trace_xnames(
|
||||
#undef use_screen
|
||||
int use_screen(
|
||||
SCREEN *screen,
|
||||
NCURSES_CALLBACK func,
|
||||
NCURSES_SCREEN_CB func,
|
||||
void *data)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./base/use_window.c */
|
||||
|
||||
#undef _nc_lock_window
|
||||
void _nc_lock_window(
|
||||
WINDOW *win)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_unlock_window
|
||||
void _nc_unlock_window(
|
||||
WINDOW *win)
|
||||
{ /* void */ }
|
||||
|
||||
#undef use_window
|
||||
int use_window(
|
||||
WINDOW *win,
|
||||
NCURSES_CALLBACK func,
|
||||
NCURSES_WINDOW_CB func,
|
||||
void *data)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -2167,6 +2200,10 @@ NCURSES_BOOL _nc_is_file_path(
|
||||
const char *path)
|
||||
{ return(*(NCURSES_BOOL *)0); }
|
||||
|
||||
#undef _nc_env_access
|
||||
int _nc_env_access(void)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./tinfo/add_tries.c */
|
||||
|
||||
#undef _nc_add_to_try
|
||||
@ -2193,20 +2230,16 @@ void _nc_copy_termtype(
|
||||
/* ./codes.c */
|
||||
|
||||
#undef _nc_boolcodes
|
||||
const char *const *_nc_boolcodes(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_boolcodes(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_numcodes
|
||||
const char *const *_nc_numcodes(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_numcodes(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_strcodes
|
||||
const char *const *_nc_strcodes(void)
|
||||
{ return(*(const char **)0); }
|
||||
|
||||
#undef _nc_codes_leaks
|
||||
void _nc_codes_leaks(void)
|
||||
{ /* void */ }
|
||||
char *const *_nc_strcodes(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./tinfo/comp_error.c */
|
||||
|
||||
@ -2318,11 +2351,6 @@ ENTRY *_nc_delink_entry(
|
||||
void _nc_leaks_tinfo(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_free_tinfo
|
||||
void _nc_free_tinfo(
|
||||
int code)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./fallback.c */
|
||||
|
||||
#undef _nc_fallback
|
||||
@ -2370,7 +2398,8 @@ const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
|
||||
#endif
|
||||
|
||||
#undef _nc_init_keytry
|
||||
void _nc_init_keytry(void)
|
||||
void _nc_init_keytry(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/lib_acs.c */
|
||||
@ -2408,8 +2437,9 @@ int baudrate(void)
|
||||
|
||||
/* ./tinfo/lib_cur_term.c */
|
||||
|
||||
#undef cur_term
|
||||
TERMINAL *cur_term;
|
||||
#undef _nc_cur_term
|
||||
TERMINAL *_nc_cur_term(void)
|
||||
{ return(*(TERMINAL **)0); }
|
||||
|
||||
#undef set_curterm
|
||||
TERMINAL *set_curterm(
|
||||
@ -2444,6 +2474,15 @@ NCURSES_GLOBALS _nc_globals;
|
||||
#undef _nc_prescreen
|
||||
NCURSES_PRESCREEN _nc_prescreen;
|
||||
|
||||
#undef _nc_init_pthreads
|
||||
void _nc_init_pthreads(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_mutex_init
|
||||
void _nc_mutex_init(
|
||||
pthread_mutex_t *obj)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_mutex_lock
|
||||
int _nc_mutex_lock(
|
||||
pthread_mutex_t *obj)
|
||||
@ -2487,14 +2526,16 @@ int flushinp(void)
|
||||
|
||||
struct kn { short offset; int code; };
|
||||
|
||||
#undef keyname
|
||||
const char *keyname(
|
||||
#undef _nc_keyname
|
||||
char *_nc_keyname(
|
||||
SCREEN *sp,
|
||||
int c)
|
||||
{ return(*(const char **)0); }
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_keyname_leaks
|
||||
void _nc_keyname_leaks(void)
|
||||
{ /* void */ }
|
||||
#undef keyname
|
||||
char *keyname(
|
||||
int c)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./tinfo/lib_longname.c */
|
||||
|
||||
@ -2504,8 +2545,6 @@ char *longname(void)
|
||||
|
||||
/* ./tinfo/lib_napms.c */
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#undef napms
|
||||
int napms(
|
||||
int ms)
|
||||
@ -2577,6 +2616,7 @@ int has_key(
|
||||
|
||||
#undef _nc_keypad
|
||||
int _nc_keypad(
|
||||
SCREEN *sp,
|
||||
NCURSES_BOOL flag)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -2622,10 +2662,18 @@ int intrflush(
|
||||
char *_nc_ttytype(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_ptr_Lines
|
||||
int *_nc_ptr_Lines(void)
|
||||
{ return(*(int **)0); }
|
||||
|
||||
#undef _nc_LINES
|
||||
int _nc_LINES(void)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_ptr_Cols
|
||||
int *_nc_ptr_Cols(void)
|
||||
{ return(*(int **)0); }
|
||||
|
||||
#undef _nc_COLS
|
||||
int _nc_COLS(void)
|
||||
{ return(*(int *)0); }
|
||||
@ -2641,7 +2689,7 @@ int set_tabsize(
|
||||
|
||||
#undef _nc_handle_sigwinch
|
||||
int _nc_handle_sigwinch(
|
||||
int update)
|
||||
SCREEN *sp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef use_env
|
||||
@ -2651,12 +2699,14 @@ void use_env(
|
||||
|
||||
#undef _nc_get_screensize
|
||||
void _nc_get_screensize(
|
||||
SCREEN *sp,
|
||||
int *linep,
|
||||
int *colp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_update_screensize
|
||||
void _nc_update_screensize(void)
|
||||
void _nc_update_screensize(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_get_locale
|
||||
@ -2668,12 +2718,13 @@ int _nc_unicode_locale(void)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_locale_breaks_acs
|
||||
int _nc_locale_breaks_acs(void)
|
||||
int _nc_locale_breaks_acs(
|
||||
TERMINAL *termp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_setupterm
|
||||
int _nc_setupterm(
|
||||
const char *tname,
|
||||
char *tname,
|
||||
int Filedes,
|
||||
int *errret,
|
||||
NCURSES_BOOL reuse)
|
||||
@ -2681,7 +2732,7 @@ int _nc_setupterm(
|
||||
|
||||
#undef setupterm
|
||||
int setupterm(
|
||||
const char *tname,
|
||||
char *tname,
|
||||
int Filedes,
|
||||
int *errret)
|
||||
{ return(*(int *)0); }
|
||||
@ -2707,24 +2758,20 @@ int tgetent(
|
||||
|
||||
#undef tgetflag
|
||||
int tgetflag(
|
||||
const char *id)
|
||||
char *id)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef tgetnum
|
||||
int tgetnum(
|
||||
const char *id)
|
||||
char *id)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef tgetstr
|
||||
char *tgetstr(
|
||||
const char *id,
|
||||
char *id,
|
||||
char **area)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_tgetent_leaks
|
||||
void _nc_tgetent_leaks(void)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/lib_termname.c */
|
||||
|
||||
#undef termname
|
||||
@ -2744,17 +2791,17 @@ char *tgoto(
|
||||
|
||||
#undef tigetflag
|
||||
int tigetflag(
|
||||
const char *str)
|
||||
char *str)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef tigetnum
|
||||
int tigetnum(
|
||||
const char *str)
|
||||
char *str)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef tigetstr
|
||||
char *tigetstr(
|
||||
const char *str)
|
||||
char *str)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./tinfo/lib_tparm.c */
|
||||
@ -2762,10 +2809,6 @@ char *tigetstr(
|
||||
#undef _nc_tparm_err
|
||||
int _nc_tparm_err;
|
||||
|
||||
#undef _nc_free_tparm
|
||||
void _nc_free_tparm(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_tparm_analyze
|
||||
int _nc_tparm_analyze(
|
||||
const char *string,
|
||||
@ -2775,7 +2818,7 @@ int _nc_tparm_analyze(
|
||||
|
||||
#undef tparm
|
||||
char *tparm(
|
||||
const char *string,
|
||||
char *string,
|
||||
...)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
@ -2788,6 +2831,11 @@ NCURSES_OSPEED ospeed;
|
||||
#undef _nc_nulls_sent
|
||||
int _nc_nulls_sent;
|
||||
|
||||
#undef _nc_set_no_padding
|
||||
void _nc_set_no_padding(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef delay_output
|
||||
int delay_output(
|
||||
int ms)
|
||||
@ -2875,9 +2923,9 @@ const char *_nc_retrace_cptr(
|
||||
{ return(*(const char **)0); }
|
||||
|
||||
#undef _nc_retrace_cvoid_ptr
|
||||
const void *_nc_retrace_cvoid_ptr(
|
||||
const void *code)
|
||||
{ return(*(const void **)0); }
|
||||
void *_nc_retrace_cvoid_ptr(
|
||||
void *code)
|
||||
{ return(*(void **)0); }
|
||||
|
||||
#undef _nc_retrace_void_ptr
|
||||
void *_nc_retrace_void_ptr(
|
||||
@ -2963,6 +3011,12 @@ char *_nc_tracebits(void)
|
||||
|
||||
/* ./trace/lib_tracechr.c */
|
||||
|
||||
#undef _nc_tracechar
|
||||
char *_nc_tracechar(
|
||||
SCREEN *sp,
|
||||
int ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _tracechar
|
||||
char *_tracechar(
|
||||
int ch)
|
||||
@ -3008,6 +3062,7 @@ int resetty(void)
|
||||
|
||||
#undef _nc_timed_wait
|
||||
int _nc_timed_wait(
|
||||
SCREEN *sp,
|
||||
int mode,
|
||||
int milliseconds,
|
||||
int *timeleft)
|
||||
@ -3030,32 +3085,28 @@ int _nc_name_match(
|
||||
/* ./names.c */
|
||||
|
||||
#undef _nc_boolnames
|
||||
const char *const *_nc_boolnames(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_boolnames(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_boolfnames
|
||||
const char *const *_nc_boolfnames(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_boolfnames(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_numnames
|
||||
const char *const *_nc_numnames(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_numnames(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_numfnames
|
||||
const char *const *_nc_numfnames(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_numfnames(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_strnames
|
||||
const char *const *_nc_strnames(void)
|
||||
{ return(*(const char **)0); }
|
||||
char *const *_nc_strnames(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_strfnames
|
||||
const char *const *_nc_strfnames(void)
|
||||
{ return(*(const char **)0); }
|
||||
|
||||
#undef _nc_names_leaks
|
||||
void _nc_names_leaks(void)
|
||||
{ /* void */ }
|
||||
char *const *_nc_strfnames(void)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./tinfo/read_entry.c */
|
||||
|
||||
@ -3085,9 +3136,11 @@ int _nc_read_entry(
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#undef _nc_read_termcap
|
||||
void _nc_read_termcap(void)
|
||||
{ /* void */ }
|
||||
#undef _nc_read_termcap_entry
|
||||
int _nc_read_termcap_entry(
|
||||
const char *const tn,
|
||||
TERMTYPE *const tp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./tinfo/setbuf.c */
|
||||
|
||||
@ -3182,10 +3235,16 @@ char *_nc_trim_sgr0(
|
||||
|
||||
/* ./unctrl.c */
|
||||
|
||||
#undef _nc_unctrl
|
||||
char *_nc_unctrl(
|
||||
SCREEN *sp,
|
||||
chtype ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef unctrl
|
||||
const char *unctrl(
|
||||
chtype ch)
|
||||
{ return(*(const char **)0); }
|
||||
char *unctrl(
|
||||
chtype ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./trace/visbuf.c */
|
||||
|
||||
@ -3248,10 +3307,6 @@ void _nc_merge_entry(
|
||||
TERMTYPE *const from)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_alloc_entry_leaks
|
||||
void _nc_alloc_entry_leaks(void)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/captoinfo.c */
|
||||
|
||||
#undef _nc_captoinfo
|
||||
@ -3268,10 +3323,6 @@ char *_nc_infotocap(
|
||||
int const parameterized)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _nc_captoinfo_leaks
|
||||
void _nc_captoinfo_leaks(void)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./comp_captab.c */
|
||||
|
||||
#include <hashsize.h>
|
||||
@ -3291,10 +3342,6 @@ const struct alias *_nc_get_alias_table(
|
||||
NCURSES_BOOL termcap)
|
||||
{ return(*(const struct alias **)0); }
|
||||
|
||||
#undef _nc_comp_captab_leaks
|
||||
void _nc_comp_captab_leaks(void)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/comp_expand.c */
|
||||
|
||||
#undef _nc_tic_expand
|
||||
@ -3356,15 +3403,6 @@ int _nc_resolve_uses(
|
||||
NCURSES_BOOL fullresolve)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_leaks_tic
|
||||
void _nc_leaks_tic(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_free_tic
|
||||
void _nc_free_tic(
|
||||
int code)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/comp_scan.c */
|
||||
|
||||
#undef _nc_syntax
|
||||
@ -3409,10 +3447,6 @@ void _nc_panic_mode(
|
||||
char ch)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_comp_scan_leaks
|
||||
void _nc_comp_scan_leaks(void)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/parse_entry.c */
|
||||
|
||||
#undef _nc_parse_entry
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 2001-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 2001-2007,2008 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 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Thomas E. Dickey 2001-2006 *
|
||||
* Author: Thomas E. Dickey 2001-2008 *
|
||||
****************************************************************************/
|
||||
/* LINTLIBRARY */
|
||||
|
||||
@ -1636,7 +1636,7 @@ int wins_wstr(
|
||||
NCURSES_BOOL mouse_trafo(
|
||||
int *a1,
|
||||
int *a2,
|
||||
NCURSES_BOOL z)
|
||||
NCURSES_BOOL z)
|
||||
{ return(*(NCURSES_BOOL *)0); }
|
||||
|
||||
/* ./base/lib_getch.c */
|
||||
@ -1646,6 +1646,11 @@ NCURSES_BOOL mouse_trafo(
|
||||
#undef ESCDELAY
|
||||
int ESCDELAY;
|
||||
|
||||
#undef set_escdelay
|
||||
int set_escdelay(
|
||||
int value)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_wgetch
|
||||
int _nc_wgetch(
|
||||
WINDOW *win,
|
||||
@ -1903,6 +1908,11 @@ WINDOW *_nc_makenew(
|
||||
int flags)
|
||||
{ return(*(WINDOW **)0); }
|
||||
|
||||
#undef _nc_screen_of
|
||||
SCREEN *_nc_screen_of(
|
||||
WINDOW *win)
|
||||
{ return(*(SCREEN **)0); }
|
||||
|
||||
/* ./base/lib_nl.c */
|
||||
|
||||
#undef nl
|
||||
@ -2199,9 +2209,6 @@ int ripoffline(
|
||||
|
||||
/* ./base/lib_slk.c */
|
||||
|
||||
#undef _nc_slk_format
|
||||
int _nc_slk_format;
|
||||
|
||||
#undef _nc_slk_initialize
|
||||
int _nc_slk_initialize(
|
||||
WINDOW *stwin,
|
||||
@ -2333,6 +2340,12 @@ void _tracedump(
|
||||
|
||||
/* ./trace/lib_tracemse.c */
|
||||
|
||||
#undef _nc_tracemouse
|
||||
char *_nc_tracemouse(
|
||||
SCREEN *sp,
|
||||
MEVENT const *ep)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _tracemouse
|
||||
char *_tracemouse(
|
||||
MEVENT const *ep)
|
||||
@ -2350,9 +2363,16 @@ void _nc_signal_handler(
|
||||
/* ./base/lib_ungetch.c */
|
||||
|
||||
#undef _nc_fifo_dump
|
||||
void _nc_fifo_dump(void)
|
||||
void _nc_fifo_dump(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_ungetch
|
||||
int _nc_ungetch(
|
||||
SCREEN *sp,
|
||||
int ch)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef ungetch
|
||||
int ungetch(
|
||||
int ch)
|
||||
@ -2530,6 +2550,11 @@ void _nc_vsscanf(void)
|
||||
void _nc_freeall(void)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_free_and_exit
|
||||
void _nc_free_and_exit(
|
||||
int code)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./widechar/charable.c */
|
||||
|
||||
#undef _nc_is_charable
|
||||
@ -2849,6 +2874,24 @@ void _nc_trace_xnames(
|
||||
TERMTYPE *tp)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/use_screen.c */
|
||||
|
||||
#undef use_screen
|
||||
int use_screen(
|
||||
SCREEN *screen,
|
||||
NCURSES_SCREEN_CB func,
|
||||
void *data)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./base/use_window.c */
|
||||
|
||||
#undef use_window
|
||||
int use_window(
|
||||
WINDOW *win,
|
||||
NCURSES_WINDOW_CB func,
|
||||
void *data)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
/* ./base/wresize.c */
|
||||
|
||||
#undef wresize
|
||||
@ -3091,7 +3134,8 @@ const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
|
||||
#endif
|
||||
|
||||
#undef _nc_init_keytry
|
||||
void _nc_init_keytry(void)
|
||||
void _nc_init_keytry(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
/* ./tinfo/lib_acs.c */
|
||||
@ -3186,6 +3230,12 @@ int flushinp(void)
|
||||
|
||||
struct kn { short offset; int code; };
|
||||
|
||||
#undef _nc_keyname
|
||||
char *_nc_keyname(
|
||||
SCREEN *sp,
|
||||
int c)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef keyname
|
||||
char *keyname(
|
||||
int c)
|
||||
@ -3272,6 +3322,7 @@ int has_key(
|
||||
|
||||
#undef _nc_keypad
|
||||
int _nc_keypad(
|
||||
SCREEN *sp,
|
||||
NCURSES_BOOL flag)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
@ -3322,9 +3373,14 @@ int COLS;
|
||||
#undef TABSIZE
|
||||
int TABSIZE;
|
||||
|
||||
#undef set_tabsize
|
||||
int set_tabsize(
|
||||
int value)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_handle_sigwinch
|
||||
int _nc_handle_sigwinch(
|
||||
int update)
|
||||
SCREEN *sp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef use_env
|
||||
@ -3334,12 +3390,14 @@ void use_env(
|
||||
|
||||
#undef _nc_get_screensize
|
||||
void _nc_get_screensize(
|
||||
SCREEN *sp,
|
||||
int *linep,
|
||||
int *colp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_update_screensize
|
||||
void _nc_update_screensize(void)
|
||||
void _nc_update_screensize(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef _nc_get_locale
|
||||
@ -3351,7 +3409,8 @@ int _nc_unicode_locale(void)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_locale_breaks_acs
|
||||
int _nc_locale_breaks_acs(void)
|
||||
int _nc_locale_breaks_acs(
|
||||
TERMINAL *termp)
|
||||
{ return(*(int *)0); }
|
||||
|
||||
#undef _nc_setupterm
|
||||
@ -3463,6 +3522,11 @@ NCURSES_OSPEED ospeed;
|
||||
#undef _nc_nulls_sent
|
||||
int _nc_nulls_sent;
|
||||
|
||||
#undef _nc_set_no_padding
|
||||
void _nc_set_no_padding(
|
||||
SCREEN *sp)
|
||||
{ /* void */ }
|
||||
|
||||
#undef delay_output
|
||||
int delay_output(
|
||||
int ms)
|
||||
@ -3624,6 +3688,12 @@ char *_nc_tracebits(void)
|
||||
|
||||
/* ./trace/lib_tracechr.c */
|
||||
|
||||
#undef _nc_tracechar
|
||||
char *_nc_tracechar(
|
||||
SCREEN *sp,
|
||||
int ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef _tracechar
|
||||
char *_tracechar(
|
||||
int ch)
|
||||
@ -3669,6 +3739,7 @@ int resetty(void)
|
||||
|
||||
#undef _nc_timed_wait
|
||||
int _nc_timed_wait(
|
||||
SCREEN *sp,
|
||||
int mode,
|
||||
int milliseconds,
|
||||
int *timeleft)
|
||||
@ -3830,9 +3901,15 @@ char *_nc_trim_sgr0(
|
||||
|
||||
/* ./unctrl.c */
|
||||
|
||||
#undef _nc_unctrl
|
||||
char *_nc_unctrl(
|
||||
SCREEN *sp,
|
||||
chtype ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
#undef unctrl
|
||||
char *unctrl(
|
||||
chtype ch)
|
||||
chtype ch)
|
||||
{ return(*(char **)0); }
|
||||
|
||||
/* ./trace/visbuf.c */
|
||||
|
@ -1,5 +1,5 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
|
||||
# Copyright (c) 1998-2007,2008 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: MKcodes.awk,v 1.4 2007/11/03 20:24:15 tom Exp $
|
||||
# $Id: MKcodes.awk,v 1.5 2008/06/28 23:13:25 tom Exp $
|
||||
function large_item(value) {
|
||||
result = sprintf("%d,", offset);
|
||||
offset = offset + length(value) + 1;
|
||||
@ -140,6 +140,7 @@ END {
|
||||
print ""
|
||||
print "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
|
||||
print ""
|
||||
print "#if NO_LEAKS"
|
||||
print "NCURSES_EXPORT(void)"
|
||||
print "_nc_codes_leaks(void)"
|
||||
print "{"
|
||||
@ -149,6 +150,8 @@ END {
|
||||
print "FREE_FIX(strcodes)"
|
||||
}
|
||||
print "}"
|
||||
print "#endif"
|
||||
print ""
|
||||
print "#else"
|
||||
print ""
|
||||
print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
|
||||
|
@ -1,5 +1,5 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2007 Free Software Foundation, Inc. #
|
||||
# Copyright (c) 2007,2008 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: MKnames.awk,v 1.18 2007/11/03 20:24:15 tom Exp $
|
||||
# $Id: MKnames.awk,v 1.20 2008/10/11 21:07:56 tom Exp $
|
||||
function large_item(value) {
|
||||
result = sprintf("%d,", offset);
|
||||
offset = offset + length(value) + 1;
|
||||
@ -126,7 +126,7 @@ END {
|
||||
print " if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
|
||||
print " unsigned n;"
|
||||
print " for (n = 0; n < size; ++n) {"
|
||||
print " (*value)[n] = _nc_name_blob + offsets[n];"
|
||||
print " (*value)[n] = (NCURSES_CONST char *) _nc_name_blob + offsets[n];"
|
||||
print " }"
|
||||
print " }"
|
||||
print " }"
|
||||
@ -156,6 +156,7 @@ END {
|
||||
print ""
|
||||
print "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
|
||||
print ""
|
||||
print "#if NO_LEAKS"
|
||||
print "NCURSES_EXPORT(void)"
|
||||
print "_nc_names_leaks(void)"
|
||||
print "{"
|
||||
@ -168,6 +169,8 @@ END {
|
||||
print "FREE_FIX(strfnames)"
|
||||
}
|
||||
print "}"
|
||||
print "#endif"
|
||||
print ""
|
||||
print "#else"
|
||||
print ""
|
||||
print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -48,7 +48,7 @@
|
||||
#include <tic.h>
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: alloc_entry.c,v 1.47 2006/12/16 19:06:58 tom Exp $")
|
||||
MODULE_ID("$Id: alloc_entry.c,v 1.48 2008/08/16 16:25:31 tom Exp $")
|
||||
|
||||
#define ABSENT_OFFSET -1
|
||||
#define CANCELLED_OFFSET -2
|
||||
@ -145,7 +145,8 @@ NCURSES_EXPORT(void)
|
||||
_nc_wrap_entry(ENTRY * const ep, bool copy_strings)
|
||||
/* copy the string parts to allocated storage, preserving pointers to it */
|
||||
{
|
||||
int offsets[MAX_ENTRY_SIZE / 2], useoffsets[MAX_USES];
|
||||
int offsets[MAX_ENTRY_SIZE / sizeof(short)];
|
||||
int useoffsets[MAX_USES];
|
||||
unsigned i, n;
|
||||
unsigned nuses = ep->nuses;
|
||||
TERMTYPE *tp = &(ep->tterm);
|
||||
@ -171,14 +172,18 @@ _nc_wrap_entry(ENTRY * const ep, bool copy_strings)
|
||||
free(tp->str_table);
|
||||
}
|
||||
|
||||
n = tp->term_names - stringbuf;
|
||||
assert(tp->term_names >= stringbuf);
|
||||
n = (unsigned) (tp->term_names - stringbuf);
|
||||
for_each_string(i, &(ep->tterm)) {
|
||||
if (tp->Strings[i] == ABSENT_STRING)
|
||||
offsets[i] = ABSENT_OFFSET;
|
||||
else if (tp->Strings[i] == CANCELLED_STRING)
|
||||
offsets[i] = CANCELLED_OFFSET;
|
||||
else
|
||||
offsets[i] = tp->Strings[i] - stringbuf;
|
||||
if (i < SIZEOF(offsets)) {
|
||||
if (tp->Strings[i] == ABSENT_STRING) {
|
||||
offsets[i] = ABSENT_OFFSET;
|
||||
} else if (tp->Strings[i] == CANCELLED_STRING) {
|
||||
offsets[i] = CANCELLED_OFFSET;
|
||||
} else {
|
||||
offsets[i] = tp->Strings[i] - stringbuf;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < nuses; i++) {
|
||||
@ -194,28 +199,33 @@ _nc_wrap_entry(ENTRY * const ep, bool copy_strings)
|
||||
|
||||
tp->term_names = tp->str_table + n;
|
||||
for_each_string(i, &(ep->tterm)) {
|
||||
if (offsets[i] == ABSENT_OFFSET)
|
||||
tp->Strings[i] = ABSENT_STRING;
|
||||
else if (offsets[i] == CANCELLED_OFFSET)
|
||||
tp->Strings[i] = CANCELLED_STRING;
|
||||
else
|
||||
tp->Strings[i] = tp->str_table + offsets[i];
|
||||
if (i < SIZEOF(offsets)) {
|
||||
if (offsets[i] == ABSENT_OFFSET) {
|
||||
tp->Strings[i] = ABSENT_STRING;
|
||||
} else if (offsets[i] == CANCELLED_OFFSET) {
|
||||
tp->Strings[i] = CANCELLED_STRING;
|
||||
} else {
|
||||
tp->Strings[i] = tp->str_table + offsets[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if NCURSES_XNAMES
|
||||
if (!copy_strings) {
|
||||
if ((n = NUM_EXT_NAMES(tp)) != 0) {
|
||||
unsigned length = 0;
|
||||
for (i = 0; i < n; i++) {
|
||||
length += strlen(tp->ext_Names[i]) + 1;
|
||||
offsets[i] = tp->ext_Names[i] - stringbuf;
|
||||
}
|
||||
if ((tp->ext_str_table = typeMalloc(char, length)) == 0)
|
||||
_nc_err_abort(MSG_NO_MEMORY);
|
||||
for (i = 0, length = 0; i < n; i++) {
|
||||
tp->ext_Names[i] = tp->ext_str_table + length;
|
||||
strcpy(tp->ext_Names[i], stringbuf + offsets[i]);
|
||||
length += strlen(tp->ext_Names[i]) + 1;
|
||||
if ((n = (unsigned) NUM_EXT_NAMES(tp)) != 0) {
|
||||
if (n < SIZEOF(offsets)) {
|
||||
unsigned length = 0;
|
||||
for (i = 0; i < n; i++) {
|
||||
length += strlen(tp->ext_Names[i]) + 1;
|
||||
offsets[i] = tp->ext_Names[i] - stringbuf;
|
||||
}
|
||||
if ((tp->ext_str_table = typeMalloc(char, length)) == 0)
|
||||
_nc_err_abort(MSG_NO_MEMORY);
|
||||
for (i = 0, length = 0; i < n; i++) {
|
||||
tp->ext_Names[i] = tp->ext_str_table + length;
|
||||
strcpy(tp->ext_Names[i], stringbuf + offsets[i]);
|
||||
length += strlen(tp->ext_Names[i]) + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -245,13 +255,13 @@ _nc_merge_entry(TERMTYPE *const to, TERMTYPE *const from)
|
||||
if (mergebool == CANCELLED_BOOLEAN)
|
||||
to->Booleans[i] = FALSE;
|
||||
else if (mergebool == TRUE)
|
||||
to->Booleans[i] = mergebool;
|
||||
to->Booleans[i] = (char) mergebool;
|
||||
}
|
||||
}
|
||||
|
||||
for_each_number(i, from) {
|
||||
if (to->Numbers[i] != CANCELLED_NUMERIC) {
|
||||
int mergenum = from->Numbers[i];
|
||||
short mergenum = from->Numbers[i];
|
||||
|
||||
if (mergenum == CANCELLED_NUMERIC)
|
||||
to->Numbers[i] = ABSENT_NUMERIC;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1999-2003,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1999-2006,2008 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 *
|
||||
@ -43,7 +43,7 @@
|
||||
#include <tic.h>
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: alloc_ttype.c,v 1.16 2006/07/08 19:18:38 tom Exp $")
|
||||
MODULE_ID("$Id: alloc_ttype.c,v 1.17 2008/10/12 16:12:00 tom Exp $")
|
||||
|
||||
#if NCURSES_XNAMES
|
||||
/*
|
||||
@ -365,6 +365,17 @@ adjust_cancels(TERMTYPE *to, TERMTYPE *from)
|
||||
} else {
|
||||
j++;
|
||||
}
|
||||
} else if ((k = _nc_find_ext_name(from, to->ext_Names[j],
|
||||
STRING)) >= 0) {
|
||||
if (_nc_del_ext_name(to, name, NUMBER)
|
||||
|| _nc_del_ext_name(to, name, BOOLEAN)) {
|
||||
k = _nc_ins_ext_name(to, name, STRING);
|
||||
to->Strings[k] = CANCELLED_STRING;
|
||||
} else {
|
||||
j++;
|
||||
}
|
||||
} else {
|
||||
j++;
|
||||
}
|
||||
} else {
|
||||
j++;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -93,7 +93,7 @@
|
||||
#include <ctype.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: captoinfo.c,v 1.49 2006/12/16 19:16:53 tom Exp $")
|
||||
MODULE_ID("$Id: captoinfo.c,v 1.52 2008/08/16 19:24:51 tom Exp $")
|
||||
|
||||
#define MAX_PUSHED 16 /* max # args we can push onto the stack */
|
||||
|
||||
@ -149,7 +149,7 @@ static void
|
||||
push(void)
|
||||
/* push onstack on to the stack */
|
||||
{
|
||||
if (stackptr > MAX_PUSHED)
|
||||
if (stackptr >= MAX_PUSHED)
|
||||
_nc_warning("string too complex to convert");
|
||||
else
|
||||
stack[stackptr++] = onstack;
|
||||
@ -183,7 +183,7 @@ cvtchar(register const char *sp)
|
||||
case '$':
|
||||
case '\\':
|
||||
case '%':
|
||||
c = *sp;
|
||||
c = (unsigned char) (*sp);
|
||||
len = 2;
|
||||
break;
|
||||
case '\0':
|
||||
@ -201,7 +201,7 @@ cvtchar(register const char *sp)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
c = *sp;
|
||||
c = (unsigned char) (*sp);
|
||||
len = 2;
|
||||
break;
|
||||
}
|
||||
@ -211,7 +211,7 @@ cvtchar(register const char *sp)
|
||||
len = 2;
|
||||
break;
|
||||
default:
|
||||
c = *sp;
|
||||
c = (unsigned char) (*sp);
|
||||
len = 1;
|
||||
}
|
||||
if (isgraph(c) && c != ',' && c != '\'' && c != '\\' && c != ':') {
|
||||
@ -788,6 +788,11 @@ _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameteriz
|
||||
} /* endswitch (*str) */
|
||||
} /* endelse (*str == '%') */
|
||||
|
||||
/*
|
||||
* 'str' always points to the end of what was scanned in this step,
|
||||
* but that may not be the end of the string.
|
||||
*/
|
||||
assert(str != 0);
|
||||
if (*str == '\0')
|
||||
break;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -35,7 +35,7 @@
|
||||
#include <ctype.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: comp_expand.c,v 1.18 2006/06/17 19:37:14 tom Exp $")
|
||||
MODULE_ID("$Id: comp_expand.c,v 1.20 2008/08/16 19:29:42 tom Exp $")
|
||||
|
||||
static int
|
||||
trailing_spaces(const char *src)
|
||||
@ -56,7 +56,7 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
|
||||
static size_t length;
|
||||
|
||||
int bufp;
|
||||
const char *str = VALID_STRING(srcp) ? srcp : "";
|
||||
const char *str = VALID_STRING(srcp) ? srcp : "\0\0";
|
||||
bool islong = (strlen(str) > 3);
|
||||
size_t need = (2 + strlen(str)) * 4;
|
||||
int ch;
|
||||
@ -119,7 +119,7 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
|
||||
if (ch == '\\'
|
||||
|| ch == S_QUOTE)
|
||||
buffer[bufp++] = '\\';
|
||||
buffer[bufp++] = ch;
|
||||
buffer[bufp++] = (char) ch;
|
||||
buffer[bufp++] = S_QUOTE;
|
||||
str = dst;
|
||||
} else {
|
||||
@ -148,13 +148,13 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
|
||||
buffer[bufp++] = 's';
|
||||
} else if ((ch == ',' || ch == ':' || ch == '^') && tic_format) {
|
||||
buffer[bufp++] = '\\';
|
||||
buffer[bufp++] = ch;
|
||||
buffer[bufp++] = (char) ch;
|
||||
} else if (REALPRINT(str)
|
||||
&& (ch != ','
|
||||
&& ch != ':'
|
||||
&& !(ch == '!' && !tic_format)
|
||||
&& ch != '^'))
|
||||
buffer[bufp++] = ch;
|
||||
buffer[bufp++] = (char) ch;
|
||||
#if 0 /* FIXME: this would be more readable (in fact the whole 'islong' logic should be removed) */
|
||||
else if (ch == '\b') {
|
||||
buffer[bufp++] = '\\';
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -50,7 +50,7 @@
|
||||
#define DEBUG(level, params) /*nothing */
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: comp_hash.c,v 1.33 2007/08/18 21:42:25 tom Exp $")
|
||||
MODULE_ID("$Id: comp_hash.c,v 1.36 2008/08/16 17:06:53 tom Exp $")
|
||||
|
||||
static int hash_function(const char *);
|
||||
|
||||
@ -73,7 +73,7 @@ static void
|
||||
_nc_make_hash_table(struct name_table_entry *table,
|
||||
short *hash_table)
|
||||
{
|
||||
int i;
|
||||
short i;
|
||||
int hashvalue;
|
||||
int collisions = 0;
|
||||
|
||||
@ -215,8 +215,9 @@ parse_columns(char *buffer)
|
||||
if ((s - buffer) > 1
|
||||
&& (*buffer == '"')
|
||||
&& (s[-1] == '"')) { /* strip the quotes */
|
||||
buffer++;
|
||||
assert(s > buffer + 1);
|
||||
s[-1] = '\0';
|
||||
buffer++;
|
||||
}
|
||||
list[col] = buffer;
|
||||
col++;
|
||||
@ -258,7 +259,9 @@ main(int argc, char **argv)
|
||||
|| (column = atoi(argv[1])) <= 0
|
||||
|| (column >= MAX_COLUMNS)
|
||||
|| *(root_name = argv[2]) == 0
|
||||
|| (bigstring = atoi(argv[3])) < 0) {
|
||||
|| (bigstring = atoi(argv[3])) < 0
|
||||
|| name_table == 0
|
||||
|| hash_table == 0) {
|
||||
fprintf(stderr, "usage: make_hash column root_name bigstring\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
@ -301,7 +304,7 @@ main(int argc, char **argv)
|
||||
|
||||
printf("static const char %s_names_text[] = \\\n", root_name);
|
||||
for (n = 0; n < CAPTABSIZE; n++) {
|
||||
nxt = strlen(name_table[n].nte_name) + 5;
|
||||
nxt = (int) strlen(name_table[n].nte_name) + 5;
|
||||
if (nxt + len > 72) {
|
||||
printf("\\\n");
|
||||
len = 0;
|
||||
@ -322,7 +325,7 @@ main(int argc, char **argv)
|
||||
name_table[n].nte_index,
|
||||
name_table[n].nte_link,
|
||||
n < CAPTABSIZE - 1 ? ',' : ' ');
|
||||
len += strlen(name_table[n].nte_name) + 1;
|
||||
len += (int) strlen(name_table[n].nte_name) + 1;
|
||||
}
|
||||
printf("};\n\n");
|
||||
printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name);
|
||||
@ -361,6 +364,7 @@ main(int argc, char **argv)
|
||||
printf("#error\t--> numbers of booleans, numbers and/or strings <--\n");
|
||||
printf("#endif\n\n");
|
||||
|
||||
free(hash_table);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -53,7 +53,7 @@
|
||||
#include <tic.h>
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: comp_parse.c,v 1.68 2007/11/03 20:41:46 tom Exp $")
|
||||
MODULE_ID("$Id: comp_parse.c,v 1.69 2008/08/16 21:58:16 tom Exp $")
|
||||
|
||||
static void sanity_check2(TERMTYPE *, bool);
|
||||
NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
|
||||
@ -183,7 +183,8 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
|
||||
{
|
||||
ENTRY *qp, *rp, *lastread = 0;
|
||||
bool keepgoing;
|
||||
int i, unresolved, total_unresolved, multiples;
|
||||
unsigned i;
|
||||
int unresolved, total_unresolved, multiples;
|
||||
|
||||
DEBUG(2, ("RESOLUTION BEGINNING"));
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2006,2008 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 *
|
||||
@ -51,7 +51,7 @@
|
||||
#include <term_entry.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: comp_scan.c,v 1.78 2006/12/16 19:17:01 tom Exp $")
|
||||
MODULE_ID("$Id: comp_scan.c,v 1.83 2008/08/16 19:22:55 tom Exp $")
|
||||
|
||||
/*
|
||||
* Maximum length of string capability we'll accept before raising an error.
|
||||
@ -203,6 +203,7 @@ next_char(void)
|
||||
result = typeRealloc(char, allocated, result);
|
||||
if (result == 0)
|
||||
return (EOF);
|
||||
bufstart = result;
|
||||
}
|
||||
if (used == 0)
|
||||
_nc_curr_file_pos = ftell(yyin);
|
||||
@ -293,6 +294,15 @@ eat_escaped_newline(int ch)
|
||||
return ch;
|
||||
}
|
||||
|
||||
#define TOK_BUF_SIZE MAX_ENTRY_SIZE
|
||||
|
||||
#define OkToAdd() \
|
||||
((tok_ptr - tok_buf) < (TOK_BUF_SIZE - 2))
|
||||
|
||||
#define AddCh(ch) \
|
||||
*tok_ptr++ = (char) ch; \
|
||||
*tok_ptr = '\0'
|
||||
|
||||
/*
|
||||
* int
|
||||
* get_token()
|
||||
@ -330,12 +340,12 @@ NCURSES_EXPORT(int)
|
||||
_nc_get_token(bool silent)
|
||||
{
|
||||
static const char terminfo_punct[] = "@%&*!#";
|
||||
static char *buffer;
|
||||
static char *tok_buf;
|
||||
|
||||
char *after_list;
|
||||
char *after_name;
|
||||
char *numchk;
|
||||
char *ptr;
|
||||
char *tok_ptr;
|
||||
char *s;
|
||||
char numbuf[80];
|
||||
int ch;
|
||||
@ -367,10 +377,10 @@ _nc_get_token(bool silent)
|
||||
if (end_of_stream()) {
|
||||
yyin = 0;
|
||||
next_char(); /* frees its allocated memory */
|
||||
if (buffer != 0) {
|
||||
if (_nc_curr_token.tk_name == buffer)
|
||||
if (tok_buf != 0) {
|
||||
if (_nc_curr_token.tk_name == tok_buf)
|
||||
_nc_curr_token.tk_name = 0;
|
||||
FreeAndNull(buffer);
|
||||
FreeAndNull(tok_buf);
|
||||
}
|
||||
return (EOF);
|
||||
}
|
||||
@ -426,15 +436,15 @@ _nc_get_token(bool silent)
|
||||
goto start_token;
|
||||
}
|
||||
|
||||
if (buffer == 0)
|
||||
buffer = typeMalloc(char, MAX_ENTRY_SIZE);
|
||||
if (tok_buf == 0)
|
||||
tok_buf = typeMalloc(char, TOK_BUF_SIZE);
|
||||
|
||||
#ifdef TRACE
|
||||
old_line = _nc_curr_line;
|
||||
old_col = _nc_curr_col;
|
||||
#endif
|
||||
ptr = buffer;
|
||||
*(ptr++) = ch;
|
||||
tok_ptr = tok_buf;
|
||||
AddCh(ch);
|
||||
|
||||
if (first_column) {
|
||||
_nc_comment_start = token_start;
|
||||
@ -448,9 +458,9 @@ _nc_get_token(bool silent)
|
||||
if (ch == EOF) {
|
||||
_nc_err_abort(MSG_NO_INPUTS);
|
||||
} else if (ch == '|') {
|
||||
after_list = ptr;
|
||||
after_list = tok_ptr;
|
||||
if (after_name == 0)
|
||||
after_name = ptr;
|
||||
after_name = tok_ptr;
|
||||
} else if (ch == ':' && last_char() != ',') {
|
||||
_nc_syntax = SYN_TERMCAP;
|
||||
separator = ':';
|
||||
@ -474,9 +484,14 @@ _nc_get_token(bool silent)
|
||||
} else
|
||||
ch = eat_escaped_newline(ch);
|
||||
|
||||
*ptr++ = ch;
|
||||
if (OkToAdd()) {
|
||||
AddCh(ch);
|
||||
} else {
|
||||
ch = EOF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ptr[0] = '\0';
|
||||
*tok_ptr = '\0';
|
||||
if (_nc_syntax == ERR) {
|
||||
/*
|
||||
* Grrr...what we ought to do here is barf, complaining that
|
||||
@ -488,9 +503,11 @@ _nc_get_token(bool silent)
|
||||
separator = ':';
|
||||
} else if (_nc_syntax == SYN_TERMINFO) {
|
||||
/* throw away trailing /, *$/ */
|
||||
for (--ptr; iswhite(*ptr) || *ptr == ','; ptr--)
|
||||
for (--tok_ptr;
|
||||
iswhite(*tok_ptr) || *tok_ptr == ',';
|
||||
tok_ptr--)
|
||||
continue;
|
||||
ptr[1] = '\0';
|
||||
tok_ptr[1] = '\0';
|
||||
}
|
||||
|
||||
/*
|
||||
@ -501,8 +518,8 @@ _nc_get_token(bool silent)
|
||||
if (after_name != 0) {
|
||||
ch = *after_name;
|
||||
*after_name = '\0';
|
||||
_nc_set_type(buffer);
|
||||
*after_name = ch;
|
||||
_nc_set_type(tok_buf);
|
||||
*after_name = (char) ch;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -517,7 +534,7 @@ _nc_get_token(bool silent)
|
||||
_nc_warning("older tic versions may treat the description field as an alias");
|
||||
}
|
||||
} else {
|
||||
after_list = buffer + strlen(buffer);
|
||||
after_list = tok_buf + strlen(tok_buf);
|
||||
DEBUG(1, ("missing description"));
|
||||
}
|
||||
|
||||
@ -526,7 +543,7 @@ _nc_get_token(bool silent)
|
||||
* rdist and some termcap tools. Slashes are a no-no. Other
|
||||
* special characters can be dangerous due to shell expansion.
|
||||
*/
|
||||
for (s = buffer; s < after_list; ++s) {
|
||||
for (s = tok_buf; s < after_list; ++s) {
|
||||
if (isspace(UChar(*s))) {
|
||||
if (!silent)
|
||||
_nc_warning("whitespace in name or alias field");
|
||||
@ -542,7 +559,7 @@ _nc_get_token(bool silent)
|
||||
}
|
||||
}
|
||||
|
||||
_nc_curr_token.tk_name = buffer;
|
||||
_nc_curr_token.tk_name = tok_buf;
|
||||
type = NAMES;
|
||||
} else {
|
||||
if (had_newline && _nc_syntax == SYN_TERMCAP) {
|
||||
@ -559,30 +576,35 @@ _nc_get_token(bool silent)
|
||||
break;
|
||||
}
|
||||
}
|
||||
*(ptr++) = ch;
|
||||
if (OkToAdd()) {
|
||||
AddCh(ch);
|
||||
} else {
|
||||
ch = EOF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*ptr++ = '\0';
|
||||
*tok_ptr++ = '\0'; /* separate name/value in buffer */
|
||||
switch (ch) {
|
||||
case ',':
|
||||
case ':':
|
||||
if (ch != separator)
|
||||
_nc_err_abort("Separator inconsistent with syntax");
|
||||
_nc_curr_token.tk_name = buffer;
|
||||
_nc_curr_token.tk_name = tok_buf;
|
||||
type = BOOLEAN;
|
||||
break;
|
||||
case '@':
|
||||
if ((ch = next_char()) != separator && !silent)
|
||||
_nc_warning("Missing separator after `%s', have %s",
|
||||
buffer, unctrl((chtype) ch));
|
||||
_nc_curr_token.tk_name = buffer;
|
||||
tok_buf, unctrl((chtype) ch));
|
||||
_nc_curr_token.tk_name = tok_buf;
|
||||
type = CANCEL;
|
||||
break;
|
||||
|
||||
case '#':
|
||||
found = 0;
|
||||
while (isalnum(ch = next_char())) {
|
||||
numbuf[found++] = ch;
|
||||
numbuf[found++] = (char) ch;
|
||||
if (found >= sizeof(numbuf) - 1)
|
||||
break;
|
||||
}
|
||||
@ -590,21 +612,21 @@ _nc_get_token(bool silent)
|
||||
number = strtol(numbuf, &numchk, 0);
|
||||
if (!silent) {
|
||||
if (numchk == numbuf)
|
||||
_nc_warning("no value given for `%s'", buffer);
|
||||
_nc_warning("no value given for `%s'", tok_buf);
|
||||
if ((*numchk != '\0') || (ch != separator))
|
||||
_nc_warning("Missing separator");
|
||||
}
|
||||
_nc_curr_token.tk_name = buffer;
|
||||
_nc_curr_token.tk_name = tok_buf;
|
||||
_nc_curr_token.tk_valnumber = number;
|
||||
type = NUMBER;
|
||||
break;
|
||||
|
||||
case '=':
|
||||
ch = _nc_trans_string(ptr, buffer + MAX_ENTRY_SIZE);
|
||||
ch = _nc_trans_string(tok_ptr, tok_buf + TOK_BUF_SIZE);
|
||||
if (!silent && ch != separator)
|
||||
_nc_warning("Missing separator");
|
||||
_nc_curr_token.tk_name = buffer;
|
||||
_nc_curr_token.tk_valstring = ptr;
|
||||
_nc_curr_token.tk_name = tok_buf;
|
||||
_nc_curr_token.tk_valstring = tok_ptr;
|
||||
type = STRING;
|
||||
break;
|
||||
|
||||
@ -713,8 +735,15 @@ _nc_trans_string(char *ptr, char *last)
|
||||
bool long_warning = FALSE;
|
||||
|
||||
while ((ch = c = next_char()) != (chtype) separator && c != EOF) {
|
||||
if (ptr == (last - 1))
|
||||
if (ptr >= (last - 1)) {
|
||||
if (c != EOF) {
|
||||
while ((c = next_char()) != separator && c != EOF) {
|
||||
;
|
||||
}
|
||||
ch = c;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ((_nc_syntax == SYN_TERMCAP) && c == '\n')
|
||||
break;
|
||||
if (ch == '^' && last_ch != '%') {
|
||||
@ -839,7 +868,7 @@ _nc_trans_string(char *ptr, char *last)
|
||||
|
||||
if (!ignored) {
|
||||
if (_nc_curr_col <= 1) {
|
||||
push_back(ch);
|
||||
push_back((char) ch);
|
||||
ch = '\n';
|
||||
break;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 2006-2007,2008 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 *
|
||||
@ -37,7 +37,7 @@
|
||||
#include <tic.h>
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: entries.c,v 1.4 2007/11/03 21:00:27 tom Exp $")
|
||||
MODULE_ID("$Id: entries.c,v 1.8 2008/09/27 13:11:10 tom Exp $")
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
@ -111,26 +111,27 @@ _nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_leaks_tinfo(void)
|
||||
{
|
||||
#if NO_LEAKS
|
||||
char *s;
|
||||
#endif
|
||||
|
||||
T((T_CALLED("_nc_free_tinfo()")));
|
||||
#if NO_LEAKS
|
||||
_nc_free_tparm();
|
||||
_nc_tgetent_leaks();
|
||||
#endif
|
||||
_nc_free_entries(_nc_head);
|
||||
_nc_get_type(0);
|
||||
_nc_first_name(0);
|
||||
#if NO_LEAKS
|
||||
_nc_keyname_leaks();
|
||||
#endif
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
_nc_names_leaks();
|
||||
_nc_codes_leaks();
|
||||
FreeIfNeeded(_nc_prescreen.real_acs_map);
|
||||
#endif
|
||||
|
||||
if ((s = _nc_home_terminfo()) != 0)
|
||||
free(s);
|
||||
#endif /* NO_LEAKS */
|
||||
returnVoid;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -37,9 +37,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: home_terminfo.c,v 1.10 2007/04/21 23:11:53 tom Exp $")
|
||||
|
||||
#define my_length (strlen(home) + sizeof(PRIVATE_INFO))
|
||||
MODULE_ID("$Id: home_terminfo.c,v 1.11 2008/08/03 23:43:11 tom Exp $")
|
||||
|
||||
/* ncurses extension...fall back on user's private directory */
|
||||
|
||||
@ -54,9 +52,9 @@ _nc_home_terminfo(void)
|
||||
|
||||
if (use_terminfo_vars()) {
|
||||
if (MyBuffer == 0) {
|
||||
if ((home = getenv("HOME")) != 0
|
||||
&& my_length <= PATH_MAX) {
|
||||
MyBuffer = typeMalloc(char, my_length);
|
||||
if ((home = getenv("HOME")) != 0) {
|
||||
unsigned want = (strlen(home) + sizeof(PRIVATE_INFO));
|
||||
MyBuffer = typeMalloc(char, want);
|
||||
if (MyBuffer == 0)
|
||||
_nc_err_abort(MSG_NO_MEMORY);
|
||||
(void) sprintf(MyBuffer, PRIVATE_INFO, home);
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: init_keytry.c,v 1.11 2008/05/03 23:09:15 tom Exp $")
|
||||
MODULE_ID("$Id: init_keytry.c,v 1.12 2008/05/24 21:44:51 tom Exp $")
|
||||
|
||||
/*
|
||||
** _nc_init_keytry()
|
||||
@ -45,6 +45,13 @@ MODULE_ID("$Id: init_keytry.c,v 1.11 2008/05/03 23:09:15 tom Exp $")
|
||||
**
|
||||
*/
|
||||
|
||||
/*
|
||||
* Internal entrypoints use SCREEN* parameter to obtain capabilities rather
|
||||
* than cur_term.
|
||||
*/
|
||||
#undef CUR
|
||||
#define CUR (sp->_term)->type.
|
||||
|
||||
#if BROKEN_LINKER
|
||||
#undef _nc_tinfo_fkeys
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -35,7 +35,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <term.h> /* ena_acs, acs_chars */
|
||||
|
||||
MODULE_ID("$Id: lib_acs.c,v 1.34 2007/09/29 20:37:13 tom Exp $")
|
||||
MODULE_ID("$Id: lib_acs.c,v 1.36 2008/08/16 19:22:55 tom Exp $")
|
||||
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
#define MyBuffer _nc_prescreen.real_acs_map
|
||||
@ -72,7 +72,8 @@ _nc_init_acs(void)
|
||||
for (j = 1; j < ACS_LEN; ++j) {
|
||||
real_map[j] = 0;
|
||||
fake_map[j] = A_ALTCHARSET | j;
|
||||
SP->_screen_acs_map[j] = FALSE;
|
||||
if (SP)
|
||||
SP->_screen_acs_map[j] = FALSE;
|
||||
}
|
||||
} else {
|
||||
for (j = 1; j < ACS_LEN; ++j) {
|
||||
@ -172,7 +173,7 @@ _nc_init_acs(void)
|
||||
for (n = 1, m = 0; n < ACS_LEN; n++) {
|
||||
if (real_map[n] != 0) {
|
||||
show[m++] = (char) n;
|
||||
show[m++] = ChCharOf(real_map[n]);
|
||||
show[m++] = (char) ChCharOf(real_map[n]);
|
||||
}
|
||||
}
|
||||
show[m] = 0;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -80,7 +80,7 @@
|
||||
#undef USE_OLD_TTY
|
||||
#endif /* USE_OLD_TTY */
|
||||
|
||||
MODULE_ID("$Id: lib_baudrate.c,v 1.25 2007/10/20 15:00:41 Rong-En.Fan Exp $")
|
||||
MODULE_ID("$Id: lib_baudrate.c,v 1.27 2008/06/28 15:19:24 tom Exp $")
|
||||
|
||||
/*
|
||||
* int
|
||||
@ -207,7 +207,7 @@ baudrate(void)
|
||||
* that take into account costs that depend on baudrate.
|
||||
*/
|
||||
#ifdef TRACE
|
||||
if (SP && !isatty(fileno(SP->_ofp))
|
||||
if (!isatty(fileno(SP ? SP->_ofp : stdout))
|
||||
&& getenv("BAUDRATE") != 0) {
|
||||
int ret;
|
||||
if ((ret = _nc_getenv_num("BAUDRATE")) <= 0)
|
||||
@ -217,19 +217,22 @@ baudrate(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (cur_term != 0) {
|
||||
#ifdef USE_OLD_TTY
|
||||
result = cfgetospeed(&cur_term->Nttyb);
|
||||
ospeed = _nc_ospeed(result);
|
||||
result = cfgetospeed(&cur_term->Nttyb);
|
||||
ospeed = _nc_ospeed(result);
|
||||
#else /* !USE_OLD_TTY */
|
||||
#ifdef TERMIOS
|
||||
ospeed = cfgetospeed(&cur_term->Nttyb);
|
||||
ospeed = cfgetospeed(&cur_term->Nttyb);
|
||||
#else
|
||||
ospeed = cur_term->Nttyb.sg_ospeed;
|
||||
ospeed = cur_term->Nttyb.sg_ospeed;
|
||||
#endif
|
||||
result = _nc_baudrate(ospeed);
|
||||
result = _nc_baudrate(ospeed);
|
||||
#endif
|
||||
if (cur_term != 0)
|
||||
cur_term->_baudrate = result;
|
||||
} else {
|
||||
result = ERR;
|
||||
}
|
||||
|
||||
returnCode(result);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2003,2008 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 *
|
||||
@ -40,21 +40,45 @@
|
||||
#include <term_entry.h> /* TTY, cur_term */
|
||||
#include <termcap.h> /* ospeed */
|
||||
|
||||
MODULE_ID("$Id: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $")
|
||||
MODULE_ID("$Id: lib_cur_term.c,v 1.18 2008/08/16 19:22:55 tom Exp $")
|
||||
|
||||
#undef CUR
|
||||
#define CUR termp->type.
|
||||
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
NCURSES_EXPORT(TERMINAL *)
|
||||
NCURSES_PUBLIC_VAR(cur_term) (void)
|
||||
{
|
||||
return (SP != 0 && SP->_term != 0) ? SP->_term : _nc_prescreen._cur_term;
|
||||
}
|
||||
#else
|
||||
NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
|
||||
#endif
|
||||
|
||||
NCURSES_EXPORT(TERMINAL *)
|
||||
set_curterm(TERMINAL * termp)
|
||||
{
|
||||
TERMINAL *oldterm = cur_term;
|
||||
TERMINAL *oldterm;
|
||||
|
||||
T((T_CALLED("set_curterm(%p)"), termp));
|
||||
|
||||
if ((cur_term = termp) != 0) {
|
||||
ospeed = _nc_ospeed(cur_term->_baudrate);
|
||||
PC = (pad_char != NULL) ? pad_char[0] : 0;
|
||||
_nc_lock_global(curses);
|
||||
oldterm = cur_term;
|
||||
if (SP)
|
||||
SP->_term = termp;
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
_nc_prescreen._cur_term = termp;
|
||||
#else
|
||||
cur_term = termp;
|
||||
#endif
|
||||
if (termp != 0) {
|
||||
ospeed = _nc_ospeed(termp->_baudrate);
|
||||
if (termp->type.Strings) {
|
||||
PC = (char) ((pad_char != NULL) ? pad_char[0] : 0);
|
||||
}
|
||||
}
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
T((T_RETURN("%p"), oldterm));
|
||||
return (oldterm);
|
||||
}
|
||||
@ -62,15 +86,20 @@ set_curterm(TERMINAL * termp)
|
||||
NCURSES_EXPORT(int)
|
||||
del_curterm(TERMINAL * termp)
|
||||
{
|
||||
int rc = ERR;
|
||||
|
||||
T((T_CALLED("del_curterm(%p)"), termp));
|
||||
|
||||
_nc_lock_global(curses);
|
||||
if (termp != 0) {
|
||||
_nc_free_termtype(&(termp->type));
|
||||
FreeIfNeeded(termp->_termname);
|
||||
free(termp);
|
||||
if (termp == cur_term)
|
||||
cur_term = 0;
|
||||
returnCode(OK);
|
||||
set_curterm(0);
|
||||
rc = OK;
|
||||
}
|
||||
returnCode(ERR);
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
returnCode(rc);
|
||||
}
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: lib_data.c,v 1.43 2008/03/29 21:16:49 tom Exp $")
|
||||
MODULE_ID("$Id: lib_data.c,v 1.52 2008/08/23 22:16:15 tom Exp $")
|
||||
|
||||
/*
|
||||
* OS/2's native linker complains if we don't initialize public data when
|
||||
@ -168,8 +168,6 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
|
||||
NULL, /* tracedmp_buf */
|
||||
0, /* tracedmp_used */
|
||||
|
||||
CHARS_0s, /* tracemse_buf */
|
||||
|
||||
NULL, /* tracetry_buf */
|
||||
0, /* tracetry_used */
|
||||
|
||||
@ -179,13 +177,11 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
|
||||
|
||||
#endif /* TRACE */
|
||||
#ifdef USE_PTHREADS
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_set_SP */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_use_screen */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_use_window */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_windowlist */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_curses */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_tst_tracef */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_tracef */
|
||||
0, /* nested_tracef */
|
||||
0, /* use_pthreads */
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -222,10 +218,14 @@ NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
|
||||
NUM_VARS_0s, /* static_vars */
|
||||
},
|
||||
NULL, /* saved_tty */
|
||||
#if NCURSES_NO_PADDING
|
||||
FALSE, /* flag to set if padding disabled */
|
||||
#endif
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
NULL, /* real_acs_map */
|
||||
0, /* LINES */
|
||||
0, /* COLS */
|
||||
0, /* cur_term */
|
||||
#ifdef TRACE
|
||||
0L, /* _outchars */
|
||||
NULL, /* _tputs_trace */
|
||||
@ -243,15 +243,33 @@ init_global_mutexes(void)
|
||||
|
||||
if (!initialized) {
|
||||
initialized = TRUE;
|
||||
_nc_mutex_init(&_nc_globals.mutex_set_SP);
|
||||
_nc_mutex_init(&_nc_globals.mutex_use_screen);
|
||||
_nc_mutex_init(&_nc_globals.mutex_use_window);
|
||||
_nc_mutex_init(&_nc_globals.mutex_windowlist);
|
||||
_nc_mutex_init(&_nc_globals.mutex_curses);
|
||||
_nc_mutex_init(&_nc_globals.mutex_tst_tracef);
|
||||
_nc_mutex_init(&_nc_globals.mutex_tracef);
|
||||
}
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_init_pthreads(void)
|
||||
{
|
||||
if (_nc_use_pthreads)
|
||||
return;
|
||||
# if USE_WEAK_SYMBOLS
|
||||
if ((pthread_mutex_init) == 0)
|
||||
return;
|
||||
if ((pthread_mutex_lock) == 0)
|
||||
return;
|
||||
if ((pthread_mutex_unlock) == 0)
|
||||
return;
|
||||
if ((pthread_mutex_trylock) == 0)
|
||||
return;
|
||||
if ((pthread_mutexattr_settype) == 0)
|
||||
return;
|
||||
# endif
|
||||
_nc_use_pthreads = 1;
|
||||
init_global_mutexes();
|
||||
}
|
||||
|
||||
/*
|
||||
* Use recursive mutexes if we have them - they're part of Unix98.
|
||||
* For the cases where we do not, _nc_mutex_trylock() is used to avoid a
|
||||
@ -266,29 +284,49 @@ _nc_mutex_init(pthread_mutex_t * obj)
|
||||
{
|
||||
pthread_mutexattr_t recattr;
|
||||
|
||||
memset(&recattr, 0, sizeof(recattr));
|
||||
pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE);
|
||||
pthread_mutex_init(obj, &recattr);
|
||||
if (_nc_use_pthreads) {
|
||||
pthread_mutexattr_init(&recattr);
|
||||
pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE);
|
||||
pthread_mutex_init(obj, &recattr);
|
||||
}
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_mutex_lock(pthread_mutex_t * obj)
|
||||
{
|
||||
init_global_mutexes();
|
||||
if (_nc_use_pthreads == 0)
|
||||
return 0;
|
||||
return pthread_mutex_lock(obj);
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_mutex_trylock(pthread_mutex_t * obj)
|
||||
{
|
||||
init_global_mutexes();
|
||||
if (_nc_use_pthreads == 0)
|
||||
return 0;
|
||||
return pthread_mutex_trylock(obj);
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_mutex_unlock(pthread_mutex_t * obj)
|
||||
{
|
||||
init_global_mutexes();
|
||||
if (_nc_use_pthreads == 0)
|
||||
return 0;
|
||||
return pthread_mutex_unlock(obj);
|
||||
}
|
||||
|
||||
#if USE_WEAK_SYMBOLS
|
||||
/*
|
||||
* NB: sigprocmask(2) is global but pthread_sigmask(3p)
|
||||
* only for the calling thread.
|
||||
*/
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_sigprocmask(int how, const sigset_t * newmask, sigset_t * oldmask)
|
||||
{
|
||||
if ((pthread_sigmask))
|
||||
return pthread_sigmask(how, newmask, oldmask);
|
||||
else
|
||||
return sigprocmask(how, newmask, oldmask);
|
||||
}
|
||||
#endif
|
||||
#endif /* USE_PTHREADS */
|
||||
|
@ -43,7 +43,10 @@
|
||||
|
||||
#include <term.h>
|
||||
|
||||
MODULE_ID("$Id: lib_options.c,v 1.52 2008/05/03 23:09:20 tom Exp $")
|
||||
MODULE_ID("$Id: lib_options.c,v 1.58 2008/08/16 21:20:48 Werner.Fink Exp $")
|
||||
|
||||
static int _nc_curs_set(SCREEN *, int);
|
||||
static int _nc_meta(SCREEN *, bool);
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
idlok(WINDOW *win, bool flag)
|
||||
@ -134,23 +137,11 @@ keypad(WINDOW *win, bool flag)
|
||||
NCURSES_EXPORT(int)
|
||||
meta(WINDOW *win GCC_UNUSED, bool flag)
|
||||
{
|
||||
int result = ERR;
|
||||
int result;
|
||||
|
||||
/* Ok, we stay relaxed and don't signal an error if win is NULL */
|
||||
T((T_CALLED("meta(%p,%d)"), win, flag));
|
||||
|
||||
if (SP != 0) {
|
||||
SP->_use_meta = flag;
|
||||
|
||||
if (flag && meta_on) {
|
||||
TPUTS_TRACE("meta_on");
|
||||
putp(meta_on);
|
||||
} else if (!flag && meta_off) {
|
||||
TPUTS_TRACE("meta_off");
|
||||
putp(meta_off);
|
||||
}
|
||||
result = OK;
|
||||
}
|
||||
result = _nc_meta(SP, flag);
|
||||
returnCode(result);
|
||||
}
|
||||
|
||||
@ -159,43 +150,10 @@ meta(WINDOW *win GCC_UNUSED, bool flag)
|
||||
NCURSES_EXPORT(int)
|
||||
curs_set(int vis)
|
||||
{
|
||||
int result = ERR;
|
||||
int result;
|
||||
|
||||
T((T_CALLED("curs_set(%d)"), vis));
|
||||
if (SP != 0 && vis >= 0 && vis <= 2) {
|
||||
int cursor = SP->_cursor;
|
||||
|
||||
if (vis == cursor) {
|
||||
result = cursor;
|
||||
} else {
|
||||
result = (cursor == -1 ? 1 : cursor);
|
||||
switch (vis) {
|
||||
case 2:
|
||||
if (cursor_visible) {
|
||||
TPUTS_TRACE("cursor_visible");
|
||||
putp(cursor_visible);
|
||||
} else
|
||||
result = ERR;
|
||||
break;
|
||||
case 1:
|
||||
if (cursor_normal) {
|
||||
TPUTS_TRACE("cursor_normal");
|
||||
putp(cursor_normal);
|
||||
} else
|
||||
result = ERR;
|
||||
break;
|
||||
case 0:
|
||||
if (cursor_invisible) {
|
||||
TPUTS_TRACE("cursor_invisible");
|
||||
putp(cursor_invisible);
|
||||
} else
|
||||
result = ERR;
|
||||
break;
|
||||
}
|
||||
SP->_cursor = vis;
|
||||
_nc_flush();
|
||||
}
|
||||
}
|
||||
result = _nc_curs_set(SP, vis);
|
||||
returnCode(result);
|
||||
}
|
||||
|
||||
@ -239,6 +197,35 @@ has_key(int keycode)
|
||||
}
|
||||
#endif /* NCURSES_EXT_FUNCS */
|
||||
|
||||
/*
|
||||
* Internal entrypoints use SCREEN* parameter to obtain capabilities rather
|
||||
* than cur_term.
|
||||
*/
|
||||
#undef CUR
|
||||
#define CUR (sp->_term)->type.
|
||||
|
||||
static int
|
||||
_nc_putp(const char *name GCC_UNUSED, const char *value)
|
||||
{
|
||||
int rc = ERR;
|
||||
|
||||
if (value) {
|
||||
TPUTS_TRACE(name);
|
||||
rc = putp(value);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
_nc_putp_flush(const char *name, const char *value)
|
||||
{
|
||||
int rc = _nc_putp(name, value);
|
||||
if (rc != ERR) {
|
||||
_nc_flush();
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Turn the keypad on/off
|
||||
*
|
||||
* Note: we flush the output because changing this mode causes some terminals
|
||||
@ -249,22 +236,92 @@ has_key(int keycode)
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_keypad(SCREEN *sp, bool flag)
|
||||
{
|
||||
if (flag && keypad_xmit) {
|
||||
TPUTS_TRACE("keypad_xmit");
|
||||
putp(keypad_xmit);
|
||||
_nc_flush();
|
||||
} else if (!flag && keypad_local) {
|
||||
TPUTS_TRACE("keypad_local");
|
||||
putp(keypad_local);
|
||||
_nc_flush();
|
||||
}
|
||||
int rc = ERR;
|
||||
|
||||
if (sp != 0) {
|
||||
if (flag && !sp->_tried) {
|
||||
_nc_init_keytry(sp);
|
||||
sp->_tried = TRUE;
|
||||
#ifdef USE_PTHREADS
|
||||
/*
|
||||
* We might have this situation in a multithreaded application that
|
||||
* has wgetch() reading in more than one thread. putp() and below
|
||||
* may use SP explicitly.
|
||||
*/
|
||||
if (_nc_use_pthreads && sp != SP) {
|
||||
SCREEN *save_sp;
|
||||
|
||||
/* cannot use use_screen(), since that is not in tinfo library */
|
||||
_nc_lock_global(curses);
|
||||
save_sp = SP;
|
||||
_nc_set_screen(sp);
|
||||
rc = _nc_keypad(sp, flag);
|
||||
_nc_set_screen(save_sp);
|
||||
_nc_unlock_global(curses);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
if (flag) {
|
||||
(void) _nc_putp_flush("keypad_xmit", keypad_xmit);
|
||||
} else if (!flag && keypad_local) {
|
||||
(void) _nc_putp_flush("keypad_local", keypad_local);
|
||||
}
|
||||
|
||||
if (flag && !sp->_tried) {
|
||||
_nc_init_keytry(sp);
|
||||
sp->_tried = TRUE;
|
||||
}
|
||||
sp->_keypad_on = flag;
|
||||
rc = OK;
|
||||
}
|
||||
sp->_keypad_on = flag;
|
||||
}
|
||||
return (OK);
|
||||
return (rc);
|
||||
}
|
||||
|
||||
static int
|
||||
_nc_curs_set(SCREEN *sp, int vis)
|
||||
{
|
||||
int result = ERR;
|
||||
|
||||
T((T_CALLED("curs_set(%d)"), vis));
|
||||
if (sp != 0 && vis >= 0 && vis <= 2) {
|
||||
int cursor = sp->_cursor;
|
||||
|
||||
if (vis == cursor) {
|
||||
result = cursor;
|
||||
} else {
|
||||
switch (vis) {
|
||||
case 2:
|
||||
result = _nc_putp_flush("cursor_visible", cursor_visible);
|
||||
break;
|
||||
case 1:
|
||||
result = _nc_putp_flush("cursor_normal", cursor_normal);
|
||||
break;
|
||||
case 0:
|
||||
result = _nc_putp_flush("cursor_invisible", cursor_invisible);
|
||||
break;
|
||||
}
|
||||
if (result != ERR)
|
||||
result = (cursor == -1 ? 1 : cursor);
|
||||
sp->_cursor = vis;
|
||||
}
|
||||
}
|
||||
returnCode(result);
|
||||
}
|
||||
|
||||
static int
|
||||
_nc_meta(SCREEN *sp, bool flag)
|
||||
{
|
||||
int result = ERR;
|
||||
|
||||
/* Ok, we stay relaxed and don't signal an error if win is NULL */
|
||||
|
||||
if (SP != 0) {
|
||||
SP->_use_meta = flag;
|
||||
|
||||
if (flag) {
|
||||
_nc_putp("meta_on", meta_on);
|
||||
} else {
|
||||
_nc_putp("meta_off", meta_off);
|
||||
}
|
||||
result = OK;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@
|
||||
|
||||
#include <term.h> /* lines, columns, cur_term */
|
||||
|
||||
MODULE_ID("$Id: lib_setup.c,v 1.105 2008/05/03 22:41:42 tom Exp $")
|
||||
MODULE_ID("$Id: lib_setup.c,v 1.111 2008/08/03 22:42:33 tom Exp $")
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
@ -99,6 +99,12 @@ MODULE_ID("$Id: lib_setup.c,v 1.105 2008/05/03 22:41:42 tom Exp $")
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Reduce explicit use of "cur_term" global variable.
|
||||
*/
|
||||
#undef CUR
|
||||
#define CUR termp->type.
|
||||
|
||||
/*
|
||||
* Wrap global variables in this module.
|
||||
*/
|
||||
@ -109,15 +115,25 @@ NCURSES_PUBLIC_VAR(ttytype) (void)
|
||||
static char empty[] = "";
|
||||
return cur_term ? cur_term->type.term_names : empty;
|
||||
}
|
||||
NCURSES_EXPORT(int *)
|
||||
_nc_ptr_Lines(void)
|
||||
{
|
||||
return ptrLines();
|
||||
}
|
||||
NCURSES_EXPORT(int)
|
||||
NCURSES_PUBLIC_VAR(LINES) (void)
|
||||
{
|
||||
return (SP ? SP->_LINES : _nc_prescreen._LINES);
|
||||
return *_nc_ptr_Lines();
|
||||
}
|
||||
NCURSES_EXPORT(int *)
|
||||
_nc_ptr_Cols(void)
|
||||
{
|
||||
return ptrCols();
|
||||
}
|
||||
NCURSES_EXPORT(int)
|
||||
NCURSES_PUBLIC_VAR(COLS) (void)
|
||||
{
|
||||
return SP ? SP->_COLS : _nc_prescreen._COLS;
|
||||
return *_nc_ptr_Cols();
|
||||
}
|
||||
NCURSES_EXPORT(int)
|
||||
NCURSES_PUBLIC_VAR(TABSIZE) (void)
|
||||
@ -183,6 +199,7 @@ NCURSES_EXPORT(void)
|
||||
_nc_get_screensize(SCREEN *sp, int *linep, int *colp)
|
||||
/* Obtain lines/columns values from the environment and/or terminfo entry */
|
||||
{
|
||||
TERMINAL *termp = cur_term;
|
||||
int my_tabsize;
|
||||
|
||||
/* figure out the size of the screen */
|
||||
@ -287,6 +304,7 @@ _nc_get_screensize(SCREEN *sp, int *linep, int *colp)
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_update_screensize(SCREEN *sp)
|
||||
{
|
||||
TERMINAL *termp = cur_term;
|
||||
int old_lines = lines;
|
||||
int new_lines;
|
||||
int old_cols = columns;
|
||||
@ -369,21 +387,23 @@ grab_entry(const char *const tn, TERMTYPE *const tp)
|
||||
** and substitute it in for the prototype given in 'command_character'.
|
||||
*/
|
||||
static void
|
||||
do_prototype(void)
|
||||
do_prototype(TERMINAL * termp)
|
||||
{
|
||||
int i;
|
||||
unsigned i;
|
||||
char CC;
|
||||
char proto;
|
||||
char *tmp;
|
||||
|
||||
tmp = getenv("CC");
|
||||
CC = *tmp;
|
||||
proto = *command_character;
|
||||
if ((tmp = getenv("CC")) != 0) {
|
||||
if ((CC = *tmp) != 0) {
|
||||
proto = *command_character;
|
||||
|
||||
for_each_string(i, &(cur_term->type)) {
|
||||
for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) {
|
||||
if (*tmp == proto)
|
||||
*tmp = CC;
|
||||
for_each_string(i, &(termp->type)) {
|
||||
for (tmp = termp->type.Strings[i]; *tmp; tmp++) {
|
||||
if (*tmp == proto)
|
||||
*tmp = CC;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -443,7 +463,7 @@ _nc_unicode_locale(void)
|
||||
* character set.
|
||||
*/
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_locale_breaks_acs(void)
|
||||
_nc_locale_breaks_acs(TERMINAL * termp)
|
||||
{
|
||||
char *env;
|
||||
|
||||
@ -473,6 +493,7 @@ _nc_locale_breaks_acs(void)
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
|
||||
{
|
||||
TERMINAL *termp;
|
||||
int status;
|
||||
|
||||
START_TRACE();
|
||||
@ -517,23 +538,22 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
|
||||
* properly with this feature).
|
||||
*/
|
||||
if (reuse
|
||||
&& cur_term != 0
|
||||
&& cur_term->Filedes == Filedes
|
||||
&& cur_term->_termname != 0
|
||||
&& !strcmp(cur_term->_termname, tname)
|
||||
&& _nc_name_match(cur_term->type.term_names, tname, "|")) {
|
||||
&& (termp = cur_term) != 0
|
||||
&& termp->Filedes == Filedes
|
||||
&& termp->_termname != 0
|
||||
&& !strcmp(termp->_termname, tname)
|
||||
&& _nc_name_match(termp->type.term_names, tname, "|")) {
|
||||
T(("reusing existing terminal information and mode-settings"));
|
||||
} else {
|
||||
TERMINAL *term_ptr;
|
||||
|
||||
term_ptr = typeCalloc(TERMINAL, 1);
|
||||
termp = typeCalloc(TERMINAL, 1);
|
||||
|
||||
if (term_ptr == 0) {
|
||||
if (termp == 0) {
|
||||
ret_error0(TGETENT_ERR,
|
||||
"Not enough memory to create terminal structure.\n");
|
||||
}
|
||||
#if USE_DATABASE || USE_TERMCAP
|
||||
status = grab_entry(tname, &term_ptr->type);
|
||||
status = grab_entry(tname, &termp->type);
|
||||
#else
|
||||
status = TGETENT_NO;
|
||||
#endif
|
||||
@ -543,32 +563,31 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
|
||||
const TERMTYPE *fallback = _nc_fallback(tname);
|
||||
|
||||
if (fallback) {
|
||||
term_ptr->type = *fallback;
|
||||
termp->type = *fallback;
|
||||
status = TGETENT_YES;
|
||||
}
|
||||
}
|
||||
|
||||
if (status != TGETENT_YES) {
|
||||
del_curterm(term_ptr);
|
||||
del_curterm(termp);
|
||||
if (status == TGETENT_ERR) {
|
||||
ret_error0(status, "terminals database is inaccessible\n");
|
||||
} else if (status == TGETENT_NO) {
|
||||
ret_error(status, "'%s': unknown terminal type.\n", tname);
|
||||
}
|
||||
}
|
||||
|
||||
set_curterm(term_ptr);
|
||||
|
||||
if (command_character && getenv("CC"))
|
||||
do_prototype();
|
||||
|
||||
#if !USE_REENTRANT
|
||||
strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
|
||||
strncpy(ttytype, termp->type.term_names, NAMESIZE - 1);
|
||||
ttytype[NAMESIZE - 1] = '\0';
|
||||
#endif
|
||||
|
||||
cur_term->Filedes = Filedes;
|
||||
cur_term->_termname = strdup(tname);
|
||||
termp->Filedes = Filedes;
|
||||
termp->_termname = strdup(tname);
|
||||
|
||||
set_curterm(termp);
|
||||
|
||||
if (command_character && getenv("CC"))
|
||||
do_prototype(termp);
|
||||
|
||||
/*
|
||||
* If an application calls setupterm() rather than initscr() or
|
||||
@ -585,13 +604,7 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
|
||||
/*
|
||||
* We should always check the screensize, just in case.
|
||||
*/
|
||||
#if USE_REENTRANT
|
||||
_nc_get_screensize(SP,
|
||||
SP ? &(SP->_LINES) : &(_nc_prescreen._LINES),
|
||||
SP ? &(SP->_COLS) : &(_nc_prescreen._COLS));
|
||||
#else
|
||||
_nc_get_screensize(SP, &LINES, &COLS);
|
||||
#endif
|
||||
_nc_get_screensize(SP, ptrLines(), ptrCols());
|
||||
|
||||
if (errret)
|
||||
*errret = TGETENT_YES;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -45,7 +45,7 @@
|
||||
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: lib_termcap.c,v 1.61 2007/06/02 19:36:03 tom Exp $")
|
||||
MODULE_ID("$Id: lib_termcap.c,v 1.63 2008/08/16 19:22:55 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT_VAR(char *) UP = 0;
|
||||
NCURSES_EXPORT_VAR(char *) BC = 0;
|
||||
@ -142,7 +142,7 @@ tgetent(char *bufp, const char *name)
|
||||
if (errcode == 1) {
|
||||
|
||||
if (cursor_left)
|
||||
if ((backspaces_with_bs = !strcmp(cursor_left, "\b")) == 0)
|
||||
if ((backspaces_with_bs = (char) !strcmp(cursor_left, "\b")) == 0)
|
||||
backspace_if_not_bs = cursor_left;
|
||||
|
||||
/* we're required to export these */
|
||||
@ -164,6 +164,7 @@ tgetent(char *bufp, const char *name)
|
||||
LAST_BUF = bufp;
|
||||
LAST_USE = TRUE;
|
||||
|
||||
SetNoPadding(SP);
|
||||
(void) baudrate(); /* sets ospeed as a side-effect */
|
||||
|
||||
/* LINT_PREPRO
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 2000-2003,2006 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 2000-2006,2008 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 *
|
||||
@ -35,7 +35,7 @@
|
||||
#include <ctype.h>
|
||||
#include <termcap.h>
|
||||
|
||||
MODULE_ID("$Id: lib_tgoto.c,v 1.12 2006/11/26 00:26:24 tom Exp $")
|
||||
MODULE_ID("$Id: lib_tgoto.c,v 1.13 2008/08/16 19:29:32 tom Exp $")
|
||||
|
||||
#if !PURE_TERMINFO
|
||||
static bool
|
||||
@ -128,7 +128,7 @@ tgoto_internal(const char *string, int x, int y)
|
||||
*value = 0200; /* tputs will treat this as \0 */
|
||||
}
|
||||
}
|
||||
result[used++] = *value++;
|
||||
result[used++] = (char) *value++;
|
||||
break;
|
||||
case '%':
|
||||
result[used++] = *string;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -43,7 +43,7 @@
|
||||
#include <term.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: lib_tparm.c,v 1.74 2007/09/29 20:37:13 tom Exp $")
|
||||
MODULE_ID("$Id: lib_tparm.c,v 1.76 2008/08/16 19:22:55 tom Exp $")
|
||||
|
||||
/*
|
||||
* char *
|
||||
@ -166,7 +166,7 @@ save_char(int c)
|
||||
if (c == 0)
|
||||
c = 0200;
|
||||
get_space(1);
|
||||
TPS(out_buff)[TPS(out_used)++] = c;
|
||||
TPS(out_buff)[TPS(out_used)++] = (char) c;
|
||||
}
|
||||
|
||||
static NCURSES_INLINE void
|
||||
@ -504,8 +504,12 @@ tparam_internal(const char *string, va_list ap)
|
||||
TPS(stack_ptr) = 0;
|
||||
if (popcount == 0) {
|
||||
popcount = number;
|
||||
for (i = number - 1; i >= 0; i--)
|
||||
npush(param[i]);
|
||||
for (i = number - 1; i >= 0; i--) {
|
||||
if (p_is_s[i])
|
||||
spush(p_is_s[i]);
|
||||
else
|
||||
npush(param[i]);
|
||||
}
|
||||
}
|
||||
#ifdef TRACE
|
||||
if (USE_TRACEF(TRACE_CALLS)) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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,6 +29,7 @@
|
||||
/****************************************************************************
|
||||
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
|
||||
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
|
||||
* and: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
@ -45,13 +46,29 @@
|
||||
#include <termcap.h> /* ospeed */
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: lib_tputs.c,v 1.64 2007/09/29 20:37:13 tom Exp $")
|
||||
MODULE_ID("$Id: lib_tputs.c,v 1.66 2008/06/28 13:12:15 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
|
||||
NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
|
||||
|
||||
NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */
|
||||
|
||||
#if NCURSES_NO_PADDING
|
||||
NCURSES_EXPORT(void)
|
||||
_nc_set_no_padding(SCREEN *sp)
|
||||
{
|
||||
bool no_padding = (getenv("NCURSES_NO_PADDING") != 0);
|
||||
|
||||
if (sp)
|
||||
sp->_no_padding = no_padding;
|
||||
else
|
||||
_nc_prescreen._no_padding = no_padding;
|
||||
|
||||
TR(TRACE_CHARPUT | TRACE_MOVE, ("padding will%s be used",
|
||||
GetNoPadding(sp) ? " not" : ""));
|
||||
}
|
||||
#endif
|
||||
|
||||
static int (*my_outch) (int c) = _nc_outch;
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
@ -147,7 +164,7 @@ tputs(const char *string, int affcnt, int (*outc) (int))
|
||||
!xon_xoff
|
||||
&& padding_baud_rate
|
||||
#if NCURSES_NO_PADDING
|
||||
&& (SP == 0 || !(SP->_no_padding))
|
||||
&& !GetNoPadding(SP)
|
||||
#endif
|
||||
&& (_nc_baudrate(ospeed) >= padding_baud_rate);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <term.h> /* cur_term */
|
||||
|
||||
MODULE_ID("$Id: lib_ttyflags.c,v 1.16 2008/05/03 22:39:03 tom Exp $")
|
||||
MODULE_ID("$Id: lib_ttyflags.c,v 1.18 2008/08/03 22:10:44 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_get_tty_mode(TTY * buf)
|
||||
@ -65,7 +65,8 @@ _nc_get_tty_mode(TTY * buf)
|
||||
memset(buf, 0, sizeof(*buf));
|
||||
|
||||
TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
|
||||
cur_term->Filedes, _nc_trace_ttymode(buf)));
|
||||
cur_term ? cur_term->Filedes : -1,
|
||||
_nc_trace_ttymode(buf)));
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
@ -93,7 +94,8 @@ _nc_set_tty_mode(TTY * buf)
|
||||
}
|
||||
}
|
||||
TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
|
||||
cur_term->Filedes, _nc_trace_ttymode(buf)));
|
||||
cur_term ? cur_term->Filedes : -1,
|
||||
_nc_trace_ttymode(buf)));
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
@ -101,41 +103,49 @@ _nc_set_tty_mode(TTY * buf)
|
||||
NCURSES_EXPORT(int)
|
||||
def_shell_mode(void)
|
||||
{
|
||||
int rc = ERR;
|
||||
|
||||
T((T_CALLED("def_shell_mode()")));
|
||||
|
||||
/*
|
||||
* If XTABS was on, remove the tab and backtab capabilities.
|
||||
*/
|
||||
|
||||
if (_nc_get_tty_mode(&cur_term->Ottyb) != OK)
|
||||
returnCode(ERR);
|
||||
if (cur_term != 0) {
|
||||
/*
|
||||
* If XTABS was on, remove the tab and backtab capabilities.
|
||||
*/
|
||||
if (_nc_get_tty_mode(&cur_term->Ottyb) == OK) {
|
||||
#ifdef TERMIOS
|
||||
if (cur_term->Ottyb.c_oflag & OFLAGS_TABS)
|
||||
tab = back_tab = NULL;
|
||||
if (cur_term->Ottyb.c_oflag & OFLAGS_TABS)
|
||||
tab = back_tab = NULL;
|
||||
#else
|
||||
if (cur_term->Ottyb.sg_flags & XTABS)
|
||||
tab = back_tab = NULL;
|
||||
if (cur_term->Ottyb.sg_flags & XTABS)
|
||||
tab = back_tab = NULL;
|
||||
#endif
|
||||
returnCode(OK);
|
||||
rc = OK;
|
||||
}
|
||||
}
|
||||
returnCode(rc);
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
def_prog_mode(void)
|
||||
{
|
||||
int rc = ERR;
|
||||
|
||||
T((T_CALLED("def_prog_mode()")));
|
||||
|
||||
/*
|
||||
* Turn off the XTABS bit in the tty structure if it was on.
|
||||
*/
|
||||
|
||||
if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
|
||||
returnCode(ERR);
|
||||
if (cur_term != 0) {
|
||||
/*
|
||||
* Turn off the XTABS bit in the tty structure if it was on.
|
||||
*/
|
||||
if (_nc_get_tty_mode(&cur_term->Nttyb) == OK) {
|
||||
#ifdef TERMIOS
|
||||
cur_term->Nttyb.c_oflag &= ~OFLAGS_TABS;
|
||||
cur_term->Nttyb.c_oflag &= ~OFLAGS_TABS;
|
||||
#else
|
||||
cur_term->Nttyb.sg_flags &= ~XTABS;
|
||||
cur_term->Nttyb.sg_flags &= ~XTABS;
|
||||
#endif
|
||||
returnCode(OK);
|
||||
rc = OK;
|
||||
}
|
||||
}
|
||||
returnCode(rc);
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Thomas E. Dickey <dickey@clark.net> 1997 *
|
||||
* Author: Thomas E. Dickey 1997-on *
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
@ -39,7 +39,7 @@
|
||||
#define USE_TERMLIB 1
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: make_keys.c,v 1.13 2007/01/07 00:00:14 tom Exp $")
|
||||
MODULE_ID("$Id: make_keys.c,v 1.14 2008/08/03 21:57:22 tom Exp $")
|
||||
|
||||
#include <names.c>
|
||||
|
||||
@ -71,14 +71,20 @@ static void
|
||||
make_keys(FILE *ifp, FILE *ofp)
|
||||
{
|
||||
char buffer[BUFSIZ];
|
||||
char from[BUFSIZ];
|
||||
char to[BUFSIZ];
|
||||
char from[256];
|
||||
char to[256];
|
||||
int maxlen = 16;
|
||||
int scanned;
|
||||
|
||||
while (fgets(buffer, sizeof(buffer), ifp) != 0) {
|
||||
if (*buffer == '#')
|
||||
continue;
|
||||
if (sscanf(buffer, "%s %s", to, from) == 2) {
|
||||
|
||||
to[sizeof(to) - 1] = '\0';
|
||||
from[sizeof(from) - 1] = '\0';
|
||||
|
||||
scanned = sscanf(buffer, "%255s %255s", to, from);
|
||||
if (scanned == 2) {
|
||||
int code = lookup(from);
|
||||
if (code == UNKNOWN)
|
||||
continue;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1999-2005,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1999-2007,2008 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,14 +27,14 @@
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Thomas E. Dickey <dickey@clark.net> 1999 *
|
||||
* Author: Thomas E. Dickey 1999-on *
|
||||
****************************************************************************/
|
||||
|
||||
#include <curses.priv.h>
|
||||
#include <term.h>
|
||||
#include <tic.h>
|
||||
|
||||
MODULE_ID("$Id: name_match.c,v 1.16 2007/04/21 21:28:13 tom Exp $")
|
||||
MODULE_ID("$Id: name_match.c,v 1.17 2008/08/03 19:49:33 tom Exp $")
|
||||
|
||||
/*
|
||||
* _nc_first_name(char *names)
|
||||
@ -53,18 +53,21 @@ _nc_first_name(const char *const sp)
|
||||
if (sp == 0) {
|
||||
if (FirstName != 0)
|
||||
FreeAndNull(FirstName);
|
||||
return 0;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
if (FirstName == 0)
|
||||
FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
|
||||
|
||||
if (FirstName == 0)
|
||||
FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
|
||||
for (n = 0; n < MAX_NAME_SIZE; n++) {
|
||||
if ((FirstName[n] = sp[n]) == '\0'
|
||||
|| (FirstName[n] == '|'))
|
||||
break;
|
||||
if (FirstName != 0) {
|
||||
for (n = 0; n < MAX_NAME_SIZE; n++) {
|
||||
if ((FirstName[n] = sp[n]) == '\0'
|
||||
|| (FirstName[n] == '|'))
|
||||
break;
|
||||
}
|
||||
FirstName[n] = '\0';
|
||||
}
|
||||
}
|
||||
FirstName[n] = '\0';
|
||||
return (FirstName);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -48,7 +48,7 @@
|
||||
#include <tic.h>
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: parse_entry.c,v 1.65 2007/08/11 16:19:02 tom Exp $")
|
||||
MODULE_ID("$Id: parse_entry.c,v 1.69 2008/08/16 21:52:03 tom Exp $")
|
||||
|
||||
#ifdef LINT
|
||||
static short const parametrized[] =
|
||||
@ -245,6 +245,9 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
|
||||
|
||||
entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr);
|
||||
|
||||
if (entryp->tterm.str_table == 0)
|
||||
return (ERR);
|
||||
|
||||
DEBUG(1, ("Starting '%s'", ptr));
|
||||
|
||||
/*
|
||||
@ -372,26 +375,28 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
|
||||
* type, this will do the job.
|
||||
*/
|
||||
|
||||
/* tell max_attributes from arrow_key_map */
|
||||
if (token_type == NUMBER
|
||||
&& !strcmp("ma", _nc_curr_token.tk_name)) {
|
||||
/* tell max_attributes from arrow_key_map */
|
||||
entry_ptr = _nc_find_type_entry("ma", NUMBER,
|
||||
_nc_get_table(_nc_syntax
|
||||
!= 0));
|
||||
assert(entry_ptr != 0);
|
||||
|
||||
/* map terminfo's string MT to MT */
|
||||
} else if (token_type == STRING
|
||||
&& !strcmp("MT", _nc_curr_token.tk_name)) {
|
||||
/* map terminfo's string MT to MT */
|
||||
entry_ptr = _nc_find_type_entry("MT", STRING,
|
||||
_nc_get_table(_nc_syntax
|
||||
!= 0));
|
||||
assert(entry_ptr != 0);
|
||||
|
||||
/* treat strings without following "=" as empty strings */
|
||||
} else if (token_type == BOOLEAN
|
||||
&& entry_ptr->nte_type == STRING) {
|
||||
/* treat strings without following "=" as empty strings */
|
||||
token_type = STRING;
|
||||
/* we couldn't recover; skip this token */
|
||||
} else {
|
||||
/* we couldn't recover; skip this token */
|
||||
if (!silent) {
|
||||
const char *type_name;
|
||||
switch (entry_ptr->nte_type) {
|
||||
@ -454,7 +459,7 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
|
||||
default:
|
||||
if (!silent)
|
||||
_nc_warning("unknown token type");
|
||||
_nc_panic_mode((_nc_syntax == SYN_TERMCAP) ? ':' : ',');
|
||||
_nc_panic_mode((char) ((_nc_syntax == SYN_TERMCAP) ? ':' : ','));
|
||||
continue;
|
||||
}
|
||||
} /* end else cur_token.name != "use" */
|
||||
@ -474,7 +479,7 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
|
||||
if (!literal) {
|
||||
if (_nc_syntax == SYN_TERMCAP) {
|
||||
bool has_base_entry = FALSE;
|
||||
int i;
|
||||
unsigned i;
|
||||
|
||||
/*
|
||||
* Don't insert defaults if this is a `+' entry meant only
|
||||
@ -549,8 +554,8 @@ append_acs0(string_desc * dst, int code, int src)
|
||||
{
|
||||
if (src != 0) {
|
||||
char temp[3];
|
||||
temp[0] = code;
|
||||
temp[1] = src;
|
||||
temp[0] = (char) code;
|
||||
temp[1] = (char) src;
|
||||
temp[2] = 0;
|
||||
_nc_safe_strcat(dst, temp);
|
||||
}
|
||||
@ -785,11 +790,12 @@ postprocess_termcap(TERMTYPE *tp, bool has_base)
|
||||
base = cp + 1) {
|
||||
size_t len = cp - base;
|
||||
|
||||
for (ap = ko_xlate; ap->from; ap++)
|
||||
for (ap = ko_xlate; ap->from; ap++) {
|
||||
if (len == strlen(ap->from)
|
||||
&& strncmp(ap->from, base, len) == 0)
|
||||
break;
|
||||
if (!ap->to) {
|
||||
}
|
||||
if (!(ap->from && ap->to)) {
|
||||
_nc_warning("unknown capability `%.*s' in ko string",
|
||||
(int) len, base);
|
||||
continue;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-2007,2008 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 *
|
||||
@ -42,7 +42,7 @@
|
||||
#include <tic.h>
|
||||
#include <term_entry.h>
|
||||
|
||||
MODULE_ID("$Id: read_entry.c,v 1.100 2007/11/17 23:56:50 tom Exp $")
|
||||
MODULE_ID("$Id: read_entry.c,v 1.102 2008/08/03 19:33:04 tom Exp $")
|
||||
|
||||
#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
|
||||
|
||||
@ -73,7 +73,7 @@ convert_strings(char *buf, char **Strings, int count, int size, char *table)
|
||||
Strings[i] = ABSENT_STRING;
|
||||
} else if (IS_NEG2(buf + 2 * i)) {
|
||||
Strings[i] = CANCELLED_STRING;
|
||||
} else if (LOW_MSB(buf + 2 * i) > size) {
|
||||
} else if ((int) LOW_MSB(buf + 2 * i) > size) {
|
||||
Strings[i] = ABSENT_STRING;
|
||||
} else {
|
||||
Strings[i] = (LOW_MSB(buf + 2 * i) + table);
|
||||
@ -313,6 +313,8 @@ _nc_read_termtype(TERMTYPE *ptr, char *buffer, int limit)
|
||||
}
|
||||
|
||||
if (need) {
|
||||
if (ext_str_count >= (MAX_ENTRY_SIZE * 2))
|
||||
return (TGETENT_NO);
|
||||
if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0)
|
||||
return (TGETENT_NO);
|
||||
TR(TRACE_DATABASE,
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
#include <curses.priv.h>
|
||||
|
||||
MODULE_ID("$Id: use_screen.c,v 1.4 2008/03/29 21:19:58 tom Exp $")
|
||||
MODULE_ID("$Id: use_screen.c,v 1.6 2008/06/07 19:16:56 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data)
|
||||
@ -46,15 +46,13 @@ use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data)
|
||||
* FIXME - add a flag so a given thread can check if _it_ has already
|
||||
* recurred through this point, return an error if so.
|
||||
*/
|
||||
_nc_lock_global(use_screen);
|
||||
_nc_lock_global(curses);
|
||||
save_SP = SP;
|
||||
set_term(screen);
|
||||
|
||||
code = func(screen, data);
|
||||
|
||||
set_term(save_SP);
|
||||
_nc_unlock_global(use_screen);
|
||||
_nc_unlock_global(curses);
|
||||
returnCode(code);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user