ncurses: import version 6.2-20210220
This commit is contained in:
commit
7a65641922
@ -1,4 +1,4 @@
|
||||
Copyright 2018-2019,2020 Thomas E. Dickey
|
||||
Copyright 2018-2020,2021 Thomas E. Dickey
|
||||
Copyright 1998-2017,2018 Free Software Foundation, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@ -26,4 +26,4 @@ sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
-- vile:txtmode fc=72
|
||||
-- $Id: COPYING,v 1.9 2020/02/08 13:34:12 tom Exp $
|
||||
-- $Id: COPYING,v 1.10 2021/01/01 09:54:30 tom Exp $
|
||||
|
@ -26,7 +26,7 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: INSTALL,v 1.217 2020/02/15 13:39:30 tom Exp $
|
||||
-- $Id: INSTALL,v 1.226 2020/09/06 23:41:16 tom Exp $
|
||||
---------------------------------------------------------------------
|
||||
How to install Ncurses/Terminfo on your system
|
||||
---------------------------------------------------------------------
|
||||
@ -41,7 +41,7 @@ including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs',
|
||||
and `test'. See the README file for a roadmap to the package.
|
||||
|
||||
If you are a distribution integrator or packager, please read and act on the
|
||||
section titled IF YOU ARE A SYSTEM INTEGRATOR below.
|
||||
section titled FOR SYSTEM INTEGRATORS below.
|
||||
|
||||
If you are converting from BSD curses and do not have root access, be sure
|
||||
to read the BSD CONVERSION NOTES section below.
|
||||
@ -49,11 +49,7 @@ to read the BSD CONVERSION NOTES section below.
|
||||
If you are trying to build applications using gpm with ncurses,
|
||||
read the USING NCURSES WITH GPM section below.
|
||||
|
||||
If you are running over the Andrew File System see the note below on
|
||||
USING NCURSES WITH AFS.
|
||||
|
||||
If you are cross-compiling, see the note below on BUILDING NCURSES WITH A
|
||||
CROSS-COMPILER.
|
||||
If you are cross-compiling, see the note below on BUILDING WITH A CROSS-COMPILER.
|
||||
|
||||
If you want to build the Ada95 binding, go to the Ada95 directory and
|
||||
follow the instructions there. The Ada95 binding is not covered below.
|
||||
@ -270,8 +266,8 @@ INSTALLATION PROCEDURE:
|
||||
YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++.
|
||||
|
||||
|
||||
SUMMARY OF CONFIGURE OPTIONS:
|
||||
----------------------------
|
||||
CONFIGURE OPTIONS:
|
||||
-----------------
|
||||
|
||||
The configure script provides a short list of its options when you type
|
||||
|
||||
@ -439,6 +435,31 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
Without some special effort, it will either fail to compile at all,
|
||||
or the compiler may find a different unctrl.h file.
|
||||
|
||||
In addition to the curses library, a system may provide its own
|
||||
versions of the add-on libraries (form, menu, panel), which would
|
||||
not be compatible with ncurses. These options allow you to rename
|
||||
ncurses' add-on libraries to avoid conflicts when linking:
|
||||
|
||||
--with-form-libname=XXX
|
||||
--with-menu-libname=XXX
|
||||
--with-panel-libname=XXX
|
||||
|
||||
Rather than renaming them abitrarily, a prefix or suffix is
|
||||
recommended. An "n" prefix provides consistency with ncurses versus
|
||||
curses, i.e.,
|
||||
|
||||
--with-form-libname=nform
|
||||
--with-menu-libname=nmenu
|
||||
--with-panel-libname=npanel
|
||||
|
||||
--disable-pkg-ldflags
|
||||
Omit options in $EXTRA_LDFLAGS from the pkg-config ".pc" and
|
||||
corresponding ncurses*-config script which normally are listed via
|
||||
the "--libs" option. These options are normally used to facilitate
|
||||
linking to ncurses when it was configured to use the rpath feature.
|
||||
|
||||
See also --enable-rpath and --disable-rpath-hack.
|
||||
|
||||
--disable-relink
|
||||
If --enable-rpath is given, the generated makefiles normally will
|
||||
rebuild shared libraries during install. Use this option to simply
|
||||
@ -561,6 +582,9 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
For testing, generate functions for certain macros to make them visible
|
||||
as such to the debugger. See also the --disable-macros option.
|
||||
|
||||
--enable-exp-win32
|
||||
When configuring for MinGW, use the experimental Windows 10 driver.
|
||||
|
||||
--enable-ext-colors
|
||||
Extend the cchar_t structure to allow more than 16 colors to be
|
||||
encoded. This applies only to the wide-character (--enable-widec)
|
||||
@ -587,6 +611,12 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
ncurses. This does not change the ABI (the binary interface seen by
|
||||
calling applications).
|
||||
|
||||
--enable-fvisibility
|
||||
Use the gcc "-fvisibility=hidden" option to make symbols which are not
|
||||
explicitly exported, "hidden". Doing this may reduce the number of
|
||||
symbols exported in the C++ binding; it should have less effect on the
|
||||
C libraries when symbol-versioning is used.
|
||||
|
||||
--enable-getcap
|
||||
Use the 4.4BSD getcap code if available, or a bundled version of it to
|
||||
fetch termcap entries. Entries read in this way cannot use (make
|
||||
@ -864,6 +894,9 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
Specify a suffix for the ncursesw6-config file, etc., used to work
|
||||
around conflicts with packages.
|
||||
|
||||
--with-cxx-libname=NAME
|
||||
Override the basename of the ncurses++ library (default: "ncurses++")
|
||||
|
||||
--with-cxx-shared
|
||||
When --with-shared is set, build libncurses++ as a shared library.
|
||||
This implicitly relies upon building with gcc/g++, since other
|
||||
@ -909,6 +942,9 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
|
||||
See also "--with-tic-path" and "--with-infocmp-path".
|
||||
|
||||
--with-form-libname=NAME
|
||||
Override the basename of the form library (default: "form")
|
||||
|
||||
--with-gpm
|
||||
use Alessandro Rubini's GPM library to provide mouse support on the
|
||||
Linux console. Prior to ncurses 5.5, this introduced a dependency on
|
||||
@ -1043,6 +1079,9 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
by running them through tbl to generate tables understandable by
|
||||
nroff.
|
||||
|
||||
--with-menu-libname=NAME
|
||||
Override the basename of the menu library (default: "menu")
|
||||
|
||||
--with-mmask-t=TYPE
|
||||
Override type of mmask_t, which stores the mouse mask. Prior to
|
||||
ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it
|
||||
@ -1070,6 +1109,9 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
those using termcap, do not use the higher speeds. Your application
|
||||
(or system, in general) may or may not.
|
||||
|
||||
--with-panel-libname=NAME
|
||||
Override the basename of the panel library (default: "panel")
|
||||
|
||||
--with-pc-suffix=SUFFIX
|
||||
If ".pc" files are installed, optionally add a suffix to the files
|
||||
and corresponding package names to separate unusual configurations.
|
||||
@ -1328,8 +1370,8 @@ SUMMARY OF CONFIGURE OPTIONS:
|
||||
X11R5 and X11R6 xterm.
|
||||
|
||||
|
||||
COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
|
||||
--------------------------------------------
|
||||
COMPATIBILITY WITH OLDER RELEASES:
|
||||
---------------------------------
|
||||
|
||||
Because ncurses implements X/Open Curses, its interface is fairly stable.
|
||||
That does not mean the interface does not change. Changes are made to the
|
||||
@ -2053,8 +2095,8 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
|
||||
incorrect color scheme.
|
||||
|
||||
|
||||
IF YOU ARE A SYSTEM INTEGRATOR:
|
||||
------------------------------
|
||||
FOR SYSTEM INTEGRATORS:
|
||||
----------------------
|
||||
|
||||
Configuration and Installation:
|
||||
|
||||
@ -2130,7 +2172,7 @@ IF YOU ARE A SYSTEM INTEGRATOR:
|
||||
that will make users' lives easier rather than harder.
|
||||
|
||||
|
||||
RECENT XTERM VERSIONS:
|
||||
MODERN XTERM VERSIONS:
|
||||
---------------------
|
||||
|
||||
The terminfo database file included with this distribution assumes you
|
||||
@ -2146,9 +2188,13 @@ CONFIGURING FALLBACK ENTRIES:
|
||||
In order to support operation of ncurses programs before the terminfo
|
||||
tree is accessible (that is, in single-user mode or at OS installation
|
||||
time) the ncurses library can be compiled to include an array of
|
||||
pre-fetched fallback entries. This must be done on a machine which
|
||||
has ncurses' infocmp and terminfo database installed (as well as
|
||||
ncurses' tic and infocmp programs).
|
||||
pre-fetched fallback entries.
|
||||
|
||||
NOTE: This must be done on a machine which has ncurses' infocmp and
|
||||
terminfo database installed (as well as ncurses' tic and infocmp
|
||||
programs). That is because the fallback sources are generated and
|
||||
compiled into the library before the build-tree's copy of infocmp is
|
||||
available.
|
||||
|
||||
These entries are checked by setupterm() only when the conventional
|
||||
fetches from the terminfo tree and the termcap fallback (if configured)
|
||||
@ -2267,12 +2313,8 @@ terminfo directory directly.
|
||||
|
||||
------------------------------- CUT HERE --------------------------------
|
||||
|
||||
USING NCURSES WITH AFS:
|
||||
AFS treats each directory as a separate logical filesystem, you
|
||||
can't hard-link across them. The --enable-symlinks option copes
|
||||
with this by making tic use symbolic links.
|
||||
|
||||
USING NCURSES WITH GPM:
|
||||
USING GPM:
|
||||
---------
|
||||
Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
|
||||
which is used with Linux console. Be aware that GPM is commonly
|
||||
installed as a shared library which contains a wrapper for the curses
|
||||
@ -2291,7 +2333,9 @@ USING NCURSES WITH GPM:
|
||||
|
||||
https://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
|
||||
|
||||
BUILDING NCURSES WITH A CROSS-COMPILER
|
||||
|
||||
BUILDING WITH A CROSS-COMPILER:
|
||||
------------------------------
|
||||
Ncurses can be built with a cross-compiler. Some parts must be built
|
||||
with the host's compiler since they are used for building programs
|
||||
(e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
|
||||
@ -2316,14 +2360,26 @@ BUILDING NCURSES WITH A CROSS-COMPILER
|
||||
When ncurses has been successfully cross-compiled, you may want to use
|
||||
"make install" (with a suitable target directory) to construct an
|
||||
install tree. Note that in this case (as with the --with-fallbacks
|
||||
option), ncurses uses the development platform's tic to do the
|
||||
"make install.data" portion.
|
||||
option), ncurses uses the development platform's tic to do the "make
|
||||
install.data" portion.
|
||||
|
||||
The system's tic program is used to install the terminal database,
|
||||
even for cross-compiles. For best results, the tic program should
|
||||
be from the most current version of ncurses.
|
||||
even for cross-compiles. For best results, the tic program should be
|
||||
from the most current version of ncurses.
|
||||
|
||||
BUGS:
|
||||
NOTE: the system's tic program may use a different terminfo database
|
||||
format than the target system. For instance, as described in term(5),
|
||||
the conventional terminfo layout uses a directory hierarchy with one
|
||||
letter names, while some platforms use two-letter names to work with
|
||||
case-insensitive filesystems. The configure script searches for a tic
|
||||
program using the AC_CHECK_TOOL macro, which will prefer programs
|
||||
using the canonical host prefix in their name. You can use this fact
|
||||
to provide a cross-compiler support utility tic, otherwise you can
|
||||
override the configure script's choice using --with-tic-path
|
||||
|
||||
|
||||
BUG REPORTS:
|
||||
-----------
|
||||
Send any feedback to the ncurses mailing list at
|
||||
bug-ncurses@gnu.org. To subscribe send mail to
|
||||
bug-ncurses-request@gnu.org with body that reads:
|
||||
|
@ -235,7 +235,6 @@
|
||||
./config.sub
|
||||
./configure
|
||||
./configure.in
|
||||
./convert_configure.pl
|
||||
./dist.mk
|
||||
./doc/hackguide.doc
|
||||
./doc/html/Ada95.html
|
||||
@ -547,6 +546,7 @@
|
||||
./include/MKterm.h.awk.in
|
||||
./include/Makefile.in
|
||||
./include/capdefaults.c
|
||||
./include/curses.events
|
||||
./include/curses.h.in
|
||||
./include/curses.tail
|
||||
./include/curses.wide
|
||||
@ -559,6 +559,7 @@
|
||||
./include/nc_string.h
|
||||
./include/nc_termios.h
|
||||
./include/nc_tparm.h
|
||||
./include/nc_win32.h
|
||||
./include/ncurses_cfg.hin
|
||||
./include/ncurses_defs
|
||||
./include/ncurses_dll.h.in
|
||||
@ -567,6 +568,7 @@
|
||||
./include/termcap.h.in
|
||||
./include/tic.h
|
||||
./include/unctrl.h.in
|
||||
./include/win32_curses.h
|
||||
./install-sh
|
||||
./man/MKada_config.in
|
||||
./man/MKncu_config.in
|
||||
@ -942,6 +944,8 @@
|
||||
./ncurses/tinfo/lib_tparm.c
|
||||
./ncurses/tinfo/lib_tputs.c
|
||||
./ncurses/tinfo/lib_ttyflags.c
|
||||
./ncurses/tinfo/lib_win32con.c
|
||||
./ncurses/tinfo/lib_win32util.c
|
||||
./ncurses/tinfo/make_hash.c
|
||||
./ncurses/tinfo/make_keys.c
|
||||
./ncurses/tinfo/name_match.c
|
||||
@ -998,6 +1002,7 @@
|
||||
./ncurses/widechar/widechars.c
|
||||
./ncurses/win32con/gettimeofday.c
|
||||
./ncurses/win32con/wcwidth.c
|
||||
./ncurses/win32con/win32_driver.c
|
||||
./ncurses/win32con/win_driver.c
|
||||
./package/debian-mingw/changelog
|
||||
./package/debian-mingw/compat
|
||||
@ -1089,6 +1094,7 @@
|
||||
./test/Makefile.in
|
||||
./test/README
|
||||
./test/aclocal.m4
|
||||
./test/back_ground.c
|
||||
./test/background.c
|
||||
./test/blue.c
|
||||
./test/bs.6
|
||||
@ -1123,6 +1129,7 @@
|
||||
./test/dots_xcurses.c
|
||||
./test/dump_window.c
|
||||
./test/dump_window.h
|
||||
./test/dup_field.c
|
||||
./test/echochar.c
|
||||
./test/edit_field.c
|
||||
./test/edit_field.h
|
||||
@ -1155,6 +1162,7 @@
|
||||
./test/mini.xterm_48x48.xpm
|
||||
./test/mk-test.awk
|
||||
./test/modules
|
||||
./test/move_field.c
|
||||
./test/movewindow.c
|
||||
./test/ncurses.c
|
||||
./test/ncurses_tst.hin
|
||||
@ -1212,6 +1220,7 @@
|
||||
./test/test_setupterm.c
|
||||
./test/test_sgr.c
|
||||
./test/test_termattrs.c
|
||||
./test/test_tparm.c
|
||||
./test/test_vid_puts.c
|
||||
./test/test_vidputs.c
|
||||
./test/testaddch.c
|
||||
|
@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------------------
|
||||
-- Copyright 2018-2019,2020 Thomas E. Dickey --
|
||||
-- Copyright 2018-2020,2021 Thomas E. Dickey --
|
||||
-- Copyright 1998-2017,2018 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- Permission is hereby granted, free of charge, to any person obtaining a --
|
||||
@ -26,7 +26,7 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: NEWS,v 1.3450 2020/02/15 18:56:00 tom Exp $
|
||||
-- $Id: NEWS,v 1.3634 2021/02/21 00:18:55 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This is a log of changes that ncurses has gone through since Zeyd started
|
||||
@ -46,6 +46,469 @@ 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.
|
||||
|
||||
20210220
|
||||
+ improve tic warning when oc/op do not mention SGR 39/49 for xterm
|
||||
compatible XT flag.
|
||||
+ revert change to lib_addch.c in waddch_literal() from 20210130, since
|
||||
the followup fix in PutCharLR() actually corrects the problem while
|
||||
this change causes too-early filling/wrapping (report by Johannes
|
||||
Altmanninger).
|
||||
+ add/use vt220+pcedit and vt220+vtedit -TD
|
||||
+ add scrt/securecrt and absolute -TD
|
||||
+ add nel to xterm-new, though supported since X11R5 -TD
|
||||
+ add/use xterm+nofkeys -TD
|
||||
+ move use of ecma+italics from xterm-basic to xterm+nofkeys -TD
|
||||
|
||||
20210213
|
||||
+ add test/back_ground.c, to exercise the wide-character background
|
||||
functions.
|
||||
+ add a check in _nc_build_wch() in case the background character is a
|
||||
wide-character, rather than a new part of a multibyte character.
|
||||
+ improve tracemunch's coverage of form/menu/panel libraries.
|
||||
+ improve tracemunch's checking/reporting the type for the first
|
||||
parameter, e.g., "WINDOW*" rather than "#1".
|
||||
|
||||
20210206
|
||||
+ provide for wide-characters as background character in wbkgrnd
|
||||
(report/testcase by Anton Vidovic)
|
||||
+ add name for Fedora's pcre2 to configure check for "--with-pcre2"
|
||||
option, from xterm #363 -TD
|
||||
+ modify adjustment in PutCharLR to restore the cursor position before
|
||||
writing to the lower-right corner, rather than decrementing the
|
||||
cursor column, in case it was a double-width character (cf: 20210130).
|
||||
|
||||
20210130
|
||||
+ correct an off-by-one in comparison in waddch_literal() which caused
|
||||
scrolling when a double-cell character would not fit at the lower
|
||||
right corner of the screen (report by Benno Schulenberg).
|
||||
+ split-out att610+cvis, vt220+cvis, vt220+cvis8 -TD
|
||||
+ add vt220-base, for terminal emulators which generally have not
|
||||
supported att610's blinking cursor control -TD
|
||||
+ use vt220+cvis in vt220, etc -TD
|
||||
+ use att610+cvis, xterm+tmux and ansi+enq in kitty -TD
|
||||
+ use vt220+cvis in st, terminology, termite since they ignore
|
||||
blinking-cursor detail in att610+cvis -TD
|
||||
|
||||
20210123
|
||||
+ modify package/config scripts to provide an explicit -L option for
|
||||
cases when the loader search path has other directories preceding
|
||||
the one in which ncurses is installed (report by Yuri Victorovich).
|
||||
+ minor build-fixes in configure script and makefiles to work around
|
||||
quirks of pmake.
|
||||
|
||||
20210116
|
||||
+ add comment for linux2.6 regarding CONFIG_CONSOLE_TRANSLATIONS
|
||||
(report by Patrick McDermott) -TD
|
||||
+ make opts extension for getcchar work as documented for ncurses 6.1,
|
||||
adding "-g" flag to test/demo_new_pair to illustrate.
|
||||
|
||||
20210109
|
||||
+ fix errata in man/ncurses.3x from recent updates.
|
||||
+ improve quoting/escaping in configure script, uses some features of
|
||||
autoconf 2.52.20210105
|
||||
|
||||
20210102
|
||||
+ update man/curs_memleaks.3x, to include <term.h> which declares
|
||||
exit_terminfo.
|
||||
+ clarify man/curs_terminfo.3x, to mention why the macro setterm is
|
||||
defined in <curses.h>, and remove it from the list of prototypes
|
||||
(prompted by patch by Graeme McCutcheon).
|
||||
+ amend man/curs_terminfo.3x, to note that <curses.h> is required
|
||||
for certain functions, e.g., those using chtype or attr_t for
|
||||
types, as well as mvcur (cf: 20201031).
|
||||
+ use parameter-names in prototypes in curs_sp_funcs.3x, for
|
||||
consistency with other manpages.
|
||||
|
||||
20201227
|
||||
+ update terminology entry to 1.8.1 -TD
|
||||
+ fix some compiler-warnings which gcc8 reports incorrectly.
|
||||
|
||||
20201219
|
||||
+ suppress hyphenation in generated html for manpages, to address
|
||||
regression in upgrade of groff 1.22.2 to 1.22.3.
|
||||
+ fix inconsistent sort-order in see-also sections of manpages (report
|
||||
by Chris Bennett).
|
||||
|
||||
20201212
|
||||
+ improve manual pages for form field-types.
|
||||
|
||||
20201205
|
||||
+ amend build-fixes for gnat 10 to work with certain systems lacking
|
||||
gprbuild (cf: 20200627).
|
||||
+ eliminate an additional strlen and wsclen.
|
||||
+ eliminate an unnecessary strlen in waddnstr() (suggested by Benjamin
|
||||
Abendroth).
|
||||
+ modify inopts manpage, separating the items for nodelay and notimeout
|
||||
(patch by Benno Schulenberg).
|
||||
+ correct mlterm3 kf1-kf4 (Debian #975322) -TD
|
||||
+ add flash to mlterm3 -TD
|
||||
|
||||
20201128
|
||||
+ add Smulx to alacritty (Christian Duerr).
|
||||
+ add rep to PuTTY -TD
|
||||
+ add putty+keypad -TD
|
||||
+ add another fflush(stdout) in _nc_flush() to handle time-delays in
|
||||
the middle of strings such as flash when the application uses
|
||||
low-level calls rather than curses (cf: 20161217).
|
||||
+ modify configure check for c89/c99 aliases of clang to use its
|
||||
-std option instead, because some platforms, in particular macOS,
|
||||
do not provide workable c89/c99 aliases.
|
||||
|
||||
20201121
|
||||
+ fix some compiler-warnings in experimental Windows-10 driver.
|
||||
+ add the definitions needed in recent configure-check for clang
|
||||
(report by Steven Pitman).
|
||||
|
||||
20201114
|
||||
+ fix some compiler-warnings in experimental Windows-10 driver.
|
||||
+ modify a check for parameters in terminfo capabilities to handle the
|
||||
special case where short extended capability strings were not
|
||||
converted from terminfo to termcap format.
|
||||
+ modify CF_MIXEDCASE_FILENAMES macro, adding darwin as special case
|
||||
when cross-compiling (report by Eli Rykoff).
|
||||
|
||||
20201107
|
||||
+ update kitty+common -TD
|
||||
+ add putty+screen and putty-screen (suggested by Alexandre Montaron).
|
||||
+ explain in ncurses.3x that functions in the tinfo library do not rely
|
||||
upon wide-characters (prompted by discussion with Reuben Thomas).
|
||||
|
||||
20201031
|
||||
+ modify MKterm.h.in so that it is not necessary to include <curses.h>
|
||||
before <term.h> (prompted by discussion with Reuben Thomas).
|
||||
+ review/improve synopsis for curs_sp_funcs.3x (prompted by discussion
|
||||
with Reuben Thomas).
|
||||
+ improve format of output in tic's check_infotocap() function, to
|
||||
ensure that the messages contain only printable text.
|
||||
+ modify configure-check for clang to verify that -Qunused-arguments
|
||||
is supported. IBM's xlclang does not support it (report by Steven
|
||||
Pitman).
|
||||
|
||||
20201024
|
||||
+ provide workaround configure-check for bool when cross-compiling.
|
||||
+ fix a potential indexing error in _nc_parse_entry(), seen with
|
||||
Herlim's test data using address-sanitizer.
|
||||
+ change a null-pointer check in set_curterm to a valid-string check,
|
||||
needed in to tic's use-resolution when pad_char is cancelled
|
||||
(report/testcase by Robert Sebastian Herlim)
|
||||
+ improve tic's -c option to validate the number and type of parameters
|
||||
and compare against expected number/type before deciding which set of
|
||||
parameter-lists to use in tparm calls (report/testcase by Robert
|
||||
Sebastian Herlim).
|
||||
+ fix a link for tabs.1 manpage in announce.html.in (report by Nick
|
||||
Black), as well as some fixes via linklint.
|
||||
|
||||
20201017
|
||||
+ improve manpage typography.
|
||||
+ improve discussion in curs_addch.3x of the use of unctrl to display
|
||||
nonprintable characters.
|
||||
+ add a note in terminfo.5 explaining that no-parameter strings such
|
||||
as sgr0 or cnorm should not be used with tparm.
|
||||
|
||||
20201010
|
||||
+ correct sgr in aaa+rv (report by Florian Weimer) -TD
|
||||
+ fix some sgr inconsistencies in d230c, ibm6153, ibm6154,
|
||||
ncrvt100an -TD
|
||||
+ improve tic's check for errors detected in tparm (prompted by
|
||||
discussion with Florian Weimer).
|
||||
+ set output-mode to binary in experimental Windows-10 driver (Juergen
|
||||
Pfeifer).
|
||||
|
||||
20201003
|
||||
+ remove output-related checks for nl/nonl (report by Leon Winter).
|
||||
+ change tmux's kbs to ^? (report by Premysl Eric Janouch)
|
||||
+ simplify mlterm initialization with DECSTR -TD
|
||||
+ fix a typo in man/curs_terminfo.3 (Reuben Thomas).
|
||||
+ add tmux-direct (tmux #2370, Debian #895754)
|
||||
+ add user-defined capabilities from mintty to Caps-ncurses, for
|
||||
checking consistency with tic.
|
||||
|
||||
20200926
|
||||
+ correct configure-check for gnurx library.
|
||||
+ regenerate llib-* files.
|
||||
+ modify tracemunch and the panel library to show readable traces for
|
||||
panel- and user-pointers.
|
||||
|
||||
20200919
|
||||
+ update mlterm3 for 3.9.0 (report by Premysl Eric Janouch) -TD
|
||||
|
||||
20200918
|
||||
+ corrected condition for appending curses.events to the generated
|
||||
curses.h (report by Sven Joachim, Debian #970545).
|
||||
|
||||
20200912
|
||||
+ add configure-check for systre/tre with mingw configuration, to get
|
||||
the library-dependencies as seen in msys2 configuration for mingw64.
|
||||
+ build-fixes for the win32-driver configuration.
|
||||
+ use more defensive binary mode setting for Win32 (Juergen Pfeifer).
|
||||
|
||||
20200907
|
||||
+ fix regression in setupterm validating non-empty $TERM (report by
|
||||
Soren Tempel).
|
||||
|
||||
20200906
|
||||
+ merge/adapt in-progress work by Juergen Pfeifer for new version of
|
||||
win32-driver.
|
||||
+ correct description of vt330/vt340 (Ross Combs).
|
||||
|
||||
20200831
|
||||
+ build-fix for awk-scripts modified for win32-driver (report by Werner
|
||||
Fink).
|
||||
|
||||
20200829
|
||||
+ remove a redundant NCURSES_EXPORT as a build-fix for "Maarten
|
||||
Anonymous".
|
||||
+ merge/adapt in-progress work by Juergen Pfeifer for new version of
|
||||
win32-driver.
|
||||
+ modify configure script, moving gcc -Werror options to EXTRA_CFLAGS
|
||||
to avoid breaking configure-checks (adapted from ongoing work on
|
||||
mawk and lynx).
|
||||
> errata for terminfo.src (report by Florian Weimer):
|
||||
+ correct icl6404 csr
|
||||
+ correct ti916 cup
|
||||
+ improve ndr9500
|
||||
|
||||
20200822
|
||||
+ improve version-number extraction in MKlib_gen.sh
|
||||
+ make the test-package for manpages installable by adjusting the
|
||||
man_db.renames file.
|
||||
+ correct an off-by-one loop-limit in convert_strings function
|
||||
(report by Yue Tai).
|
||||
+ add CF_SHARED_OPTS cases for HPE NonStop systems (Randall S Becker).
|
||||
+ modify CF_SHARED_OPTS case for NetBSD to use the same "-shared"
|
||||
option for the non-rpath case as for the rpath case, to allow gcc to
|
||||
provide suitable runtime initialization (report by Rajeev V Pillai).
|
||||
|
||||
20200817
|
||||
+ reduce build-warnings by excluding ncurses-internals from deprecation
|
||||
warnings.
|
||||
+ mark wgetch-events feature as deprecated.
|
||||
+ add definition for $(LIBS) to ncurses/Makefile.in, to simplify builds
|
||||
using the string-hacks option.
|
||||
+ prevent KEY_EVENT from appearing in curses.h unless the configure
|
||||
option --enable-wgetch-events is used (report by Werner Fink).
|
||||
|
||||
20200816
|
||||
+ amend tic/infocmp check to allow for the respective tool's absence
|
||||
(report by Steve Wills, cf: 20200808).
|
||||
+ improved some of the build-scripts with shellcheck
|
||||
+ filter out -MT/-MD/-MTd/-MDd options in script for Visual Studio C++
|
||||
(discussion with "Maarten Anonymous").
|
||||
|
||||
20200808
|
||||
+ improve discussion of the system's tic utility when used as part
|
||||
of cross-compiling (discussion with Keith Marshall).
|
||||
+ modify configuration checks for build-time tic/infocmp to use
|
||||
AC_CHECK_TOOL. That can still be overridden by --with-tic-path and
|
||||
--with-infocmp-path when fallbacks are used, but even if not using
|
||||
fallbacks, the improved check may help with cross-compiling
|
||||
(discussion with Keith Marshall).
|
||||
+ other build-fixes for Ada95 with MinGW.
|
||||
+ modify Ada95 source-generation utility to write to a file given as
|
||||
parameter rather than to the standard output, allowing builds with
|
||||
MinGW.
|
||||
|
||||
20200801
|
||||
+ remove remaining parts of checks for ISC Unix (cf: 20121006).
|
||||
+ add user32.lib to LDFLAGS for Visual Studio C++ configuration
|
||||
(discussion with "Maarten Anonymous").
|
||||
+ modify MKkey_defs.sh to hide ncurses' definition of KEY_EVENTS to
|
||||
reduce Visual Studio C++ redefinition warnings.
|
||||
+ improve/update checks for external functions in test/configure
|
||||
|
||||
20200725
|
||||
+ set LINK_TESTS in CF_SHARED_OPTS for msvc (patch by
|
||||
"Maarten Anonymous")
|
||||
+ improved workaround for redefinition-warnings for KEY_EVENT.
|
||||
+ improve man/term.5 section on legacy storage format (report by
|
||||
Florian Weimer).
|
||||
|
||||
20200718
|
||||
+ reduce redefinition-warnings for KEY_EVENT when building with Visual
|
||||
Studio C++.
|
||||
+ define NCURSES_STATIC when compiling programs to link with static
|
||||
libraries, to work with MinGW vs Visual Studio C++.
|
||||
> additional changes for building with Visual Studio C++ and msys2
|
||||
(reports/patches by "Maarten Anonymous")
|
||||
+ modify c++/Makefile.in to set the current directory while compiling
|
||||
the main program, so the linker can find related objects.
|
||||
+ several changes to allow the c++/demo program to compile/link.
|
||||
+ change an ifdef in test-directory, to use VC++ wide-character funcs.
|
||||
|
||||
20200711
|
||||
+ fix pound-sign mapping in acsc of linux2.6 entry (report by Ingo
|
||||
Bruckl).
|
||||
+ additional changes for building with Visual Studio C++ and msys2
|
||||
(reports/patches by "Maarten Anonymous")
|
||||
+ build-improvements for Windows 10 and MinGW (patch by Juergen
|
||||
Pfeifer).
|
||||
+ fix a typo in curs_printw.3x (patch by William Pursell).
|
||||
+ fix two errors in infotocap which allowed indexing outside the
|
||||
buffer (report/testcases by Zhang Gan).
|
||||
+ update length of strings in infocmp's usage function to restore a
|
||||
trailing null on the longest string (report/testcase by Zhang Gen).
|
||||
|
||||
20200704
|
||||
+ modify version-check with Ada generics to use the same pattern as in
|
||||
the check for supported gnat versions (report by Pascal Pignard).
|
||||
> additional changes for building with Visual Studio C++ and msys2
|
||||
(patches by "Maarten Anonymous"):
|
||||
+ adjust headers/declarations to provide for "dllimport" vs "dllexport"
|
||||
declarations when constructing DLLs, to worko with Visual Studio C++.
|
||||
|
||||
20200627
|
||||
+ build-fixes for gnat 10.1.1, whose gnatmake drops integration with
|
||||
gprbuild.
|
||||
+ correct buffer-length in test/color_name.h
|
||||
|
||||
20200613
|
||||
+ update list of functions in ncurses.3x
|
||||
+ move dlclose() call from lib_mouse.c to delscreen() to avoid a case
|
||||
in the former which could be called from SIGTSTP handler (Debian
|
||||
#961097).
|
||||
|
||||
20200606
|
||||
+ add xterm+256color2, xterm+88color2, to deprecate nonstandard usage
|
||||
in xterm+256color, xterm+88color -TD
|
||||
+ add shifted Linux console keys in linux+sfkeys entry for
|
||||
screen.linux (report by Alexandre Montaron).
|
||||
+ use vt100+enq in screen (report by Alexandre Montaron).
|
||||
+ add screen.linux-s alias (suggested by Alexandre Montaron).
|
||||
|
||||
20200531
|
||||
+ correct configure version-check/warnng for g++ to allow for 10.x
|
||||
+ re-enable "bel" in konsole-base (report by Nia Huang)
|
||||
+ add linux-s entry (patch by Alexandre Montaron).
|
||||
+ drop long-obsolete convert_configure.pl
|
||||
+ add test/test_parm.c, for checking tparm changes.
|
||||
+ improve parameter-checking for tparm, adding function _nc_tiparm() to
|
||||
handle the most-used case, which accepts only numeric parameters
|
||||
(report/testcase by "puppet-meteor").
|
||||
+ use a more conservative estimate of the buffer-size in lib_tparm.c's
|
||||
save_text() and save_number(), in case the sprintf() function
|
||||
passes-through unexpected characters from a format specifier
|
||||
(report/testcase by "puppet-meteor").
|
||||
+ add a check for end-of-string in cvtchar to handle a malformed
|
||||
string in infotocap (report/testcase by "puppet-meteor").
|
||||
|
||||
20200523
|
||||
+ update version-check for gnat to allow for gnat 10.x to 99.x
|
||||
+ fix an uninitialized variable in lib_mouse.c changes (cf: 20200502)
|
||||
+ add a check in EmitRange to guard against repeat_char emitting digits
|
||||
which could be interpreted as BSD-style padding when --enable-bsdpad
|
||||
is configured (report/patch by Hiltjo Posthuma).
|
||||
+ add --disable-pkg-ldflags to suppress EXTRA_LDFLAGS from the
|
||||
generated pkg-config and ncurses*-config files, to simplify
|
||||
configuring in the case where rpath is used but the packager wants
|
||||
to hide the feature (report by Michael Stapelberg).
|
||||
> fixes for building with Visual Studio C++ and msys2 (patches by
|
||||
"Maarten Anonymous"):
|
||||
+ modify CF_SHARED_OPTS to generate a script which translates linker
|
||||
options into Visual Studio's dialect.
|
||||
+ omit parentheses around function-names in generated lib_gen.c to
|
||||
work around a Visual Studio C++ limitation.
|
||||
|
||||
20200516
|
||||
+ add notes on termcap.h header in curs_termcap.3x
|
||||
+ update notes on vscode / xterm.js -TD
|
||||
|
||||
20200509
|
||||
+ add "-r" option to the dots test-programs, to help with scripting
|
||||
a performance comparison.
|
||||
+ build-fix test/move_field.c for NetBSD curses, whose form headers
|
||||
use different names than SVr4 or ncurses.
|
||||
|
||||
20200502
|
||||
+ add details on the change to Linux SGR 21 in 2018 -TD
|
||||
+ add xterm-direct16 and xterm-direct256 -TD
|
||||
+ modify lib_mouse.c to check for out-of-range button numbers, convert
|
||||
those to position reports.
|
||||
|
||||
20200425
|
||||
+ use vt100+fnkeys in putty -TD
|
||||
+ fix a typo in tput.1; "columns" should be "cols".
|
||||
|
||||
20200418
|
||||
+ improve tracemunch logic for "RUN" compaction.
|
||||
+ fix a special case in wresize() where copying the old text did not
|
||||
check if the last cell on a row was the beginning of a fullwidth
|
||||
character (adapted from patch by Benno Schulenberg).
|
||||
+ use vt52+keypad in xterm-vt52, from xterm #354 -TD
|
||||
+ improve see-also section of user_caps.5
|
||||
|
||||
20200411
|
||||
+ fix find_pair(), overlooked when refactoring for _nc_reserve_pairs()
|
||||
(report/testcase by Brad Town, cf: 20170812).
|
||||
+ add a trailing null for magic-string in putwin, flagged by gcc 10
|
||||
+ update check for gcc version versus gnat to work with gcc 10.x
|
||||
|
||||
20200404
|
||||
+ modify -fvisibility check to work with g++
|
||||
> fixes for building with Visual Studio C++ and msys2 (patches by
|
||||
"Maarten Anonymous"):
|
||||
+ add configure option and check for gcc -fvisibility=hidden feature
|
||||
+ define NCURSES_NOMACROS in lib_gen.c to work around Visual Studio
|
||||
C++ preprocessor limitations.
|
||||
+ modify some of the configure-macros, as well as mk-1st.awk to work
|
||||
with Visual Studio C++ default filenaming.
|
||||
|
||||
20200328
|
||||
+ correct length of buffer copied in dup_field().
|
||||
+ remove "$(srcdir)/" from path of library.gpr, needed for out-of-tree
|
||||
builds of Ada95 (patch by Adam Van Ymeren).
|
||||
|
||||
20200321
|
||||
+ improve configure-checks to reduce warnings about unused variables.
|
||||
+ improve description of error-returns in waddch and waddnstr manual
|
||||
pages (prompted by patch by Benno Schulenberg).
|
||||
+ add test/move_field.c to demonstrate move_field(), and a stub for
|
||||
a corresponding demo of dup_field().
|
||||
|
||||
20200314
|
||||
+ add history note to curs_scanw.3x for <stdarg.h> and <varargs.h>
|
||||
+ add history note to curs_printw.3x for <stdarg.h> and <varargs.h>
|
||||
+ add portability note to ncurses.3x regarding <stdarg.h>
|
||||
|
||||
20200308
|
||||
+ update copyright notices in test-packages.
|
||||
+ modify tracemunch to guard against errors in its known_p1 table.
|
||||
+ add several --with-xxx-libname options, to help with pkgsrc (prompted
|
||||
by discussion with Thomas Klausner).
|
||||
|
||||
20200301
|
||||
+ modify wbkgd() and wbkgrnd() to avoid storing a null in the
|
||||
background character, because it may be used in cases where the
|
||||
corresponding 0x80 is not treated as a null (report by Marc Rechte,
|
||||
cf: 20181208).
|
||||
|
||||
20200229
|
||||
+ modify CF_NCURSES_CONFIG to work around xcode's c99 "-W" option,
|
||||
which conflicts with conventional use for passing linker options.
|
||||
> fixes for building with Visual Studio C++ and msys2 (patches by
|
||||
"Maarten Anonymous"):
|
||||
+ check for pcre2posix.h instead of pcre2-posix.h
|
||||
+ add case in CF_SHARED_OPTS for msys2 + msvc
|
||||
+ add fallback definition for STDIN_FILENO in progs.priv.h
|
||||
+ modify win_driver.c to use _alloca() rather than gcc's variable
|
||||
length array feature.
|
||||
+ add NCURSES_IMPEXP to ncurses wrapped-variable declarations
|
||||
+ remove NCURSES_IMPEXP from class variables in c++/cursslk.h
|
||||
+ remove fallback prototype for exit() from c++/etip.h.in
|
||||
+ use configured check for <sys/time.h> in a couple of places
|
||||
+ conditionally include winsock.h in ncurses/win32con/gettimeofday.c,
|
||||
because Visual Studio needs this for the timestruct declaration.
|
||||
+ adjust syntax in a couple of files using the NCURSES_API symbol.
|
||||
|
||||
20200222
|
||||
+ expanded note in ncurses.3x regarding automatically-included headers
|
||||
+ improve vt50h and vt52 based on DECScope manual -TD
|
||||
+ add/use vt52+keypad and vt52-basic -TD
|
||||
+ check/workaround for line-too-long in Ada95 generate utility when
|
||||
building out-of-tree.
|
||||
+ improve/update HEADER_DEPS in */Makefile.in
|
||||
+ add "check" rule to include/Makefile, to demonstrate that the headers
|
||||
include all of the required headers for the types used.
|
||||
|
||||
20200215
|
||||
+ improve manual page for panel library, extending the portability
|
||||
section as well as documenting error-returns.
|
||||
@ -220,7 +683,7 @@ it is not possible to add this information.
|
||||
+ build-fixes for Ada95 configure-script and corresponding test package
|
||||
|
||||
20190907
|
||||
+ add --with-ada-libname option and modify Ada95 configuration to
|
||||
+ add --with-ada-libname option and modify Ada95 configuration to
|
||||
allow renaming the "AdaCurses" library (prompted by proposed changes
|
||||
by Pascal Pignard).
|
||||
+ modify configure script to distinguish gcc from icc and clang when
|
||||
|
@ -26,114 +26,123 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: README.MinGW,v 1.10 2020/02/02 23:34:34 tom Exp $
|
||||
-- $Id: README.MinGW,v 1.14 2020/09/06 22:22:44 tom Exp $
|
||||
-- Author: Juergen Pfeifer
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This is work in progress, but it's in an state where one can see it
|
||||
This is work in progress, but it is in an state where one can see it
|
||||
works at least on the Windows Console.
|
||||
|
||||
You should install the MSYS package, so that you've a shell environment that
|
||||
allows you to run the scripts, especially configure etc. You can get that
|
||||
from http://www.mingw.org
|
||||
You should install the MSYS2 package, so that you have a shell environment that
|
||||
allows you to run scripts, especially configure, etc. You can get that
|
||||
from
|
||||
https://www.msys2.org/
|
||||
|
||||
To build ncurses for native Windows, you need the MinGW toolchain. The
|
||||
original MinGW toolchain from the above site is only for 32-Bit Windows. As
|
||||
Windows Server - and also regular workstations - are moving to 64-Bit, it
|
||||
seems to be reasonable to have a toolchain that supports both architectures.
|
||||
I recommend to use the TDM gcc toolchain which you can find at
|
||||
http://tdm-gcc.tdragon.net/download. Go to the download section and select
|
||||
the bundle installer for tdm64 (MinGW-w64). This installs a multilib version
|
||||
of the gcc toolchain that can compile for native 32- and 64-Bit Windows
|
||||
versions. It also comes with a working pthread implementation.
|
||||
or the individual packages from
|
||||
|
||||
The latest config and build scripts we use for MinGW have only been tested
|
||||
for the gcc-4.6.1 compiler toolchain (or better).
|
||||
https://sourceforge.net/projects/msys2/files/
|
||||
|
||||
Using MinGW is a pragmatic decision, it's the easiest way to port this
|
||||
You may also use a hosted MinGW cross-compile toolchain, e.g., on Ubuntu or
|
||||
ArchLinux to build the libraries and tools.
|
||||
|
||||
To build ncurses for native Windows with support for the new Windows 10 Virtual
|
||||
Terminal and PseudoConsole support, you should install at least version 8.0 of
|
||||
the mingw-w64-x86_64-headers package as it appears to have support for the
|
||||
required Windows SDK level. Please note that some of the Linux distributions
|
||||
are a bit behind with respect to the required MinGW header versions and you may
|
||||
not be able to properly build the libraries for current Windows 10 using these
|
||||
toolchains. Although it is a bit slow, MSYS2 on Windows 10 64-Bit is the
|
||||
authoritative build environment for the MinGW version of ncurses.
|
||||
|
||||
Using MinGW is a pragmatic decision, it is the easiest way to port this
|
||||
heavily UNIX based sourcebase to native Windows. The goal is of course
|
||||
to provide the includes, libraries and DLLs to be used with the more
|
||||
common traditional development environments on Windows, mainly with
|
||||
Microsoft Visual Studio.
|
||||
|
||||
The TERM environment variable must be set specially to active the Windows
|
||||
The TERM environment variable must be set especially to activate the Windows
|
||||
console-driver. The driver checks if TERM is set to "#win32con" (explicit
|
||||
use) or if TERM is unset or empty (implicit).
|
||||
|
||||
Please also make sure that MSYS links to the correct directory containing
|
||||
your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows
|
||||
CMD.EXE command shell go to the MSYS root directory (most probably
|
||||
C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw
|
||||
that points to the MinGW toolchain directory. If not, delete the mingw
|
||||
directory and use the mklink command (or the linkd.exe utility on older
|
||||
Windows) to create the junction point.
|
||||
Beginning with build 17763 (Fall 2018 update), Windows 10 supports ANSI escape
|
||||
sequences (Virtual Terminal support). If ncurses detects this or a later
|
||||
Windows 10 version, the interpretation of the implicit TERM setting (which
|
||||
means: TERM is not set or empty) changes. In this case, TERM is to be assumed
|
||||
to be "ms-terminal" and ncurses acts using the regular terminfo based driver,
|
||||
thus acting like a regular Terminal we all know from UNIX like environments.
|
||||
|
||||
This code requires WindowsNT 5.1 or better, which means on the client
|
||||
Windows XP or better, on the server Windows Server 2003 or better.
|
||||
This code requires WindowsNT 6.0 or better, which means on the client
|
||||
Windows Vista or better, on the server Windows Server 2008 or better.
|
||||
|
||||
I recommend using libtool to build ncurses on MinGW, because libtool
|
||||
knows exactly how to build dll's on Windows for use with MinGW.
|
||||
If running on Windows 10 Build 17763 or later is detected, any program
|
||||
spawning a subprocess running a ncurses program should use the new
|
||||
PseudoConsole support, which provides what we know as pty from the UNIX
|
||||
world also for Windows. Using the CreatePseudoConsole API
|
||||
(see https://docs.microsoft.com/en-us/windows/console/createpseudoconsole)
|
||||
in the calling process, it is guaranteed that the called ncurses program has
|
||||
a console that is required by its implementation, even if the calling program
|
||||
is NOT a console program, e.g., MSYS2's own mintty Terminal emulator.
|
||||
|
||||
In the current MSYS2/minGW setup, building MinGW shared libraries with
|
||||
libtool for ncurses seems to be broken, so I recommend NOT to use libtool.
|
||||
|
||||
To build a modern but still small footprint ncurses that provides
|
||||
hooks for interop, I recommend using these options:
|
||||
|
||||
--with-libtool
|
||||
--disable-home-terminfo
|
||||
--enable-database
|
||||
--disable-termcap
|
||||
--enable-sp-funcs
|
||||
--enable-term-driver
|
||||
--enable-interop
|
||||
--without-libtool
|
||||
--disable-home-terminfo
|
||||
--enable-database
|
||||
--disable-termcap
|
||||
--enable-sp-funcs
|
||||
--enable-term-driver
|
||||
--enable-interop
|
||||
|
||||
This is the configuration commandline as I'm using it at the moment (assuming
|
||||
environment variable MINGW_ROOT to hold the root directory name of your MinGW
|
||||
build):
|
||||
This is the configuration command line which I am using at the moment
|
||||
(assuming environment variable MINGW_ROOT holds the root directory name of
|
||||
your MinGW build):
|
||||
|
||||
./configure \
|
||||
--prefix=$MINGW_ROOT \
|
||||
--with-cxx \
|
||||
--prefix=/mingw64 \
|
||||
--without-cxx \
|
||||
--without-ada \
|
||||
--enable-warnings \
|
||||
--enable-assertions \
|
||||
--enable-exp-win32 \
|
||||
--enable-ext-funcs \
|
||||
--disable-home-terminfo \
|
||||
--disable-echo \
|
||||
--disable-getcap \
|
||||
--disable-hard-tabs \
|
||||
--disable-leaks \
|
||||
--disable-macros \
|
||||
--disable-overwrite \
|
||||
--enable-opaque-curses \
|
||||
--enable-opaque-panel \
|
||||
--enable-opaque-menu \
|
||||
--enable-opaque-form \
|
||||
--enable-database \
|
||||
--enable-sp-funcs \
|
||||
--enable-term-driver \
|
||||
--enable-interop \
|
||||
--disable-termcap \
|
||||
--enable-database \
|
||||
--with-progs \
|
||||
--with-libtool \
|
||||
--without-libtool \
|
||||
--enable-pc-files \
|
||||
--mandir=$MINGW_ROOT/share/man
|
||||
--with-shared \
|
||||
--with-normal \
|
||||
--without-debug \
|
||||
--with-fallbacks=ms-terminal \
|
||||
--without-manpages
|
||||
|
||||
Please note that it is also necessary to set this environment variable:
|
||||
|
||||
export PATH_SEPARATOR=";"
|
||||
|
||||
in order to parse the terminfo paths correctly. Terminfo paths should
|
||||
always be separated by a seeeemicolon,even when running under MSYS.
|
||||
|
||||
To support regular expressions properly, ncurses under MinGW should be
|
||||
linked against the gnurx regex library, which must be built separately
|
||||
under MinGW. See
|
||||
|
||||
ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libgnurx-src-2.5.zip
|
||||
always be separated by a semicolon, even when running under MSYS2.
|
||||
|
||||
All the options above are - like the whole Windows support -
|
||||
experimental.
|
||||
|
||||
A lot is still TODO, e.g.:
|
||||
|
||||
- Wide Character support (display is workable, but input untested)
|
||||
The Win32Con driver should actually only use Unicode in the
|
||||
future.
|
||||
- Thread support (locking). If using TDM toolchain this is done by
|
||||
configuring pthreads.
|
||||
- A GUI console driver
|
||||
- Support for Terminals attached via a serial port (via terminfo)
|
||||
- Support for networked Terminal connections (via terminfo)
|
||||
- Workarounds for MinGW's filesystem access are necessary to make infocmp
|
||||
work (though tic works).
|
||||
|
||||
To support terminfo, we would need to have an ioctl() simulation for the
|
||||
serial and networked terminals.
|
||||
-- vile:txtmode
|
||||
|
@ -1 +1 @@
|
||||
5:0:10 6.2 20200215
|
||||
5:0:10 6.2 20210220
|
||||
|
1536
contrib/ncurses/aclocal.m4
vendored
1536
contrib/ncurses/aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Id: announce.html.in,v 1.96 2020/02/09 21:50:48 tom Exp $
|
||||
$Id: announce.html.in,v 1.99 2020/10/19 08:18:12 tom Exp $
|
||||
****************************************************************************
|
||||
* Copyright 2018-2019,2020 Thomas E. Dickey *
|
||||
* *
|
||||
@ -344,7 +344,7 @@
|
||||
|
||||
<li>
|
||||
<p>marked <a href=
|
||||
"@HOMEPAGE@/man/curs_printw.3x.html#h3-PORTABILITY"><tt>vwprintw</tt></a>
|
||||
"@HOMEPAGE@/man/curs_printw.3x.html#h2-PORTABILITY"><tt>vwprintw</tt></a>
|
||||
and <tt>vwscanw</tt> as deprecated; recommend using <a href=
|
||||
"@HOMEPAGE@/man/curs_printw.3x.html"><tt>vw_printw</tt></a>
|
||||
and <tt>vw_scanw</tt>, respectively.</p>
|
||||
@ -504,7 +504,7 @@
|
||||
<h3><a name="h3-programs" id="h3-programs">Program
|
||||
improvements</a></h3>
|
||||
|
||||
<p>Several improvements were made to the utility programs:</p>
|
||||
<p id="h4-utilities">Several improvements were made to the utility programs:</p>
|
||||
|
||||
<dl>
|
||||
<dt><span class="part-name">clear</span>
|
||||
@ -1051,7 +1051,7 @@
|
||||
for decompiling descriptions. That came later, with SVr3,
|
||||
with a different developer.</li>
|
||||
|
||||
<li><a href="@HOMEPAGE@/man/tabs.1">tabs.1</a> tells more
|
||||
<li><a href="@HOMEPAGE@/man/tabs.1.html">tabs.1</a> tells more
|
||||
than you wanted to know about the tool.</li>
|
||||
|
||||
<li><a href="@HOMEPAGE@/man/tic.1m.html">tic.1</a> explains
|
||||
@ -1092,7 +1092,7 @@
|
||||
characters.</li>
|
||||
|
||||
<li><a href=
|
||||
"@HOMEPAGE@/man/curs_color.3x.html#h3-RETURN-VALUE">curs_color.3x</a>
|
||||
"@HOMEPAGE@/man/curs_color.3x.html#h2-RETURN-VALUE">curs_color.3x</a>
|
||||
improves discussion of error returns and extensions.</li>
|
||||
|
||||
<li><a href=
|
||||
|
12821
contrib/ncurses/configure
vendored
12821
contrib/ncurses/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
dnl***************************************************************************
|
||||
dnl Copyright 2018-2019,2020 Thomas E. Dickey *
|
||||
dnl Copyright 2018-2020,2021 Thomas E. Dickey *
|
||||
dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. *
|
||||
dnl *
|
||||
dnl Permission is hereby granted, free of charge, to any person obtaining a *
|
||||
@ -29,7 +29,7 @@ dnl***************************************************************************
|
||||
dnl
|
||||
dnl Author: Thomas E. Dickey 1995-on
|
||||
dnl
|
||||
dnl $Id: configure.in,v 1.697 2020/02/08 20:56:13 tom Exp $
|
||||
dnl $Id: configure.in,v 1.729 2021/01/09 11:20:52 tom Exp $
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl For additional information, see
|
||||
@ -37,8 +37,8 @@ dnl https://invisible-island.net/autoconf/
|
||||
dnl https://invisible-island.net/autoconf/my-autoconf.html
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_PREREQ(2.52.20200111)
|
||||
AC_REVISION($Revision: 1.697 $)
|
||||
AC_PREREQ(2.52.20210101)
|
||||
AC_REVISION($Revision: 1.729 $)
|
||||
AC_INIT(ncurses/base/lib_initscr.c)
|
||||
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
|
||||
|
||||
@ -144,10 +144,10 @@ else
|
||||
fi
|
||||
|
||||
CF_GXX_VERSION
|
||||
case $GXX_VERSION in
|
||||
(1*|2.[[0-6]]*)
|
||||
# GXX=""; CXX=""; ac_cv_prog_gxx=no
|
||||
# cf_cxx_library=no
|
||||
case "$GXX_VERSION" in
|
||||
([[1-9]][[0-9]].*)
|
||||
;;
|
||||
(1.*|2.[[0-6]]*)
|
||||
AC_MSG_WARN(templates do not work)
|
||||
;;
|
||||
esac
|
||||
@ -183,7 +183,7 @@ AC_ARG_WITH(progs,
|
||||
[cf_with_progs=yes])
|
||||
AC_MSG_RESULT($cf_with_progs)
|
||||
|
||||
if test -f $srcdir/tack/tack.h; then
|
||||
if test -f "$srcdir/tack/tack.h" ; then
|
||||
if test "x$cross_compiling" = xyes ; then
|
||||
CF_VERBOSE(ignoring tack because we are cross-compiling)
|
||||
cf_with_tack=no
|
||||
@ -221,7 +221,6 @@ modules_to_build="$modules_to_build panel menu form"
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
CF_PROG_AWK
|
||||
CF_PROG_EGREP
|
||||
CF_PROG_INSTALL
|
||||
CF_PROG_LINT
|
||||
CF_PROG_LN_S
|
||||
@ -311,6 +310,14 @@ CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-c
|
||||
# If we're cross-compiling, allow the user to override the tools and their
|
||||
# options. The configure script is oriented toward identifying the host
|
||||
# compiler, etc., but we need a build compiler to generate parts of the source.
|
||||
|
||||
case "$cf_cv_system_name" in
|
||||
(*-msvc*)
|
||||
LDFLAGS="$LDFLAGS user32.lib"
|
||||
export LDFLAGS
|
||||
;;
|
||||
esac
|
||||
|
||||
CF_BUILD_CC
|
||||
|
||||
###############################################################################
|
||||
@ -443,7 +450,7 @@ fi
|
||||
AC_SUBST(CXX_G_OPT)
|
||||
|
||||
AC_MSG_CHECKING(for default loader flags)
|
||||
case $DFT_LWR_MODEL in
|
||||
case "$DFT_LWR_MODEL" in
|
||||
(libtool) LD_MODEL='' ;;
|
||||
(normal) LD_MODEL='' ;;
|
||||
(debug) LD_MODEL=$CC_G_OPT ;;
|
||||
@ -453,7 +460,7 @@ esac
|
||||
AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
|
||||
AC_MSG_RESULT($LD_MODEL)
|
||||
|
||||
case $DFT_LWR_MODEL in
|
||||
case "$DFT_LWR_MODEL" in
|
||||
(shared)
|
||||
CF_ENABLE_RPATH
|
||||
AC_MSG_CHECKING(if shared libraries should be relinked during install)
|
||||
@ -468,8 +475,8 @@ esac
|
||||
# we will build libraries one-level down.
|
||||
rel_builddir=..
|
||||
CF_SHARED_OPTS
|
||||
for model in $cf_list_models; do
|
||||
case $model in
|
||||
for model in $cf_list_models ; do
|
||||
case "$model" in
|
||||
(libtool)
|
||||
CF_WITH_LIBTOOL_OPTS
|
||||
CF_WITH_EXPORT_SYMS
|
||||
@ -482,7 +489,7 @@ for model in $cf_list_models; do
|
||||
AC_MSG_CHECKING(if current CFLAGS link properly)
|
||||
AC_TRY_LINK(
|
||||
[#include <stdio.h>],
|
||||
[printf("Hello work\n");],
|
||||
[printf("Hello work\\n");],
|
||||
[cf_cflags_work=yes],
|
||||
[cf_cflags_work=no])
|
||||
AC_MSG_RESULT($cf_cflags_work)
|
||||
@ -543,6 +550,23 @@ if test "$DFT_LWR_MODEL" = "shared" && test "x$cf_cv_enable_rpath" != xno; then
|
||||
CF_DISABLE_RPATH_HACK
|
||||
fi
|
||||
|
||||
### Depending on the system, someone may use rpath to build ncurses but not
|
||||
# want users of the package to rely upon that feature. Give those people an
|
||||
# option to suppress that detail from EXTRA_LDFLAGS.
|
||||
EXTRA_PKG_LDFLAGS="$EXTRA_LDFLAGS"
|
||||
if test -n "$EXTRA_PKG_LDFLAGS"
|
||||
then
|
||||
AC_MSG_CHECKING(if you want to disable extra LDFLAGS for package-scripts)
|
||||
CF_ARG_DISABLE(pkg-ldflags,
|
||||
[ --disable-pkg-ldflags disable extra LDFLAGS for package-scripts],
|
||||
[disable_pkg_ldflags=yes],
|
||||
[disable_pkg_ldflags=no],
|
||||
no)
|
||||
AC_MSG_RESULT($disable_pkg_ldflags)
|
||||
test "$disable_pkg_ldflags" = yes && EXTRA_PKG_LDFLAGS=
|
||||
fi
|
||||
AC_SUBST(EXTRA_PKG_LDFLAGS)
|
||||
|
||||
###############################################################################
|
||||
CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
|
||||
|
||||
@ -552,7 +576,7 @@ EXTRA_SUFFIX=
|
||||
AC_ARG_WITH(extra-suffix,
|
||||
[ --with-extra-suffix=X append extra suffix to header/library paths],
|
||||
[case x$withval in
|
||||
(no)
|
||||
(xno)
|
||||
;;
|
||||
(xyes|x)
|
||||
EXTRA_SUFFIX=$cf_cv_abi_version
|
||||
@ -580,7 +604,7 @@ AC_ARG_ENABLE(database,
|
||||
[use_database=yes])
|
||||
AC_MSG_RESULT($use_database)
|
||||
|
||||
case $host_os in
|
||||
case "$host_os" in
|
||||
(os2*)
|
||||
TERMINFO_SRC='${top_srcdir}/misc/emx.src'
|
||||
;;
|
||||
@ -629,33 +653,38 @@ case ".$with_fallback" in
|
||||
;;
|
||||
esac
|
||||
|
||||
USE_FALLBACKS=
|
||||
test -z "$FALLBACK_LIST" && USE_FALLBACKS="#"
|
||||
AC_SUBST(FALLBACK_LIST)
|
||||
AC_SUBST(USE_FALLBACKS)
|
||||
|
||||
# The fallback feature in ncurses relies upon tic/infocmp outside the build
|
||||
# tree for generating the terminal descriptions that will be compiled into the
|
||||
# library. If your toolchain is old, it may not handle current terminal
|
||||
# databases. Use configure-options to point to the tools which will be used,
|
||||
# rather than the first ones found on the $PATH.
|
||||
AC_CHECK_TOOL(TIC, tic)
|
||||
AC_CHECK_TOOL(INFOCMP, infocmp)
|
||||
if test -n "$FALLBACK_LIST"
|
||||
then
|
||||
CF_WITH_PATH_PROG(TIC, tic, [for fallbacks], $PATH:/usr/local/ncurses/bin)
|
||||
CF_WITH_PATH_PROG(INFOCMP, infocmp, [for fallbacks], $PATH:/usr/local/ncurses/bin)
|
||||
else
|
||||
: ${TIC:=tic}
|
||||
: ${INFOCMP:=infocmp}
|
||||
test -z "$TIC" && FALLBACK_LIST=
|
||||
test -z "$INFOCMP" && FALLBACK_LIST=
|
||||
if test -z "$FALLBACK_LIST"
|
||||
then
|
||||
AC_MSG_WARN(ignoring fallback option because tic/infocmp are not available)
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(TIC)
|
||||
AC_SUBST(INFOCMP)
|
||||
|
||||
USE_FALLBACKS=
|
||||
test -z "$FALLBACK_LIST" && USE_FALLBACKS="#"
|
||||
AC_SUBST(FALLBACK_LIST)
|
||||
AC_SUBST(USE_FALLBACKS)
|
||||
|
||||
AC_MSG_CHECKING(if you want modern xterm or antique)
|
||||
AC_ARG_WITH(xterm-new,
|
||||
[ --without-xterm-new specify if xterm terminfo should be old version],
|
||||
[with_xterm_new=$withval],
|
||||
[with_xterm_new=yes])
|
||||
case $with_xterm_new in
|
||||
case "$with_xterm_new" in
|
||||
(no) with_xterm_new=xterm-old;;
|
||||
(*) with_xterm_new=xterm-new;;
|
||||
esac
|
||||
@ -1447,6 +1476,38 @@ AC_ARG_ENABLE(colorfgbg,
|
||||
AC_MSG_RESULT($with_colorfgbg)
|
||||
test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code])
|
||||
|
||||
### use option --enable-fvisibility to turn on use of gcc-specific feature
|
||||
AC_MSG_CHECKING(if you want to use gcc -fvisibility option)
|
||||
AC_ARG_ENABLE(fvisibility,
|
||||
[ --enable-fvisibility compile with -fvisibility=hidden],
|
||||
[cf_with_fvisibility=$enableval],
|
||||
[cf_with_fvisibility=no])
|
||||
AC_MSG_RESULT($cf_with_fvisibility)
|
||||
|
||||
NCURSES_IMPEXP=
|
||||
NCURSES_CXX_IMPEXP=
|
||||
if test "x$cf_with_fvisibility" = xyes; then
|
||||
CF_CHECK_FVISIBILITY($CC,CFLAGS,cf_cv_fvisibility_hidden)
|
||||
if test "x$cf_cv_fvisibility_hidden" = xyes
|
||||
then
|
||||
CF_ADD_CFLAGS([-fvisibility=hidden])
|
||||
NCURSES_IMPEXP="__attribute__ ((visibility(\"default\")))"
|
||||
fi
|
||||
if test -n "$CXX"
|
||||
then
|
||||
AC_LANG_PUSH(C++)
|
||||
CF_CHECK_FVISIBILITY($CXX,CXXFLAGS,cf_cv_fvisibility_hidden2)
|
||||
if test "x$cf_cv_fvisibility_hidden2" = xyes
|
||||
then
|
||||
CF_ADD_CXXFLAGS([-fvisibility=hidden])
|
||||
NCURSES_CXX_IMPEXP="__attribute__ ((visibility(\"default\")))"
|
||||
fi
|
||||
AC_LANG_POP
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(NCURSES_IMPEXP)
|
||||
AC_SUBST(NCURSES_CXX_IMPEXP)
|
||||
|
||||
### use option --enable-interop to turn on use of bindings used for interop
|
||||
AC_MSG_CHECKING(if you want interop bindings)
|
||||
AC_ARG_ENABLE(interop,
|
||||
@ -1485,7 +1546,39 @@ AC_ARG_ENABLE(wgetch-events,
|
||||
[with_wgetch_events=$enableval],
|
||||
[with_wgetch_events=no])
|
||||
AC_MSG_RESULT($with_wgetch_events)
|
||||
test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with wgetch-events code])
|
||||
if test "x$with_wgetch_events" = xyes ; then
|
||||
AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with wgetch-events code])
|
||||
NCURSES_WGETCH_EVENTS=1
|
||||
else
|
||||
NCURSES_WGETCH_EVENTS=0
|
||||
fi
|
||||
AC_SUBST(NCURSES_WGETCH_EVENTS)
|
||||
|
||||
case "$cf_cv_system_name" in
|
||||
(*mingw32*|*mingw64*|*-msvc*)
|
||||
AC_MSG_CHECKING(if you want experimental-Windows driver)
|
||||
AC_ARG_ENABLE(exp-win32,
|
||||
[ --enable-exp-win32 compile with experimental-Windows driver],
|
||||
[with_exp_win32=$enableval],
|
||||
[with_exp_win32=no])
|
||||
AC_MSG_RESULT($with_exp_win32)
|
||||
if test "x$with_exp_win32" = xyes
|
||||
then
|
||||
AC_DEFINE(EXP_WIN32_DRIVER,1,[Define to 1 to compile with experimental win32 driver])
|
||||
EXP_WIN32_DRIVER=1
|
||||
INTERNALS_HDR='[$](INCDIR)/nc_win32.h'
|
||||
else
|
||||
INTERNALS_HDR='[$](INCDIR)/nc_mingw.h'
|
||||
EXP_WIN32_DRIVER=0
|
||||
fi
|
||||
;;
|
||||
(*)
|
||||
EXP_WIN32_DRIVER=0
|
||||
INTERNALS_HDR=
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(EXP_WIN32_DRIVER)
|
||||
AC_SUBST(INTERNALS_HDR)
|
||||
|
||||
###############################################################################
|
||||
CF_HELP_MESSAGE(Testing/development Options:)
|
||||
@ -1520,20 +1613,14 @@ fi
|
||||
AC_SUBST(INSTALL_OPT_P)
|
||||
|
||||
### use option --enable-warnings to turn on all gcc warnings
|
||||
AC_MSG_CHECKING(if you want to see compiler warnings)
|
||||
AC_ARG_ENABLE(warnings,
|
||||
[ --enable-warnings build: turn on GCC compiler warnings],
|
||||
[with_warnings=$enableval])
|
||||
AC_MSG_RESULT($with_warnings)
|
||||
CF_ENABLE_WARNINGS(Wno-unknown-pragmas Wswitch-enum,yes)
|
||||
|
||||
if test "x$with_warnings" = "xyes"; then
|
||||
if test "x$enable_warnings" = "xyes"; then
|
||||
CF_ADD_ADAFLAGS(-gnatg)
|
||||
CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum)
|
||||
if test "x$cf_with_cxx" = xyes ; then
|
||||
CF_GXX_WARNINGS(Wno-unused)
|
||||
fi
|
||||
fi
|
||||
CF_GCC_ATTRIBUTES
|
||||
CF_ENABLE_STRING_HACKS
|
||||
|
||||
### use option --enable-assertions to turn on generation of assertion code
|
||||
@ -1598,9 +1685,13 @@ AC_SUBST(ADA_TRACE)
|
||||
CF_DISABLE_GNAT_PROJECTS
|
||||
|
||||
### Checks for libraries.
|
||||
case $cf_cv_system_name in
|
||||
case "$cf_cv_system_name" in
|
||||
(*mingw32*|*mingw64*)
|
||||
if test "x$with_exp_win32" = xyes ; then
|
||||
CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN"
|
||||
else
|
||||
CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
|
||||
fi
|
||||
# Note: WINVER may be a problem with Windows 10
|
||||
;;
|
||||
(*)
|
||||
@ -1630,7 +1721,6 @@ limits.h \
|
||||
locale.h \
|
||||
math.h \
|
||||
poll.h \
|
||||
sys/bsdtypes.h \
|
||||
sys/ioctl.h \
|
||||
sys/param.h \
|
||||
sys/poll.h \
|
||||
@ -1652,13 +1742,6 @@ then
|
||||
AC_MSG_WARN(The NCURSES_TRACE environment variable is not supported with this configuration)
|
||||
fi
|
||||
|
||||
# check for ISC (this may also define _POSIX_SOURCE)
|
||||
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
|
||||
if test "x$ISC" = xyes ; then
|
||||
AC_CHECK_LIB(cposix,main)
|
||||
AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()'
|
||||
fi
|
||||
|
||||
CF_SYS_TIME_SELECT
|
||||
|
||||
### checks for compiler characteristics
|
||||
@ -1667,7 +1750,7 @@ AC_C_CONST
|
||||
CF_C_INLINE(NCURSES_INLINE,1200)
|
||||
CF_SIG_ATOMIC_T
|
||||
|
||||
if test $NCURSES_CHTYPE = auto ; then
|
||||
if test "$NCURSES_CHTYPE" = auto ; then
|
||||
CF_TYPEOF_CHTYPE
|
||||
else
|
||||
cf_cv_typeof_chtype=$NCURSES_CHTYPE
|
||||
@ -1681,7 +1764,7 @@ test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
|
||||
test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L"
|
||||
AC_SUBST(cf_cv_1UL)
|
||||
|
||||
if test $NCURSES_MMASK_T = auto ; then
|
||||
if test "$NCURSES_MMASK_T" = auto ; then
|
||||
cf_cv_typeof_mmask_t=long
|
||||
else
|
||||
cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
|
||||
@ -1712,6 +1795,7 @@ setenv \
|
||||
setvbuf \
|
||||
sigaction \
|
||||
sigvec \
|
||||
snprintf \
|
||||
strdup \
|
||||
strstr \
|
||||
sysconf \
|
||||
@ -1784,7 +1868,7 @@ if test "$with_hashed_db" != no ; then
|
||||
fi
|
||||
|
||||
dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
|
||||
if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
|
||||
if test -z "$cf_user_CFLAGS" && test "$enable_leaks" = yes ; then
|
||||
CF_STRIP_G_OPT(CFLAGS)
|
||||
CF_STRIP_G_OPT(CXXFLAGS)
|
||||
fi
|
||||
@ -1798,8 +1882,8 @@ if test -n "$CXX" ; then
|
||||
CF_STDCPP_LIBRARY
|
||||
CF_PROG_CC_C_O(CXX,[$CXXFLAGS $CPPFLAGS])
|
||||
|
||||
case $GXX_VERSION in
|
||||
(1*|2.[0-6]*)
|
||||
case "$GXX_VERSION" in
|
||||
(1.*|2.[[0-6]]*|[[1-9]][[0-9]].*)
|
||||
cf_cxx_library=yes
|
||||
;;
|
||||
(*-2.7*|2.7*)
|
||||
@ -1855,11 +1939,11 @@ AC_SUBST(CXXLIBS)
|
||||
# specify the type of bool in a configure-script option and postpone
|
||||
# integration with the C++ compiler provided that the types are compatible.
|
||||
USE_CXX_BOOL=1
|
||||
if test $cf_cv_cc_bool_type = 1
|
||||
if test "$cf_cv_cc_bool_type" = 1
|
||||
then
|
||||
# oops: C has a bool. Unlikely, but C++ could differ.
|
||||
USE_CXX_BOOL=0
|
||||
elif test $cf_cv_builtin_bool = 0
|
||||
elif test "$cf_cv_builtin_bool" = 0
|
||||
then
|
||||
# C++ has no bool
|
||||
USE_CXX_BOOL=0
|
||||
@ -1968,15 +2052,27 @@ LIB_SUBSETS="${LIB_SUBSETS}base"
|
||||
# base library (so it resides in base).
|
||||
if test "$with_term_driver" != no ; then
|
||||
LIB_SUBSETS="${LIB_SUBSETS}+port_drivers"
|
||||
case $cf_cv_system_name in
|
||||
case "$cf_cv_system_name" in
|
||||
(*mingw32*|*mingw64*)
|
||||
LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
|
||||
if test "x$with_exp_win32" = xyes ; then
|
||||
LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32"
|
||||
else
|
||||
LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
|
||||
fi
|
||||
CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER"
|
||||
;;
|
||||
(*)
|
||||
LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
|
||||
;;
|
||||
esac
|
||||
elif test "x$with_exp_win32" = xyes ; then
|
||||
case "$cf_cv_system_name" in
|
||||
(*mingw32*|*mingw64*)
|
||||
LIB_SUBSETS="${LIB_SUBSETS}+port_win32"
|
||||
;;
|
||||
(*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
|
||||
@ -2022,8 +2118,8 @@ fi
|
||||
|
||||
# do not want -ldl in build except as needed for -lncurses dependency
|
||||
if test "x$with_dlsym" = xyes ; then
|
||||
if test $DFT_LWR_MODEL = shared || \
|
||||
test $DFT_LWR_MODEL = libtool ; then
|
||||
if test "$DFT_LWR_MODEL" = shared || \
|
||||
test "$DFT_LWR_MODEL" = libtool ; then
|
||||
CF_REMOVE_LIB(LIBS,$LIBS,dl)
|
||||
fi
|
||||
fi
|
||||
@ -2051,9 +2147,9 @@ if test "$with_ticlib" != no ; then
|
||||
|
||||
if test "x$with_ticlib" != xyes ; then
|
||||
TICS_NAME=$with_ticlib
|
||||
TICS_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${USE_LIB_SUFFIX}//"`"
|
||||
TICS_ARG_SUFFIX="${with_ticlib}`echo ${USE_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TICS_SUFFIX="`echo "${DFT_LIB_SUFFIX}" |sed -e "s/^${USE_LIB_SUFFIX}//"`"
|
||||
TICS_ARG_SUFFIX="${with_ticlib}`echo "${USE_ARG_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TICS_DEP_SUFFIX="${with_ticlib}`echo "${DFT_DEP_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TICS_LIB_SUFFIX="${with_ticlib}"
|
||||
else
|
||||
TICS_SUFFIX=${DFT_LIB_SUFFIX}
|
||||
@ -2078,9 +2174,9 @@ if test "$with_termlib" != no ; then
|
||||
|
||||
if test "x$with_termlib" != xyes ; then
|
||||
TINFO_NAME=$with_termlib
|
||||
TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${USE_LIB_SUFFIX}//"`"
|
||||
TINFO_ARG_SUFFIX="${with_termlib}`echo ${USE_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TINFO_SUFFIX="`echo "${DFT_LIB_SUFFIX}" |sed -e "s/^${USE_LIB_SUFFIX}//"`"
|
||||
TINFO_ARG_SUFFIX="${with_termlib}`echo "${USE_ARG_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TINFO_DEP_SUFFIX="${with_termlib}`echo "${DFT_DEP_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`"
|
||||
TINFO_LIB_SUFFIX="${with_termlib}"
|
||||
else
|
||||
TINFO_SUFFIX=${DFT_LIB_SUFFIX}
|
||||
@ -2128,7 +2224,7 @@ else
|
||||
fi
|
||||
|
||||
if test "$DFT_LWR_MODEL" = shared ; then
|
||||
case $cf_cv_system_name in
|
||||
case "$cf_cv_system_name" in
|
||||
(cygwin*|msys*)
|
||||
# "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll"
|
||||
TINFO_SUFFIX=.dll
|
||||
@ -2154,7 +2250,7 @@ fi
|
||||
TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'`
|
||||
AC_SUBST(TINFO_LDFLAGS2)
|
||||
|
||||
case $DFT_LWR_MODEL in
|
||||
case "$DFT_LWR_MODEL" in
|
||||
(normal|debug|profile)
|
||||
CF_LDFLAGS_STATIC
|
||||
;;
|
||||
@ -2164,8 +2260,8 @@ AC_MSG_CHECKING(where we will install curses.h)
|
||||
AC_SUBST(includesubdir)
|
||||
includesubdir=
|
||||
if test "$with_overwrite" = no && \
|
||||
( test "x$includedir" = 'x${prefix}/include' || \
|
||||
test "x$includedir" = "x${prefix}/include" )
|
||||
{ test "x$includedir" = 'x${prefix}/include' || \
|
||||
test "x$includedir" = "x${prefix}/include"; }
|
||||
then
|
||||
includesubdir="/ncurses${USE_LIB_SUFFIX}"
|
||||
fi
|
||||
@ -2181,6 +2277,17 @@ fi
|
||||
fi
|
||||
WITH_OVERWRITE=$with_overwrite
|
||||
|
||||
### At least on MinGW a shared library build without libtool
|
||||
### requires adding the additional libs to the link list.
|
||||
case "$cf_cv_system_name" in
|
||||
(*mingw32*|*mingw64*)
|
||||
if test "$DFT_LWR_MODEL" != "libtool"; then
|
||||
SHLIB_LIST="$SHLIB_LIST ${LIBS}"
|
||||
fi
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
AC_SUBST(WITH_OVERWRITE)
|
||||
AC_SUBST(TICS_LIST)
|
||||
AC_SUBST(TINFO_LIST)
|
||||
@ -2193,6 +2300,12 @@ AC_SUBST(NCURSES_TREE)
|
||||
### predefined stuff for the test programs
|
||||
AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs])
|
||||
|
||||
# pkgsrc uses these
|
||||
CF_WITH_LIB_BASENAME(FORM_NAME,form)
|
||||
CF_WITH_LIB_BASENAME(MENU_NAME,menu)
|
||||
CF_WITH_LIB_BASENAME(PANEL_NAME,panel)
|
||||
CF_WITH_LIB_BASENAME(CXX_NAME,cxx,ncurses++)
|
||||
|
||||
### Construct the list of subdirectories for which we'll customize makefiles
|
||||
### with the appropriate compile-rules.
|
||||
|
||||
@ -2215,9 +2328,6 @@ AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as
|
||||
|
||||
AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic])
|
||||
|
||||
### Now that we're done running tests, add the compiler-warnings, if any
|
||||
CF_ADD_CFLAGS($EXTRA_CFLAGS)
|
||||
|
||||
### Define substitutions for header files to avoid name-pollution
|
||||
CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0)
|
||||
CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0)
|
||||
@ -2246,19 +2356,8 @@ AC_SUBST(MAKE_TESTS)
|
||||
ADAHTML_DIR=../../doc/html/ada
|
||||
AC_SUBST(ADAHTML_DIR)
|
||||
|
||||
# these could be configurable, but are not currently
|
||||
PANEL_NAME=panel
|
||||
MENU_NAME=menu
|
||||
FORM_NAME=form
|
||||
CXX_NAME=ncurses++
|
||||
|
||||
AC_SUBST(PANEL_NAME)
|
||||
AC_SUBST(MENU_NAME)
|
||||
AC_SUBST(FORM_NAME)
|
||||
AC_SUBST(CXX_NAME)
|
||||
|
||||
# workaround for OS/2 (20151017)
|
||||
case $cf_cv_system_name in
|
||||
case "$cf_cv_system_name" in
|
||||
(os2*)
|
||||
LIBTOOL_OPTS_CXX="-os2dllname ncurs++"
|
||||
;;
|
||||
@ -2269,7 +2368,7 @@ esac
|
||||
AC_SUBST(LIBTOOL_OPTS_CXX)
|
||||
|
||||
# workaround for g++ versus Solaris (20131116)
|
||||
case $cf_cv_system_name in
|
||||
case "$cf_cv_system_name" in
|
||||
(solaris2*)
|
||||
case "x$CPPFLAGS" in
|
||||
(*-D_XOPEN_SOURCE_EXTENDED*)
|
||||
@ -2369,7 +2468,7 @@ fi
|
||||
test "x$cf_with_trace" = xyes && NCURSES_INLINE=
|
||||
|
||||
UNALTERED_SYMS=`echo "$RESULTING_SYMS" | sed -e 's/\\$/\\\\$/g'`
|
||||
if test $cf_filter_syms = yes
|
||||
if test "$cf_filter_syms" = yes
|
||||
then
|
||||
RESULTING_SYMS=resulting.map
|
||||
fi
|
||||
@ -2400,25 +2499,27 @@ AC_OUTPUT( \
|
||||
$SUB_MAKEFILES \
|
||||
Makefile,[
|
||||
if test "x$cf_with_tests" != xno ; then
|
||||
CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test)
|
||||
CF_PRG_RULES(["$srcdir/test/mk-test.awk" INSTALL=no ECHO_LINK="$ECHO_LD"], test)
|
||||
fi
|
||||
CF_LIB_RULES($SRC_SUBDIRS)
|
||||
|
||||
if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
|
||||
if test -z "$USE_OLD_MAKERULES" ; then
|
||||
$AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
|
||||
$AWK -f "$srcdir/Ada95/mk-1st.awk" <"$srcdir/Ada95/src/modules" >>Ada95/src/Makefile
|
||||
fi
|
||||
fi
|
||||
],[
|
||||
### Special initialization commands, used to pass information from the
|
||||
### configuration-run into config.status
|
||||
|
||||
AWK="$AWK"
|
||||
ALTERNATE_SYMS="$ALTERNATE_SYMS"
|
||||
AWK="$AWK"
|
||||
CXX_NAME="$CXX_NAME"
|
||||
DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
|
||||
DFT_LWR_MODEL="$DFT_LWR_MODEL"
|
||||
ECHO_LD="$ECHO_LD"
|
||||
EXTRA_SUFFIX="$EXTRA_SUFFIX"
|
||||
FORM_NAME="$FORM_NAME"
|
||||
LDCONFIG="$LDCONFIG"
|
||||
LIBTOOL_VERSION="$LIBTOOL_VERSION"
|
||||
LIB_NAME="$LIB_NAME"
|
||||
@ -2428,10 +2529,12 @@ LIB_SUFFIX="$LIB_SUFFIX"
|
||||
LIB_TRACING="$LIB_TRACING"
|
||||
LN_S="$LN_S"
|
||||
MAKE_TERMINFO="$MAKE_TERMINFO"
|
||||
MENU_NAME="$MENU_NAME"
|
||||
NCURSES_MAJOR="$NCURSES_MAJOR"
|
||||
NCURSES_MINOR="$NCURSES_MINOR"
|
||||
NCURSES_OSPEED="$NCURSES_OSPEED"
|
||||
NCURSES_PATCH="$NCURSES_PATCH"
|
||||
PANEL_NAME="$PANEL_NAME"
|
||||
SRC_SUBDIRS="$SRC_SUBDIRS"
|
||||
TERMINFO="$TERMINFO"
|
||||
TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
|
||||
@ -2453,6 +2556,8 @@ WITH_CURSES_H="$with_curses_h"
|
||||
WITH_ECHO="${enable_echo:=yes}"
|
||||
WITH_OVERWRITE="$with_overwrite"
|
||||
cf_LIST_MODELS="$cf_list_models"
|
||||
cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE
|
||||
cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD
|
||||
cf_cv_abi_version="$cf_cv_abi_version"
|
||||
cf_cv_do_relink="$cf_cv_do_relink"
|
||||
cf_cv_do_reranlib="$cf_cv_do_reranlib"
|
||||
|
@ -1,120 +0,0 @@
|
||||
extproc perl -S -w
|
||||
|
||||
# $Id: convert_configure.pl,v 1.4 2020/02/02 23:34:34 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright 2020 Thomas E. Dickey #
|
||||
# Copyright 1998-2000,2006 Free Software Foundation, Inc. #
|
||||
# #
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a #
|
||||
# copy of this software and associated documentation files (the "Software"), #
|
||||
# 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. #
|
||||
##############################################################################
|
||||
|
||||
# The converted script is written to stdout, so run this script as
|
||||
# convert_configure configure > configure.cmd
|
||||
#
|
||||
# When the converted script runs, it expects that /tmp dir is
|
||||
# available (so we create it).
|
||||
#
|
||||
# run the result like this:
|
||||
# .\configure
|
||||
|
||||
# Some frequent manual intervention:
|
||||
# a) Some makefiles hardwire SHELL = /bin/sh ==> change to: sh
|
||||
# b) Some makefiles recognize that exe files terminate on .exe
|
||||
# You need to give this script -no-zexe option...
|
||||
|
||||
shift, $no_zexe = 1 if @ARGV and $ARGV[0] eq '-no-zexe';
|
||||
|
||||
mkdir '/tmp', 0777 unless -d '/tmp';
|
||||
|
||||
print <<EOF;
|
||||
extproc sh
|
||||
|
||||
EOF
|
||||
|
||||
print <<EOF unless $no_zexe;
|
||||
# Make sensible defaults:
|
||||
CC="gcc -Zexe -Zmt"
|
||||
export CC
|
||||
CXX="gcc -Zexe -Zmt"
|
||||
export CXX
|
||||
#GCCOPT="$GCCOPT -Zexe"
|
||||
#export GCCOPT
|
||||
EOF
|
||||
|
||||
print <<EOF;
|
||||
CONFIG_SHELL=sh
|
||||
export CONFIG_SHELL
|
||||
|
||||
# Optimization (GNU make 3.74 cannot be loaded :-():
|
||||
emxload -m 30 sh.exe ls.exe tr.exe id.exe sed.exe # make.exe
|
||||
emxload -m 30 grep.exe egrep.exe fgrep.exe cat.exe rm.exe mv.exe cp.exe
|
||||
emxload -m 30 uniq.exe basename.exe sort.exe awk.exe echo.exe
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
$checking_path = 0;
|
||||
|
||||
while (<>) {
|
||||
if (/for\s+(\w+)\s+in\s*\$(PATH|ac_dummy)\s*;/) {
|
||||
$checking_path = 1;
|
||||
$varname = $1;
|
||||
$subst= <<EOS
|
||||
$varname="`echo -E \\"\$$varname\\" | tr \\\\\\\\\\\\\\\\ / `"
|
||||
EOS
|
||||
}
|
||||
if (/if\s+test\s+-z\s+\"\$INSTALL\"/) {
|
||||
$checking_install = 1;
|
||||
}
|
||||
$checking_install = $checking_path = 0 if /^\s*done\s*$/;
|
||||
# We want to create an extra line like this one:
|
||||
# ac_dir="`echo -E \"$ac_dir\" | tr \\\\\\\\ / `"
|
||||
s{^((\s*)if\s+test)\s*-f\s*(\$$varname/\S+)\s*;}
|
||||
{$2$subst$1 -f $3 -o -f $3.exe ;}
|
||||
if $checking_path; # Checking for executables
|
||||
# change |/usr/sbin/*| to |/usr/sbin/*|?:[\\/]os2[\\/]install[\\/]*|
|
||||
# in the list of things to skip (with both cases)
|
||||
s{\Q|/usr/sbin/*|}
|
||||
{|/usr/sbin/*|?:[\\\\/]os2[\\\\/]install[\\\\/]*|?:[\\\\/]OS2[\\\\/]INSTALL[\\\\/]*|}
|
||||
if $checking_install; # Do not accept d:/os2/install/install.exe
|
||||
s/^(host|build)=NONE$/$1=x86-emx-os2/; # Make default host/build
|
||||
s/"\$\{IFS}:"$/"\${IFS};"/; # Fix IFS line
|
||||
s/\bIFS=\":\"$/IFS=";"/; # Fix another IFS line
|
||||
s/\btest\s+-s\s+conftest\b/test -f conftest/g; # Fix exe test
|
||||
# This one is needed for curses:
|
||||
s/^\s*host=`.*\$ac_config_sub \$host_alias`/$&\nif test -z "\$host"; then host=\$host_alias; fi/;
|
||||
s,/bin/sh(?![/\w]),sh,g;
|
||||
s,^(\s*/usr/sbin/sendmail\s*)\\$,$1 "`whence sendmail | tr '\\\\\\\\' / `" \\,;
|
||||
print;
|
||||
}
|
||||
|
||||
__END__
|
||||
|
||||
Changes: 98/11 : support check for executables in ncurses.
|
||||
99/2 : support INSTALL,
|
||||
new IFS=':' style
|
||||
99/11 : find sendmail
|
||||
00/01 : export CONFIG_SHELL
|
||||
00/10 : new syntax for host=`...` line
|
@ -1,5 +1,5 @@
|
||||
##############################################################################
|
||||
# Copyright 2018-2019,2020 Thomas E. Dickey #
|
||||
# Copyright 2018-2020,2021 Thomas E. Dickey #
|
||||
# Copyright 1998-2017,2018 Free Software Foundation, Inc. #
|
||||
# #
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a #
|
||||
@ -26,7 +26,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: dist.mk,v 1.1335 2020/02/15 09:30:48 tom Exp $
|
||||
# $Id: dist.mk,v 1.1401 2021/02/20 12:06:34 tom Exp $
|
||||
# Makefile for creating ncurses distributions.
|
||||
#
|
||||
# This only needs to be used directly as a makefile by developers, but
|
||||
@ -38,7 +38,7 @@ SHELL = /bin/sh
|
||||
# These define the major/minor/patch versions of ncurses.
|
||||
NCURSES_MAJOR = 6
|
||||
NCURSES_MINOR = 2
|
||||
NCURSES_PATCH = 20200215
|
||||
NCURSES_PATCH = 20210220
|
||||
|
||||
# We don't append the patch to the version, since this only applies to releases
|
||||
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
|
||||
@ -97,7 +97,7 @@ doc/hackguide.doc: doc/html/hackguide.html
|
||||
# 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=78n -rLT=78n -Tascii
|
||||
MANPROG = tbl | nroff -mandoc -rHY=0 -rLL=78n -rLT=78n -Tascii
|
||||
|
||||
manhtml:
|
||||
@for f in doc/html/man/*.html; do \
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Id: announce.html,v 1.61 2020/02/09 21:26:51 tom Exp $
|
||||
$Id: announce.html,v 1.64 2020/10/19 08:18:48 tom Exp $
|
||||
****************************************************************************
|
||||
* Copyright 2018-2019,2020 Thomas E. Dickey *
|
||||
* *
|
||||
@ -356,7 +356,7 @@
|
||||
|
||||
<li>
|
||||
<p>marked <a href=
|
||||
"https://invisible-island.net/ncurses/man/curs_printw.3x.html#h3-PORTABILITY">
|
||||
"https://invisible-island.net/ncurses/man/curs_printw.3x.html#h2-PORTABILITY">
|
||||
<tt>vwprintw</tt></a> and <tt>vwscanw</tt> as deprecated;
|
||||
recommend using <a href=
|
||||
"https://invisible-island.net/ncurses/man/curs_printw.3x.html">
|
||||
@ -520,7 +520,8 @@
|
||||
<h3><a name="h3-programs" id="h3-programs">Program
|
||||
improvements</a></h3>
|
||||
|
||||
<p>Several improvements were made to the utility programs:</p>
|
||||
<p id="h4-utilities">Several improvements were made to the
|
||||
utility programs:</p>
|
||||
|
||||
<dl>
|
||||
<dt><span class="part-name">clear</span>
|
||||
@ -1073,7 +1074,7 @@
|
||||
with a different developer.</li>
|
||||
|
||||
<li><a href=
|
||||
"https://invisible-island.net/ncurses/man/tabs.1">tabs.1</a>
|
||||
"https://invisible-island.net/ncurses/man/tabs.1.html">tabs.1</a>
|
||||
tells more than you wanted to know about the tool.</li>
|
||||
|
||||
<li><a href=
|
||||
@ -1117,7 +1118,7 @@
|
||||
the line-drawing characters.</li>
|
||||
|
||||
<li><a href=
|
||||
"https://invisible-island.net/ncurses/man/curs_color.3x.html#h3-RETURN-VALUE">
|
||||
"https://invisible-island.net/ncurses/man/curs_color.3x.html#h2-RETURN-VALUE">
|
||||
curs_color.3x</a> improves discussion of error returns and
|
||||
extensions.</li>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# $Id: Makefile.in,v 1.65 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Makefile.in,v 1.71 2021/01/23 20:42:08 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright 2020 Thomas E. Dickey #
|
||||
# Copyright 2020,2021 Thomas E. Dickey #
|
||||
# Copyright 1998-2015,2018 Free Software Foundation, Inc. #
|
||||
# #
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a #
|
||||
@ -90,16 +90,18 @@ ETAGS = @ETAGS@
|
||||
|
||||
CC = @CC@
|
||||
CPP = @CPP@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
|
||||
|
||||
CPPFLAGS = -I${top_srcdir}/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
|
||||
INCDIR = $(top_srcdir)/include
|
||||
BASE_DIR = $(top_srcdir)/ncurses
|
||||
CPPFLAGS = -I$(BASE_DIR) -DHAVE_CONFIG_H -DBUILDING_FORM @CPPFLAGS@
|
||||
|
||||
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
|
||||
|
||||
CFLAGS_LIBTOOL = $(CCFLAGS)
|
||||
CFLAGS_NORMAL = $(CCFLAGS)
|
||||
CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
|
||||
CFLAGS_PROFILE = $(CCFLAGS) -pg
|
||||
CFLAGS_NORMAL = $(CCFLAGS) -DNCURSES_STATIC
|
||||
CFLAGS_DEBUG = $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE
|
||||
CFLAGS_PROFILE = $(CCFLAGS) -DNCURSES_STATIC -pg
|
||||
CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
|
||||
|
||||
CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
|
||||
@ -149,11 +151,24 @@ $(DESTDIR)$(libdir) :
|
||||
cp $(srcdir)/form.h $@
|
||||
|
||||
HEADER_DEPS = \
|
||||
$(srcdir)/form.priv.h \
|
||||
$(srcdir)/form.h \
|
||||
../include/mf_common.h \
|
||||
../include/curses.h \
|
||||
../include/eti.h
|
||||
../include/eti.h \
|
||||
../include/mf_common.h \
|
||||
../include/ncurses_cfg.h \
|
||||
../include/ncurses_def.h \
|
||||
../include/ncurses_dll.h \
|
||||
../include/term.h \
|
||||
../include/unctrl.h \
|
||||
$(BASE_DIR)/curses.priv.h \
|
||||
$(BASE_DIR)/new_pair.h \
|
||||
$(INCDIR)/nc_alloc.h \
|
||||
$(INCDIR)/nc_panel.h \
|
||||
$(INCDIR)/nc_string.h \
|
||||
$(INCDIR)/nc_termios.h \
|
||||
$(INCDIR)/nc_tparm.h \
|
||||
$(INCDIR)/term_entry.h \
|
||||
$(srcdir)/form.h \
|
||||
$(srcdir)/form.priv.h
|
||||
|
||||
tags:
|
||||
$(CTAGS) *.[ch]
|
||||
@ -175,7 +190,7 @@ realclean :: distclean
|
||||
|
||||
../include/mf_common.h \
|
||||
../include/eti.h :
|
||||
cd ../menu && $(MAKE) $@
|
||||
( cd ../menu && $(MAKE) $@ )
|
||||
|
||||
###############################################################################
|
||||
# The remainder of this file is automatically generated during configuration
|
||||
|
@ -33,37 +33,37 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: f_trace.c,v 1.5 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: f_trace.c,v 1.6 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
NCURSES_EXPORT(FIELD **)
|
||||
FORM_EXPORT(FIELD **)
|
||||
_nc_retrace_field_ptr(FIELD **code)
|
||||
{
|
||||
T((T_RETURN("%p"), (void *)code));
|
||||
return code;
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(FIELD *)
|
||||
FORM_EXPORT(FIELD *)
|
||||
_nc_retrace_field(FIELD *code)
|
||||
{
|
||||
T((T_RETURN("%p"), (void *)code));
|
||||
return code;
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_retrace_field_type(FIELDTYPE *code)
|
||||
{
|
||||
T((T_RETURN("%p"), (void *)code));
|
||||
return code;
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(FORM *)
|
||||
FORM_EXPORT(FORM *)
|
||||
_nc_retrace_form(FORM *code)
|
||||
{
|
||||
T((T_RETURN("%p"), (void *)code));
|
||||
return code;
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(Form_Hook)
|
||||
FORM_EXPORT(Form_Hook)
|
||||
_nc_retrace_form_hook(Form_Hook code)
|
||||
{
|
||||
TR_FUNC_BFR(1);
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_arg.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_arg.c,v 1.18 2020/12/11 22:05:24 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -61,7 +61,7 @@ MODULE_ID("$Id: fld_arg.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid argument
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_fieldtype_arg(FIELDTYPE *typ,
|
||||
void *(*const make_arg)(va_list *),
|
||||
void *(*const copy_arg)(const void *),
|
||||
@ -90,11 +90,11 @@ set_fieldtype_arg(FIELDTYPE *typ,
|
||||
| Facility : libnform
|
||||
| Function : void *field_arg(const FIELD *field)
|
||||
|
|
||||
| Description : Retrieve pointer to the fields argument structure.
|
||||
| Description : Retrieve pointer to the field's argument structure.
|
||||
|
|
||||
| Return Values : Pointer to structure or NULL if none is defined.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(void *)
|
||||
FORM_EXPORT(void *)
|
||||
field_arg(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_arg(%p)"), (const void *)field));
|
||||
|
@ -33,14 +33,14 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_attr.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_attr.c,v 1.15 2020/12/11 22:05:24 tom Exp $")
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
Field-Attribute manipulation routines
|
||||
--------------------------------------------------------------------------*/
|
||||
/* "Template" macro to generate a function to set a fields attribute */
|
||||
/* "Template" macro to generate a function to set a field's attribute */
|
||||
#define GEN_FIELD_ATTR_SET_FCT( name ) \
|
||||
NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
|
||||
FORM_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
|
||||
{\
|
||||
int res = E_BAD_ARGUMENT;\
|
||||
T((T_CALLED("set_field_" #name "(%p,%s)"), (void *)field, _traceattr(attr)));\
|
||||
@ -63,9 +63,9 @@ NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
|
||||
RETURN(res);\
|
||||
}
|
||||
|
||||
/* "Template" macro to generate a function to get a fields attribute */
|
||||
/* "Template" macro to generate a function to get a field's attribute */
|
||||
#define GEN_FIELD_ATTR_GET_FCT( name ) \
|
||||
NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
|
||||
FORM_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
|
||||
{\
|
||||
T((T_CALLED("field_" #name "(%p)"), (const void *) field));\
|
||||
returnAttr( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
|
||||
@ -88,7 +88,7 @@ GEN_FIELD_ATTR_SET_FCT(fore)
|
||||
| Facility : libnform
|
||||
| Function : chtype field_fore(const FIELD *)
|
||||
|
|
||||
| Description : Retrieve fields foreground attribute
|
||||
| Description : Retrieve field's foreground attribute
|
||||
|
|
||||
| Return Values : The foreground attribute
|
||||
+--------------------------------------------------------------------------*/
|
||||
@ -99,7 +99,7 @@ GEN_FIELD_ATTR_GET_FCT(fore)
|
||||
| Function : int set_field_back(FIELD *field, chtype attr)
|
||||
|
|
||||
| Description : Sets the background of the field used to display the
|
||||
| fields extend.
|
||||
| field's extend.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid attributes
|
||||
@ -111,7 +111,7 @@ GEN_FIELD_ATTR_SET_FCT(back)
|
||||
| Facility : libnform
|
||||
| Function : chtype field_back(const
|
||||
|
|
||||
| Description : Retrieve fields background attribute
|
||||
| Description : Retrieve field's background attribute
|
||||
|
|
||||
| Return Values : The background attribute
|
||||
+--------------------------------------------------------------------------*/
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_current.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_current.c,v 1.16 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -48,7 +48,7 @@ MODULE_ID("$Id: fld_current.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_INVALID_FIELD - current field can't be left
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_current_field(FORM *form, FIELD *field)
|
||||
{
|
||||
int err = E_OK;
|
||||
@ -113,7 +113,7 @@ set_current_field(FORM *form, FIELD *field)
|
||||
| E_BAD_ARGUMENT - invalid form pointer
|
||||
| E_REQUEST_DENIED - there is no current field to unfocus
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
unfocus_current_field(FORM *const form)
|
||||
{
|
||||
T((T_CALLED("unfocus_current_field(%p)"), (const void *)form));
|
||||
@ -137,7 +137,7 @@ unfocus_current_field(FORM *const form)
|
||||
|
|
||||
| Return Values : Pointer to the current field.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELD *)
|
||||
FORM_EXPORT(FIELD *)
|
||||
current_field(const FORM *form)
|
||||
{
|
||||
T((T_CALLED("current_field(%p)"), (const void *)form));
|
||||
@ -154,7 +154,7 @@ current_field(const FORM *form)
|
||||
| Return Values : >= 0 : field index
|
||||
| -1 : fieldpointer invalid or field not connected
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_index(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_index(%p)"), (const void *)field));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_def.c,v 1.42 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_def.c,v 1.43 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/* this can't be readonly */
|
||||
static FIELD default_field =
|
||||
@ -66,7 +66,7 @@ static FIELD default_field =
|
||||
NCURSES_FIELD_EXTENSION
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
|
||||
FORM_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -82,7 +82,7 @@ NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
|
||||
| Return Values : Pointer to argument structure. Maybe NULL.
|
||||
| In case of an error in *err an error counter is increased.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(TypeArgument *)
|
||||
FORM_EXPORT(TypeArgument *)
|
||||
_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
|
||||
{
|
||||
TypeArgument *res = (TypeArgument *)0;
|
||||
@ -130,7 +130,7 @@ _nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
|
||||
| Return Values : Pointer to argument structure. Maybe NULL.
|
||||
| In case of an error in *err an error counter is increased.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(TypeArgument *)
|
||||
FORM_EXPORT(TypeArgument *)
|
||||
_nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
|
||||
{
|
||||
TypeArgument *res = (TypeArgument *)0;
|
||||
@ -179,7 +179,7 @@ _nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
|
||||
|
|
||||
| Return Values : -
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(void)
|
||||
FORM_EXPORT(void)
|
||||
_nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp)
|
||||
{
|
||||
if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
|
||||
@ -212,7 +212,7 @@ _nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp)
|
||||
| Return Values : TRUE - copy worked
|
||||
| FALSE - error occurred
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(bool)
|
||||
FORM_EXPORT(bool)
|
||||
_nc_Copy_Type(FIELD *dst, FIELD const *src)
|
||||
{
|
||||
int err = 0;
|
||||
@ -247,7 +247,7 @@ _nc_Copy_Type(FIELD *dst, FIELD const *src)
|
||||
|
|
||||
| Return Values : -
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(void)
|
||||
FORM_EXPORT(void)
|
||||
_nc_Free_Type(FIELD *field)
|
||||
{
|
||||
assert(field != 0);
|
||||
@ -274,7 +274,7 @@ _nc_Free_Type(FIELD *field)
|
||||
|
|
||||
| Return Values : Pointer to the new field or NULL if failure.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELD *)
|
||||
FORM_EXPORT(FIELD *)
|
||||
new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
|
||||
{
|
||||
static const FIELD_CELL blank = BLANK;
|
||||
@ -354,7 +354,7 @@ new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
|
||||
| E_BAD_ARGUMENT - invalid field pointer
|
||||
| E_CONNECTED - field is connected
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
free_field(FIELD *field)
|
||||
{
|
||||
T((T_CALLED("free_field(%p)"), (void *)field));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_dup.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_dup.c,v 1.18 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -48,7 +48,7 @@ MODULE_ID("$Id: fld_dup.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
|
||||
|
|
||||
| Return Values : Pointer to the new field or NULL if failure
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELD *)
|
||||
FORM_EXPORT(FIELD *)
|
||||
dup_field(FIELD *field, int frow, int fcol)
|
||||
{
|
||||
FIELD *New_Field = (FIELD *)0;
|
||||
@ -61,8 +61,8 @@ dup_field(FIELD *field, int frow, int fcol)
|
||||
{
|
||||
T((T_CREATE("field %p"), (void *)New_Field));
|
||||
*New_Field = *_nc_Default_Field;
|
||||
New_Field->frow = (short) frow;
|
||||
New_Field->fcol = (short) fcol;
|
||||
New_Field->frow = (short)frow;
|
||||
New_Field->fcol = (short)fcol;
|
||||
New_Field->link = New_Field;
|
||||
New_Field->rows = field->rows;
|
||||
New_Field->cols = field->cols;
|
||||
@ -80,13 +80,12 @@ dup_field(FIELD *field, int frow, int fcol)
|
||||
|
||||
if (_nc_Copy_Type(New_Field, field))
|
||||
{
|
||||
size_t i, len;
|
||||
size_t len;
|
||||
|
||||
len = Total_Buffer_Size(New_Field);
|
||||
if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
|
||||
if ((New_Field->buf = (FIELD_CELL *)malloc(len * 20)))
|
||||
{
|
||||
for (i = 0; i < len; ++i)
|
||||
New_Field->buf[i] = field->buf[i];
|
||||
memcpy(New_Field->buf, field->buf, len);
|
||||
returnField(New_Field);
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_ftchoice.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_ftchoice.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -47,7 +47,7 @@ MODULE_ID("$Id: fld_ftchoice.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid arguments
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_fieldtype_choice(FIELDTYPE *typ,
|
||||
bool (*const next_choice) (FIELD *, const void *),
|
||||
bool (*const prev_choice) (FIELD *, const void *))
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_ftlink.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_ftlink.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -49,7 +49,7 @@ MODULE_ID("$Id: fld_ftlink.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
|
|
||||
| Return Values : Fieldtype pointer or NULL if error occurred.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2)
|
||||
{
|
||||
FIELDTYPE *nftyp = (FIELDTYPE *)0;
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_info.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_info.c,v 1.15 2020/12/12 01:05:42 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -42,12 +42,12 @@ MODULE_ID("$Id: fld_info.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
|
||||
| int *frow, int *fcol,
|
||||
| int *nrow, int *nbuf)
|
||||
|
|
||||
| Description : Retrieve infos about the fields creation parameters.
|
||||
| Description : Retrieve information about the field's creation parameters.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid field pointer
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_info(const FIELD *field,
|
||||
int *rows, int *cols,
|
||||
int *frow, int *fcol,
|
||||
@ -83,13 +83,13 @@ field_info(const FIELD *field,
|
||||
| int *drows, int *dcols,
|
||||
| int *maxgrow)
|
||||
|
|
||||
| Description : Retrieve informations about a dynamic fields current
|
||||
| Description : Retrieve information about a dynamic field's current
|
||||
| dynamic parameters.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid argument
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
dynamic_field_info(const FIELD *field, int *drows, int *dcols, int *maxgrow)
|
||||
{
|
||||
T((T_CALLED("dynamic_field_info(%p,%p,%p,%p)"),
|
||||
|
@ -33,19 +33,19 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_just.c,v 1.14 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_just.c,v 1.16 2020/12/11 23:16:37 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Function : int set_field_just(FIELD *field, int just)
|
||||
|
|
||||
| Description : Set the fields type of justification.
|
||||
| Description : Set the field's type of justification.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - one of the arguments was incorrect
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_field_just(FIELD *field, int just)
|
||||
{
|
||||
int res = E_BAD_ARGUMENT;
|
||||
@ -60,7 +60,7 @@ set_field_just(FIELD *field, int just)
|
||||
Normalize_Field(field);
|
||||
if (field->just != just)
|
||||
{
|
||||
field->just = (short) just;
|
||||
field->just = (short)just;
|
||||
res = _nc_Synchronize_Attributes(field);
|
||||
}
|
||||
else
|
||||
@ -73,11 +73,11 @@ set_field_just(FIELD *field, int just)
|
||||
| Facility : libnform
|
||||
| Function : int field_just( const FIELD *field )
|
||||
|
|
||||
| Description : Retrieve the fields type of justification
|
||||
| Description : Retrieve the field's type of justification
|
||||
|
|
||||
| Return Values : The justification type.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_just(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_just(%p)"), (const void *)field));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_link.c,v 1.14 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_link.c,v 1.16 2020/12/11 23:20:32 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -49,7 +49,7 @@ MODULE_ID("$Id: fld_link.c,v 1.14 2020/02/02 23:34:34 tom Exp $")
|
||||
|
|
||||
| Return Values : Pointer to the new field or NULL if failure
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELD *)
|
||||
FORM_EXPORT(FIELD *)
|
||||
link_field(FIELD *field, int frow, int fcol)
|
||||
{
|
||||
FIELD *New_Field = (FIELD *)0;
|
||||
@ -62,8 +62,8 @@ link_field(FIELD *field, int frow, int fcol)
|
||||
{
|
||||
T((T_CREATE("field %p"), (void *)New_Field));
|
||||
*New_Field = *_nc_Default_Field;
|
||||
New_Field->frow = (short) frow;
|
||||
New_Field->fcol = (short) fcol;
|
||||
New_Field->frow = (short)frow;
|
||||
New_Field->fcol = (short)fcol;
|
||||
|
||||
New_Field->link = field->link;
|
||||
field->link = New_Field;
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_max.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_max.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -45,7 +45,7 @@ MODULE_ID("$Id: fld_max.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid argument
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_max_field(FIELD *field, int maxgrow)
|
||||
{
|
||||
T((T_CALLED("set_max_field(%p,%d)"), (void *)field, maxgrow));
|
||||
|
@ -33,20 +33,20 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_move.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_move.c,v 1.15 2020/12/11 23:48:05 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Function : int move_field(FIELD *field,int frow, int fcol)
|
||||
|
|
||||
| Description : Moves the disconnected field to the new location in
|
||||
| the forms subwindow.
|
||||
| the form's subwindow.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid argument passed
|
||||
| E_CONNECTED - field is connected
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
move_field(FIELD *field, int frow, int fcol)
|
||||
{
|
||||
T((T_CALLED("move_field(%p,%d,%d)"), (void *)field, frow, fcol));
|
||||
@ -57,8 +57,8 @@ move_field(FIELD *field, int frow, int fcol)
|
||||
if (field->form)
|
||||
RETURN(E_CONNECTED);
|
||||
|
||||
field->frow = (short) frow;
|
||||
field->fcol = (short) fcol;
|
||||
field->frow = (short)frow;
|
||||
field->fcol = (short)fcol;
|
||||
RETURN(E_OK);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_newftyp.c,v 1.22 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_newftyp.c,v 1.23 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
static FIELDTYPE default_fieldtype =
|
||||
{
|
||||
@ -53,7 +53,7 @@ static FIELDTYPE default_fieldtype =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE *)
|
||||
FORM_EXPORT_VAR(FIELDTYPE *)
|
||||
_nc_Default_FieldType = &default_fieldtype;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
@ -71,7 +71,7 @@ NCURSES_EXPORT_VAR(FIELDTYPE *)
|
||||
|
|
||||
| Return Values : Fieldtype pointer or NULL if error occurred
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
new_fieldtype(bool (*const field_check) (FIELD *, const void *),
|
||||
bool (*const char_check) (int, const void *))
|
||||
{
|
||||
@ -121,7 +121,7 @@ new_fieldtype(bool (*const field_check) (FIELD *, const void *),
|
||||
| E_CONNECTED - there are fields referencing the type
|
||||
| E_BAD_ARGUMENT - invalid fieldtype pointer
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
free_fieldtype(FIELDTYPE *typ)
|
||||
{
|
||||
T((T_CALLED("free_fieldtype(%p)"), (void *)typ));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_opts.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_opts.c,v 1.15 2020/12/11 22:05:24 tom Exp $")
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
Field-Options manipulation routines
|
||||
@ -51,7 +51,7 @@ MODULE_ID("$Id: fld_opts.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_BAD_ARGUMENT - invalid options
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_field_opts(FIELD *field, Field_Options opts)
|
||||
{
|
||||
int res = E_BAD_ARGUMENT;
|
||||
@ -68,11 +68,11 @@ set_field_opts(FIELD *field, Field_Options opts)
|
||||
| Facility : libnform
|
||||
| Function : Field_Options field_opts(const FIELD *field)
|
||||
|
|
||||
| Description : Retrieve the fields options.
|
||||
| Description : Retrieve the field's options.
|
||||
|
|
||||
| Return Values : The options.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(Field_Options)
|
||||
FORM_EXPORT(Field_Options)
|
||||
field_opts(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_opts(%p)"), (const void *)field));
|
||||
@ -92,7 +92,7 @@ field_opts(const FIELD *field)
|
||||
| E_BAD_ARGUMENT - invalid options
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_opts_on(FIELD *field, Field_Options opts)
|
||||
{
|
||||
int res = E_BAD_ARGUMENT;
|
||||
@ -120,7 +120,7 @@ field_opts_on(FIELD *field, Field_Options opts)
|
||||
| E_BAD_ARGUMENT - invalid options
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_opts_off(FIELD *field, Field_Options opts)
|
||||
{
|
||||
int res = E_BAD_ARGUMENT;
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_pad.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_pad.c,v 1.13 2020/12/11 22:05:24 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -46,7 +46,7 @@ MODULE_ID("$Id: fld_pad.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_BAD_ARGUMENT - invalid field pointer or pad character
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_field_pad(FIELD *field, int ch)
|
||||
{
|
||||
int res = E_BAD_ARGUMENT;
|
||||
@ -71,11 +71,11 @@ set_field_pad(FIELD *field, int ch)
|
||||
| Facility : libnform
|
||||
| Function : int field_pad(const FIELD *field)
|
||||
|
|
||||
| Description : Retrieve the fields pad character.
|
||||
| Description : Retrieve the field's pad character.
|
||||
|
|
||||
| Return Values : The pad character.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_pad(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_pad(%p)"), (const void *)field));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_page.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_page.c,v 1.15 2020/12/11 23:15:26 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -45,7 +45,7 @@ MODULE_ID("$Id: fld_page.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_CONNECTED - field is connected
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_new_page(FIELD *field, bool new_page_flag)
|
||||
{
|
||||
T((T_CALLED("set_new_page(%p,%d)"), (void *)field, new_page_flag));
|
||||
@ -66,13 +66,13 @@ set_new_page(FIELD *field, bool new_page_flag)
|
||||
| Facility : libnform
|
||||
| Function : bool new_page(const FIELD *field)
|
||||
|
|
||||
| Description : Retrieve the info whether or not the field starts a
|
||||
| new page on the form.
|
||||
| Description : Retrieve the information whether or not the field starts
|
||||
| a new page on the form.
|
||||
|
|
||||
| Return Values : TRUE - field starts a new page
|
||||
| FALSE - field doesn't start a new page
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(bool)
|
||||
FORM_EXPORT(bool)
|
||||
new_page(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("new_page(%p)"), (const void *)field));
|
||||
|
@ -33,18 +33,18 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_stat.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_stat.c,v 1.17 2020/12/11 22:05:24 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Function : int set_field_status(FIELD *field, bool status)
|
||||
|
|
||||
| Description : Set or clear the 'changed' indication flag for that
|
||||
| fields primary buffer.
|
||||
| field's primary buffer.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_field_status(FIELD *field, bool status)
|
||||
{
|
||||
T((T_CALLED("set_field_status(%p,%d)"), (void *)field, status));
|
||||
@ -64,12 +64,12 @@ set_field_status(FIELD *field, bool status)
|
||||
| Function : bool field_status(const FIELD *field)
|
||||
|
|
||||
| Description : Retrieve the value of the 'changed' indication flag
|
||||
| for that fields primary buffer.
|
||||
| for that field's primary buffer.
|
||||
|
|
||||
| Return Values : TRUE - buffer has been changed
|
||||
| FALSE - buffer has not been changed
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(bool)
|
||||
FORM_EXPORT(bool)
|
||||
field_status(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_status(%p)"), (const void *)field));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_type.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_type.c,v 1.19 2020/12/11 23:20:37 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -46,8 +46,8 @@ MODULE_ID("$Id: fld_type.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
set_field_type(FIELD *field, FIELDTYPE *type,...)
|
||||
FORM_EXPORT(int)
|
||||
set_field_type(FIELD *field, FIELDTYPE *type, ...)
|
||||
{
|
||||
va_list ap;
|
||||
int res = E_SYSTEM_ERROR;
|
||||
@ -88,7 +88,7 @@ set_field_type(FIELD *field, FIELDTYPE *type,...)
|
||||
|
|
||||
| Return Values : Pointer to fieldtype of NULL if none is defined.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
field_type(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_type(%p)"), (const void *)field));
|
||||
|
@ -33,18 +33,18 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fld_user.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fld_user.c,v 1.19 2020/12/12 01:05:34 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Function : int set_field_userptr(FIELD *field, void *usrptr)
|
||||
|
|
||||
| Description : Set the pointer that is reserved in any field to store
|
||||
| application relevant informations
|
||||
| application relevant information.
|
||||
|
|
||||
| Return Values : E_OK - on success
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_field_userptr(FIELD *field, void *usrptr)
|
||||
{
|
||||
T((T_CALLED("set_field_userptr(%p,%p)"), (void *)field, (void *)usrptr));
|
||||
@ -58,12 +58,12 @@ set_field_userptr(FIELD *field, void *usrptr)
|
||||
| Function : void *field_userptr(const FIELD *field)
|
||||
|
|
||||
| Description : Return the pointer that is reserved in any field to
|
||||
| store application relevant informations.
|
||||
| store application relevant information.
|
||||
|
|
||||
| Return Values : Value of pointer. If no such pointer has been set,
|
||||
| NULL is returned
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(void *)
|
||||
FORM_EXPORT(void *)
|
||||
field_userptr(const FIELD *field)
|
||||
{
|
||||
T((T_CALLED("field_userptr(%p)"), (const void *)field));
|
||||
|
@ -31,7 +31,7 @@
|
||||
* Author: Juergen Pfeifer, 1995,1997 *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: form.h,v 0.30 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: form.h,v 0.31 2020/07/04 20:38:43 tom Exp $ */
|
||||
|
||||
#ifndef FORM_H
|
||||
#define FORM_H
|
||||
@ -44,6 +44,17 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(BUILDING_FORM)
|
||||
# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT
|
||||
#else
|
||||
# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT
|
||||
#endif
|
||||
|
||||
#define FORM_WRAPPED_VAR(type,name) extern FORM_IMPEXP type NCURSES_PUBLIC_VAR(name)(void)
|
||||
|
||||
#define FORM_EXPORT(type) FORM_IMPEXP type NCURSES_API
|
||||
#define FORM_EXPORT_VAR(type) FORM_IMPEXP type
|
||||
|
||||
#ifndef FORM_PRIV_H
|
||||
typedef void *FIELD_CELL;
|
||||
#endif
|
||||
@ -309,136 +320,136 @@ typedef void (*Form_Hook)(FORM *);
|
||||
/*************************
|
||||
* standard field types *
|
||||
*************************/
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
|
||||
|
||||
/************************************
|
||||
* built-in additional field types *
|
||||
* They are not defined in SVr4 *
|
||||
************************************/
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
|
||||
|
||||
/***********************
|
||||
* FIELDTYPE routines *
|
||||
***********************/
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) new_fieldtype (
|
||||
extern FORM_EXPORT(FIELDTYPE *) new_fieldtype (
|
||||
bool (* const field_check)(FIELD *,const void *),
|
||||
bool (* const char_check)(int,const void *));
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) link_fieldtype(
|
||||
extern FORM_EXPORT(FIELDTYPE *) link_fieldtype(
|
||||
FIELDTYPE *, FIELDTYPE *);
|
||||
|
||||
extern NCURSES_EXPORT(int) free_fieldtype (FIELDTYPE *);
|
||||
extern NCURSES_EXPORT(int) set_fieldtype_arg (FIELDTYPE *,
|
||||
extern FORM_EXPORT(int) free_fieldtype (FIELDTYPE *);
|
||||
extern FORM_EXPORT(int) set_fieldtype_arg (FIELDTYPE *,
|
||||
void * (* const make_arg)(va_list *),
|
||||
void * (* const copy_arg)(const void *),
|
||||
void (* const free_arg)(void *));
|
||||
extern NCURSES_EXPORT(int) set_fieldtype_choice (FIELDTYPE *,
|
||||
extern FORM_EXPORT(int) set_fieldtype_choice (FIELDTYPE *,
|
||||
bool (* const next_choice)(FIELD *,const void *),
|
||||
bool (* const prev_choice)(FIELD *,const void *));
|
||||
|
||||
/*******************
|
||||
* FIELD routines *
|
||||
*******************/
|
||||
extern NCURSES_EXPORT(FIELD *) new_field (int,int,int,int,int,int);
|
||||
extern NCURSES_EXPORT(FIELD *) dup_field (FIELD *,int,int);
|
||||
extern NCURSES_EXPORT(FIELD *) link_field (FIELD *,int,int);
|
||||
extern FORM_EXPORT(FIELD *) new_field (int,int,int,int,int,int);
|
||||
extern FORM_EXPORT(FIELD *) dup_field (FIELD *,int,int);
|
||||
extern FORM_EXPORT(FIELD *) link_field (FIELD *,int,int);
|
||||
|
||||
extern NCURSES_EXPORT(int) free_field (FIELD *);
|
||||
extern NCURSES_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *);
|
||||
extern NCURSES_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *);
|
||||
extern NCURSES_EXPORT(int) set_max_field ( FIELD *,int);
|
||||
extern NCURSES_EXPORT(int) move_field (FIELD *,int,int);
|
||||
extern NCURSES_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...);
|
||||
extern NCURSES_EXPORT(int) set_new_page (FIELD *,bool);
|
||||
extern NCURSES_EXPORT(int) set_field_just (FIELD *,int);
|
||||
extern NCURSES_EXPORT(int) field_just (const FIELD *);
|
||||
extern NCURSES_EXPORT(int) set_field_fore (FIELD *,chtype);
|
||||
extern NCURSES_EXPORT(int) set_field_back (FIELD *,chtype);
|
||||
extern NCURSES_EXPORT(int) set_field_pad (FIELD *,int);
|
||||
extern NCURSES_EXPORT(int) field_pad (const FIELD *);
|
||||
extern NCURSES_EXPORT(int) set_field_buffer (FIELD *,int,const char *);
|
||||
extern NCURSES_EXPORT(int) set_field_status (FIELD *,bool);
|
||||
extern NCURSES_EXPORT(int) set_field_userptr (FIELD *, void *);
|
||||
extern NCURSES_EXPORT(int) set_field_opts (FIELD *,Field_Options);
|
||||
extern NCURSES_EXPORT(int) field_opts_on (FIELD *,Field_Options);
|
||||
extern NCURSES_EXPORT(int) field_opts_off (FIELD *,Field_Options);
|
||||
extern FORM_EXPORT(int) free_field (FIELD *);
|
||||
extern FORM_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *);
|
||||
extern FORM_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *);
|
||||
extern FORM_EXPORT(int) set_max_field ( FIELD *,int);
|
||||
extern FORM_EXPORT(int) move_field (FIELD *,int,int);
|
||||
extern FORM_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...);
|
||||
extern FORM_EXPORT(int) set_new_page (FIELD *,bool);
|
||||
extern FORM_EXPORT(int) set_field_just (FIELD *,int);
|
||||
extern FORM_EXPORT(int) field_just (const FIELD *);
|
||||
extern FORM_EXPORT(int) set_field_fore (FIELD *,chtype);
|
||||
extern FORM_EXPORT(int) set_field_back (FIELD *,chtype);
|
||||
extern FORM_EXPORT(int) set_field_pad (FIELD *,int);
|
||||
extern FORM_EXPORT(int) field_pad (const FIELD *);
|
||||
extern FORM_EXPORT(int) set_field_buffer (FIELD *,int,const char *);
|
||||
extern FORM_EXPORT(int) set_field_status (FIELD *,bool);
|
||||
extern FORM_EXPORT(int) set_field_userptr (FIELD *, void *);
|
||||
extern FORM_EXPORT(int) set_field_opts (FIELD *,Field_Options);
|
||||
extern FORM_EXPORT(int) field_opts_on (FIELD *,Field_Options);
|
||||
extern FORM_EXPORT(int) field_opts_off (FIELD *,Field_Options);
|
||||
|
||||
extern NCURSES_EXPORT(chtype) field_fore (const FIELD *);
|
||||
extern NCURSES_EXPORT(chtype) field_back (const FIELD *);
|
||||
extern FORM_EXPORT(chtype) field_fore (const FIELD *);
|
||||
extern FORM_EXPORT(chtype) field_back (const FIELD *);
|
||||
|
||||
extern NCURSES_EXPORT(bool) new_page (const FIELD *);
|
||||
extern NCURSES_EXPORT(bool) field_status (const FIELD *);
|
||||
extern FORM_EXPORT(bool) new_page (const FIELD *);
|
||||
extern FORM_EXPORT(bool) field_status (const FIELD *);
|
||||
|
||||
extern NCURSES_EXPORT(void *) field_arg (const FIELD *);
|
||||
extern FORM_EXPORT(void *) field_arg (const FIELD *);
|
||||
|
||||
extern NCURSES_EXPORT(void *) field_userptr (const FIELD *);
|
||||
extern FORM_EXPORT(void *) field_userptr (const FIELD *);
|
||||
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) field_type (const FIELD *);
|
||||
extern FORM_EXPORT(FIELDTYPE *) field_type (const FIELD *);
|
||||
|
||||
extern NCURSES_EXPORT(char *) field_buffer (const FIELD *,int);
|
||||
extern FORM_EXPORT(char *) field_buffer (const FIELD *,int);
|
||||
|
||||
extern NCURSES_EXPORT(Field_Options) field_opts (const FIELD *);
|
||||
extern FORM_EXPORT(Field_Options) field_opts (const FIELD *);
|
||||
|
||||
/******************
|
||||
* FORM routines *
|
||||
******************/
|
||||
|
||||
extern NCURSES_EXPORT(FORM *) new_form (FIELD **);
|
||||
extern FORM_EXPORT(FORM *) new_form (FIELD **);
|
||||
|
||||
extern NCURSES_EXPORT(FIELD **) form_fields (const FORM *);
|
||||
extern NCURSES_EXPORT(FIELD *) current_field (const FORM *);
|
||||
extern FORM_EXPORT(FIELD **) form_fields (const FORM *);
|
||||
extern FORM_EXPORT(FIELD *) current_field (const FORM *);
|
||||
|
||||
extern NCURSES_EXPORT(WINDOW *) form_win (const FORM *);
|
||||
extern NCURSES_EXPORT(WINDOW *) form_sub (const FORM *);
|
||||
extern FORM_EXPORT(WINDOW *) form_win (const FORM *);
|
||||
extern FORM_EXPORT(WINDOW *) form_sub (const FORM *);
|
||||
|
||||
extern NCURSES_EXPORT(Form_Hook) form_init (const FORM *);
|
||||
extern NCURSES_EXPORT(Form_Hook) form_term (const FORM *);
|
||||
extern NCURSES_EXPORT(Form_Hook) field_init (const FORM *);
|
||||
extern NCURSES_EXPORT(Form_Hook) field_term (const FORM *);
|
||||
extern FORM_EXPORT(Form_Hook) form_init (const FORM *);
|
||||
extern FORM_EXPORT(Form_Hook) form_term (const FORM *);
|
||||
extern FORM_EXPORT(Form_Hook) field_init (const FORM *);
|
||||
extern FORM_EXPORT(Form_Hook) field_term (const FORM *);
|
||||
|
||||
extern NCURSES_EXPORT(int) free_form (FORM *);
|
||||
extern NCURSES_EXPORT(int) set_form_fields (FORM *,FIELD **);
|
||||
extern NCURSES_EXPORT(int) field_count (const FORM *);
|
||||
extern NCURSES_EXPORT(int) set_form_win (FORM *,WINDOW *);
|
||||
extern NCURSES_EXPORT(int) set_form_sub (FORM *,WINDOW *);
|
||||
extern NCURSES_EXPORT(int) set_current_field (FORM *,FIELD *);
|
||||
extern NCURSES_EXPORT(int) unfocus_current_field (FORM *);
|
||||
extern NCURSES_EXPORT(int) field_index (const FIELD *);
|
||||
extern NCURSES_EXPORT(int) set_form_page (FORM *,int);
|
||||
extern NCURSES_EXPORT(int) form_page (const FORM *);
|
||||
extern NCURSES_EXPORT(int) scale_form (const FORM *,int *,int *);
|
||||
extern NCURSES_EXPORT(int) set_form_init (FORM *,Form_Hook);
|
||||
extern NCURSES_EXPORT(int) set_form_term (FORM *,Form_Hook);
|
||||
extern NCURSES_EXPORT(int) set_field_init (FORM *,Form_Hook);
|
||||
extern NCURSES_EXPORT(int) set_field_term (FORM *,Form_Hook);
|
||||
extern NCURSES_EXPORT(int) post_form (FORM *);
|
||||
extern NCURSES_EXPORT(int) unpost_form (FORM *);
|
||||
extern NCURSES_EXPORT(int) pos_form_cursor (FORM *);
|
||||
extern NCURSES_EXPORT(int) form_driver (FORM *,int);
|
||||
extern FORM_EXPORT(int) free_form (FORM *);
|
||||
extern FORM_EXPORT(int) set_form_fields (FORM *,FIELD **);
|
||||
extern FORM_EXPORT(int) field_count (const FORM *);
|
||||
extern FORM_EXPORT(int) set_form_win (FORM *,WINDOW *);
|
||||
extern FORM_EXPORT(int) set_form_sub (FORM *,WINDOW *);
|
||||
extern FORM_EXPORT(int) set_current_field (FORM *,FIELD *);
|
||||
extern FORM_EXPORT(int) unfocus_current_field (FORM *);
|
||||
extern FORM_EXPORT(int) field_index (const FIELD *);
|
||||
extern FORM_EXPORT(int) set_form_page (FORM *,int);
|
||||
extern FORM_EXPORT(int) form_page (const FORM *);
|
||||
extern FORM_EXPORT(int) scale_form (const FORM *,int *,int *);
|
||||
extern FORM_EXPORT(int) set_form_init (FORM *,Form_Hook);
|
||||
extern FORM_EXPORT(int) set_form_term (FORM *,Form_Hook);
|
||||
extern FORM_EXPORT(int) set_field_init (FORM *,Form_Hook);
|
||||
extern FORM_EXPORT(int) set_field_term (FORM *,Form_Hook);
|
||||
extern FORM_EXPORT(int) post_form (FORM *);
|
||||
extern FORM_EXPORT(int) unpost_form (FORM *);
|
||||
extern FORM_EXPORT(int) pos_form_cursor (FORM *);
|
||||
extern FORM_EXPORT(int) form_driver (FORM *,int);
|
||||
# if NCURSES_WIDECHAR
|
||||
extern NCURSES_EXPORT(int) form_driver_w (FORM *,int,wchar_t);
|
||||
extern FORM_EXPORT(int) form_driver_w (FORM *,int,wchar_t);
|
||||
# endif
|
||||
extern NCURSES_EXPORT(int) set_form_userptr (FORM *,void *);
|
||||
extern NCURSES_EXPORT(int) set_form_opts (FORM *,Form_Options);
|
||||
extern NCURSES_EXPORT(int) form_opts_on (FORM *,Form_Options);
|
||||
extern NCURSES_EXPORT(int) form_opts_off (FORM *,Form_Options);
|
||||
extern NCURSES_EXPORT(int) form_request_by_name (const char *);
|
||||
extern FORM_EXPORT(int) set_form_userptr (FORM *,void *);
|
||||
extern FORM_EXPORT(int) set_form_opts (FORM *,Form_Options);
|
||||
extern FORM_EXPORT(int) form_opts_on (FORM *,Form_Options);
|
||||
extern FORM_EXPORT(int) form_opts_off (FORM *,Form_Options);
|
||||
extern FORM_EXPORT(int) form_request_by_name (const char *);
|
||||
|
||||
extern NCURSES_EXPORT(const char *) form_request_name (int);
|
||||
extern FORM_EXPORT(const char *) form_request_name (int);
|
||||
|
||||
extern NCURSES_EXPORT(void *) form_userptr (const FORM *);
|
||||
extern FORM_EXPORT(void *) form_userptr (const FORM *);
|
||||
|
||||
extern NCURSES_EXPORT(Form_Options) form_opts (const FORM *);
|
||||
extern FORM_EXPORT(Form_Options) form_opts (const FORM *);
|
||||
|
||||
extern NCURSES_EXPORT(bool) data_ahead (const FORM *);
|
||||
extern NCURSES_EXPORT(bool) data_behind (const FORM *);
|
||||
extern FORM_EXPORT(bool) data_ahead (const FORM *);
|
||||
extern FORM_EXPORT(bool) data_behind (const FORM *);
|
||||
|
||||
#if NCURSES_SP_FUNCS
|
||||
extern NCURSES_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **);
|
||||
extern FORM_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -31,7 +31,7 @@
|
||||
* Author: Juergen Pfeifer, 1995,1997 *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: form.priv.h,v 0.45 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: form.priv.h,v 0.47 2020/12/11 23:20:11 tom Exp $ */
|
||||
|
||||
#ifndef FORM_PRIV_H
|
||||
#define FORM_PRIV_H 1
|
||||
@ -69,9 +69,9 @@
|
||||
/***********************
|
||||
* Default objects *
|
||||
***********************/
|
||||
extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form;
|
||||
extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field;
|
||||
extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType;
|
||||
extern FORM_EXPORT_VAR(FORM *) _nc_Default_Form;
|
||||
extern FORM_EXPORT_VAR(FIELD *) _nc_Default_Field;
|
||||
extern FORM_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType;
|
||||
|
||||
/* form status values */
|
||||
#define _OVLMODE (0x04U) /* Form is in overlay mode */
|
||||
@ -110,7 +110,7 @@ extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType;
|
||||
#define Get_Form_Screen(form) CURRENT_SCREEN
|
||||
#endif
|
||||
|
||||
/* Retrieve forms window */
|
||||
/* Retrieve form's window */
|
||||
#define Get_Form_Window(form) \
|
||||
((form)->sub \
|
||||
? (form)->sub \
|
||||
@ -176,32 +176,32 @@ TypeArgument;
|
||||
|
||||
#define C_ZEROS '\0'
|
||||
|
||||
extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*);
|
||||
extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*);
|
||||
extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*);
|
||||
extern NCURSES_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *);
|
||||
extern NCURSES_EXPORT(void) _nc_Free_Type (FIELD *);
|
||||
extern FORM_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*);
|
||||
extern FORM_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*);
|
||||
extern FORM_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*);
|
||||
extern FORM_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *);
|
||||
extern FORM_EXPORT(void) _nc_Free_Type (FIELD *);
|
||||
|
||||
extern NCURSES_EXPORT(int) _nc_Synchronize_Attributes (FIELD*);
|
||||
extern NCURSES_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options);
|
||||
extern NCURSES_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*);
|
||||
extern NCURSES_EXPORT(int) _nc_Refresh_Current_Field (FORM*);
|
||||
extern NCURSES_EXPORT(FIELD *) _nc_First_Active_Field (FORM*);
|
||||
extern NCURSES_EXPORT(bool) _nc_Internal_Validation (FORM*);
|
||||
extern NCURSES_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*);
|
||||
extern NCURSES_EXPORT(int) _nc_Position_Form_Cursor (FORM*);
|
||||
extern NCURSES_EXPORT(void) _nc_Unset_Current_Field(FORM *form);
|
||||
extern FORM_EXPORT(int) _nc_Synchronize_Attributes (FIELD*);
|
||||
extern FORM_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options);
|
||||
extern FORM_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*);
|
||||
extern FORM_EXPORT(int) _nc_Refresh_Current_Field (FORM*);
|
||||
extern FORM_EXPORT(FIELD *) _nc_First_Active_Field (FORM*);
|
||||
extern FORM_EXPORT(bool) _nc_Internal_Validation (FORM*);
|
||||
extern FORM_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*);
|
||||
extern FORM_EXPORT(int) _nc_Position_Form_Cursor (FORM*);
|
||||
extern FORM_EXPORT(void) _nc_Unset_Current_Field(FORM *form);
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_INTEGER(void);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ALNUM(void);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ALPHA(void);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_NUMERIC(void);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_INTEGER(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ALNUM(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ALPHA(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_NUMERIC(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void);
|
||||
|
||||
extern NCURSES_EXPORT(FIELDTYPE *)
|
||||
extern FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_generic_fieldtype(bool (*const field_check) (FORM*,
|
||||
FIELD *,
|
||||
const void *),
|
||||
@ -212,18 +212,18 @@ _nc_generic_fieldtype(bool (*const field_check) (FORM*,
|
||||
bool (*const next)(FORM*,FIELD*,const void*),
|
||||
bool (*const prev)(FORM*,FIELD*,const void*),
|
||||
void (*freecallback)(void*));
|
||||
extern NCURSES_EXPORT(int) _nc_set_generic_fieldtype(FIELD*, FIELDTYPE*, int (*)(void**));
|
||||
extern NCURSES_EXPORT(WINDOW*) _nc_form_cursor(const FORM* , int* , int* );
|
||||
extern FORM_EXPORT(int) _nc_set_generic_fieldtype(FIELD*, FIELDTYPE*, int (*)(void**));
|
||||
extern FORM_EXPORT(WINDOW*) _nc_form_cursor(const FORM* , int* , int* );
|
||||
|
||||
#define INIT_FT_FUNC(func) {func}
|
||||
#else
|
||||
#define INIT_FT_FUNC(func) func
|
||||
#endif
|
||||
|
||||
extern NCURSES_EXPORT(void) _nc_get_fieldbuffer(FORM*, FIELD*, FIELD_CELL*);
|
||||
extern FORM_EXPORT(void) _nc_get_fieldbuffer(FORM*, FIELD*, FIELD_CELL*);
|
||||
|
||||
#if USE_WIDEC_SUPPORT
|
||||
extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *);
|
||||
extern FORM_EXPORT(wchar_t *) _nc_Widen_String(char *, int *);
|
||||
#endif
|
||||
|
||||
#ifdef TRACE
|
||||
@ -234,11 +234,11 @@ extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *);
|
||||
#define returnFieldType(code) TRACE_RETURN1(code,field_type)
|
||||
#define returnFormHook(code) TRACE_RETURN1(code,form_hook)
|
||||
|
||||
extern NCURSES_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **);
|
||||
extern NCURSES_EXPORT(FIELD *) _nc_retrace_field (FIELD *);
|
||||
extern NCURSES_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *);
|
||||
extern NCURSES_EXPORT(FORM *) _nc_retrace_form (FORM *);
|
||||
extern NCURSES_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook);
|
||||
extern FORM_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **);
|
||||
extern FORM_EXPORT(FIELD *) _nc_retrace_field (FIELD *);
|
||||
extern FORM_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *);
|
||||
extern FORM_EXPORT(FORM *) _nc_retrace_form (FORM *);
|
||||
extern FORM_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook);
|
||||
|
||||
#else /* !TRACE */
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_cursor.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_cursor.c,v 1.12 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -49,7 +49,7 @@ MODULE_ID("$Id: frm_cursor.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_BAD_ARGUMENT - Invalid form pointer
|
||||
| E_NOT_POSTED - Form is not posted
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
pos_form_cursor(FORM *form)
|
||||
{
|
||||
int res;
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_data.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_data.c,v 1.19 2020/12/11 23:20:37 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -45,7 +45,7 @@ MODULE_ID("$Id: frm_data.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : TRUE - there are off-screen data behind
|
||||
| FALSE - there are no off-screen data behind
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(bool)
|
||||
FORM_EXPORT(bool)
|
||||
data_behind(const FORM *form)
|
||||
{
|
||||
bool result = FALSE;
|
||||
@ -104,7 +104,7 @@ Only_Padding(WINDOW *w, int len, int pad)
|
||||
}
|
||||
}
|
||||
#else
|
||||
cell = (FIELD_CELL) winch(w);
|
||||
cell = (FIELD_CELL)winch(w);
|
||||
if (ChCharOf(cell) != ChCharOf(pad))
|
||||
{
|
||||
result = FALSE;
|
||||
@ -132,7 +132,7 @@ Only_Padding(WINDOW *w, int len, int pad)
|
||||
| Return Values : TRUE - there are off-screen data ahead
|
||||
| FALSE - there are no off-screen data ahead
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(bool)
|
||||
FORM_EXPORT(bool)
|
||||
data_ahead(const FORM *form)
|
||||
{
|
||||
bool result = FALSE;
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_def.c,v 1.27 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_def.c,v 1.29 2020/12/11 23:47:16 tom Exp $")
|
||||
|
||||
/* this can't be readonly */
|
||||
static FORM default_form =
|
||||
@ -62,14 +62,14 @@ static FORM default_form =
|
||||
NULL /* fieldterm */
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
|
||||
|
||||
FORM_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : static FIELD *Insert_Field_By_Position(
|
||||
| FIELD *new_field,
|
||||
| FIELD *new_field,
|
||||
| FIELD *head )
|
||||
|
|
||||
|
|
||||
| Description : Insert new_field into sorted fieldlist with head "head"
|
||||
| and return new head of sorted fieldlist. Sorting
|
||||
| criteria is (row,column). This is a circular list.
|
||||
@ -113,9 +113,9 @@ Insert_Field_By_Position(FIELD *newfield, FIELD *head)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : static void Disconnect_Fields(FORM *form)
|
||||
|
|
||||
|
|
||||
| Description : Break association between form and array of fields.
|
||||
|
|
||||
| Return Values : -
|
||||
@ -143,9 +143,9 @@ Disconnect_Fields(FORM *form)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : static int Connect_Fields(FORM *form, FIELD **fields)
|
||||
|
|
||||
|
|
||||
| Description : Set association between form and array of fields.
|
||||
|
|
||||
| Return Values : E_OK - no error
|
||||
@ -200,14 +200,14 @@ Connect_Fields(FORM *form, FIELD **fields)
|
||||
for (j = 0; j < field_cnt; j++)
|
||||
{
|
||||
if (j == 0)
|
||||
pg->pmin = (short) j;
|
||||
pg->pmin = (short)j;
|
||||
else
|
||||
{
|
||||
if (fields[j]->status & _NEWPAGE)
|
||||
{
|
||||
pg->pmax = (short) (j - 1);
|
||||
pg->pmax = (short)(j - 1);
|
||||
pg++;
|
||||
pg->pmin = (short) j;
|
||||
pg->pmin = (short)j;
|
||||
}
|
||||
}
|
||||
|
||||
@ -215,14 +215,14 @@ Connect_Fields(FORM *form, FIELD **fields)
|
||||
maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
|
||||
|
||||
if (form->rows < maximum_row_in_field)
|
||||
form->rows = (short) maximum_row_in_field;
|
||||
form->rows = (short)maximum_row_in_field;
|
||||
if (form->cols < maximum_col_in_field)
|
||||
form->cols = (short) maximum_col_in_field;
|
||||
form->cols = (short)maximum_col_in_field;
|
||||
}
|
||||
|
||||
pg->pmax = (short) (field_cnt - 1);
|
||||
form->maxfield = (short) field_cnt;
|
||||
form->maxpage = (short) page_nr;
|
||||
pg->pmax = (short)(field_cnt - 1);
|
||||
form->maxfield = (short)field_cnt;
|
||||
form->maxpage = (short)page_nr;
|
||||
|
||||
/* Sort fields on form pages */
|
||||
for (page_nr = 0; page_nr < form->maxpage; page_nr++)
|
||||
@ -231,8 +231,8 @@ Connect_Fields(FORM *form, FIELD **fields)
|
||||
|
||||
for (j = form->page[page_nr].pmin; j <= form->page[page_nr].pmax; j++)
|
||||
{
|
||||
fields[j]->index = (short) j;
|
||||
fields[j]->page = (short) page_nr;
|
||||
fields[j]->index = (short)j;
|
||||
fields[j]->page = (short)page_nr;
|
||||
fld = Insert_Field_By_Position(fields[j], fld);
|
||||
}
|
||||
if (fld)
|
||||
@ -250,10 +250,10 @@ Connect_Fields(FORM *form, FIELD **fields)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : static int Associate_Fields(FORM *form, FIELD **fields)
|
||||
|
|
||||
| Description : Set association between form and array of fields.
|
||||
|
|
||||
| Description : Set association between form and array of fields.
|
||||
| If there are fields, position to first active field.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
@ -283,9 +283,9 @@ Associate_Fields(FORM *form, FIELD **fields)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : FORM *new_form_sp(SCREEN* sp, FIELD** fields )
|
||||
|
|
||||
|
|
||||
| Description : Create new form with given array of fields.
|
||||
|
|
||||
| Return Values : Pointer to form. NULL if error occurred.
|
||||
@ -295,7 +295,7 @@ Associate_Fields(FORM *form, FIELD **fields)
|
||||
| E_CONNECTED - a field is already connected
|
||||
| E_SYSTEM_ERROR - not enough memory
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FORM *)
|
||||
FORM_EXPORT(FORM *)
|
||||
NCURSES_SP_NAME(new_form) (NCURSES_SP_DCLx FIELD **fields)
|
||||
{
|
||||
int err = E_SYSTEM_ERROR;
|
||||
@ -331,9 +331,9 @@ NCURSES_SP_NAME(new_form) (NCURSES_SP_DCLx FIELD **fields)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : FORM* new_form(FIELD** fields )
|
||||
|
|
||||
|
|
||||
| Description : Create new form with given array of fields.
|
||||
|
|
||||
| Return Values : Pointer to form. NULL if error occurred.
|
||||
@ -344,7 +344,7 @@ NCURSES_SP_NAME(new_form) (NCURSES_SP_DCLx FIELD **fields)
|
||||
| E_SYSTEM_ERROR - not enough memory
|
||||
+--------------------------------------------------------------------------*/
|
||||
#if NCURSES_SP_FUNCS
|
||||
NCURSES_EXPORT(FORM *)
|
||||
FORM_EXPORT(FORM *)
|
||||
new_form(FIELD **fields)
|
||||
{
|
||||
return NCURSES_SP_NAME(new_form) (CURRENT_SCREEN, fields);
|
||||
@ -352,16 +352,16 @@ new_form(FIELD **fields)
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : int free_form( FORM *form )
|
||||
|
|
||||
|
|
||||
| Description : Release internal memory associated with form.
|
||||
|
|
||||
| Return Values : E_OK - no error
|
||||
| E_BAD_ARGUMENT - invalid form pointer
|
||||
| E_POSTED - form is posted
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
free_form(FORM *form)
|
||||
{
|
||||
T((T_CALLED("free_form(%p)"), (void *)form));
|
||||
@ -381,9 +381,9 @@ free_form(FORM *form)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : int set_form_fields( FORM *form, FIELD **fields )
|
||||
|
|
||||
|
|
||||
| Description : Set a new association of an array of fields to a form
|
||||
|
|
||||
| Return Values : E_OK - no error
|
||||
@ -392,7 +392,7 @@ free_form(FORM *form)
|
||||
| E_POSTED - form is posted
|
||||
| E_SYSTEM_ERROR - not enough memory
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_form_fields(FORM *form, FIELD **fields)
|
||||
{
|
||||
FIELD **old;
|
||||
@ -416,14 +416,14 @@ set_form_fields(FORM *form, FIELD **fields)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : FIELD **form_fields( const FORM *form )
|
||||
|
|
||||
|
|
||||
| Description : Retrieve array of fields
|
||||
|
|
||||
| Return Values : Pointer to field array
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELD **)
|
||||
FORM_EXPORT(FIELD **)
|
||||
form_fields(const FORM *form)
|
||||
{
|
||||
T((T_CALLED("form_field(%p)"), (const void *)form));
|
||||
@ -431,14 +431,14 @@ form_fields(const FORM *form)
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Facility : libnform
|
||||
| Function : int field_count( const FORM *form )
|
||||
|
|
||||
|
|
||||
| Description : Retrieve number of fields
|
||||
|
|
||||
| Return Values : Number of fields, -1 if none are defined
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
field_count(const FORM *form)
|
||||
{
|
||||
T((T_CALLED("field_count(%p)"), (const void *)form));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_driver.c,v 1.129 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_driver.c,v 1.133 2020/12/12 00:36:42 tom Exp $")
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
This is the core module of the form library. It contains the majority
|
||||
@ -131,34 +131,34 @@ static int FE_Delete_Previous(FORM *);
|
||||
/* Calculate the position of a single row in a field buffer */
|
||||
#define Position_Of_Row_In_Buffer(field,row) ((row)*(field)->dcols)
|
||||
|
||||
/* Calculate start address for the fields buffer# N */
|
||||
/* Calculate start address for the field's buffer# N */
|
||||
#define Address_Of_Nth_Buffer(field,N) \
|
||||
((field)->buf + (N)*(1+Buffer_Length(field)))
|
||||
|
||||
/* Calculate the start address of the row in the fields specified buffer# N */
|
||||
/* Calculate the start address of the row in the field's specified buffer# N */
|
||||
#define Address_Of_Row_In_Nth_Buffer(field,N,row) \
|
||||
(Address_Of_Nth_Buffer(field,N) + Position_Of_Row_In_Buffer(field,row))
|
||||
|
||||
/* Calculate the start address of the row in the fields primary buffer */
|
||||
/* Calculate the start address of the row in the field's primary buffer */
|
||||
#define Address_Of_Row_In_Buffer(field,row) \
|
||||
Address_Of_Row_In_Nth_Buffer(field,0,row)
|
||||
|
||||
/* Calculate the start address of the row in the forms current field
|
||||
/* Calculate the start address of the row in the form's current field
|
||||
buffer# N */
|
||||
#define Address_Of_Current_Row_In_Nth_Buffer(form,N) \
|
||||
Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow)
|
||||
|
||||
/* Calculate the start address of the row in the forms current field
|
||||
/* Calculate the start address of the row in the form's current field
|
||||
primary buffer */
|
||||
#define Address_Of_Current_Row_In_Buffer(form) \
|
||||
Address_Of_Current_Row_In_Nth_Buffer(form,0)
|
||||
|
||||
/* Calculate the address of the cursor in the forms current field
|
||||
/* Calculate the address of the cursor in the form's current field
|
||||
primary buffer */
|
||||
#define Address_Of_Current_Position_In_Nth_Buffer(form,N) \
|
||||
(Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol)
|
||||
|
||||
/* Calculate the address of the cursor in the forms current field
|
||||
/* Calculate the address of the cursor in the form's current field
|
||||
buffer# N */
|
||||
#define Address_Of_Current_Position_In_Buffer(form) \
|
||||
Address_Of_Current_Position_In_Nth_Buffer(form,0)
|
||||
@ -187,7 +187,7 @@ static int FE_Delete_Previous(FORM *);
|
||||
/* Logic to determine whether or not a dynamic field may still grow */
|
||||
#define Growable(field) ((field)->status & _MAY_GROW)
|
||||
|
||||
/* Macro to set the attributes for a fields window */
|
||||
/* Macro to set the attributes for a field's window */
|
||||
#define Set_Field_Window_Attributes(field,win) \
|
||||
( wbkgdset((win),(chtype)((chtype)((field)->pad) | (field)->back)), \
|
||||
(void) wattrset((win), (int)(field)->fore) )
|
||||
@ -548,7 +548,7 @@ Buffer_To_Window(const FIELD *field, WINDOW *win)
|
||||
|
|
||||
| Return Values : -
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(void)
|
||||
FORM_EXPORT(void)
|
||||
_nc_get_fieldbuffer(FORM *form, FIELD *field, FIELD_CELL *buf)
|
||||
{
|
||||
int pad;
|
||||
@ -826,7 +826,7 @@ Field_encloses(FIELD *field, int ry, int rx)
|
||||
| E_SYSTEM_ERROR - form has no current field or
|
||||
| field-window
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_Position_Form_Cursor(FORM *form)
|
||||
{
|
||||
FIELD *field;
|
||||
@ -860,7 +860,7 @@ _nc_Position_Form_Cursor(FORM *form)
|
||||
| Facility : libnform
|
||||
| Function : int _nc_Refresh_Current_Field(FORM * form)
|
||||
|
|
||||
| Description : Propagate the changes in the fields window to the
|
||||
| Description : Propagate the changes in the field's window to the
|
||||
| window of the form.
|
||||
|
|
||||
| Return Values : E_OK - on success
|
||||
@ -868,7 +868,7 @@ _nc_Position_Form_Cursor(FORM *form)
|
||||
| E_SYSTEM_ERROR - general error
|
||||
+--------------------------------------------------------------------------*/
|
||||
static bool move_after_insert = TRUE;
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_Refresh_Current_Field(FORM *form)
|
||||
{
|
||||
WINDOW *formwin;
|
||||
@ -1263,7 +1263,7 @@ Synchronize_Linked_Fields(FIELD *field)
|
||||
| Facility : libnform
|
||||
| Function : int _nc_Synchronize_Attributes(FIELD * field)
|
||||
|
|
||||
| Description : If a fields visual attributes have changed, this
|
||||
| Description : If a field's visual attributes have changed, this
|
||||
| routine is called to propagate those changes to the
|
||||
| screen.
|
||||
|
|
||||
@ -1271,7 +1271,7 @@ Synchronize_Linked_Fields(FIELD *field)
|
||||
| E_BAD_ARGUMENT - invalid field pointer
|
||||
| E_SYSTEM_ERROR - some severe basic error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_Synchronize_Attributes(FIELD *field)
|
||||
{
|
||||
FORM *form;
|
||||
@ -1329,7 +1329,7 @@ _nc_Synchronize_Attributes(FIELD *field)
|
||||
| Function : int _nc_Synchronize_Options(FIELD * field,
|
||||
| Field_Options newopts)
|
||||
|
|
||||
| Description : If a fields options have changed, this routine is
|
||||
| Description : If a field's options have changed, this routine is
|
||||
| called to propagate these changes to the screen and
|
||||
| to really change the behavior of the field.
|
||||
|
|
||||
@ -1338,7 +1338,7 @@ _nc_Synchronize_Attributes(FIELD *field)
|
||||
| E_CURRENT - field is the current one
|
||||
| E_SYSTEM_ERROR - some severe basic error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_Synchronize_Options(FIELD *field, Field_Options newopts)
|
||||
{
|
||||
Field_Options oldopts;
|
||||
@ -1491,7 +1491,7 @@ _nc_Unset_Current_Field(FORM *form)
|
||||
| E_SYSTEM_ERROR - some severe basic error
|
||||
| E_NOT_CONNECTED - no fields are connected to the form
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_Set_Current_Field(FORM *form, FIELD *newfield)
|
||||
{
|
||||
FIELD *field;
|
||||
@ -3225,7 +3225,7 @@ Check_Field(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
|
||||
| Return Values : TRUE - field is valid
|
||||
| FALSE - field is invalid
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(bool)
|
||||
FORM_EXPORT(bool)
|
||||
_nc_Internal_Validation(FORM *form)
|
||||
{
|
||||
FIELD *field;
|
||||
@ -3284,7 +3284,7 @@ FV_Validation(FORM *form)
|
||||
|
|
||||
| Description : Get the next field after the given field on the current
|
||||
| page. The order of fields is the one defined by the
|
||||
| fields array. Only visible and active fields are
|
||||
| field's array. Only visible and active fields are
|
||||
| counted.
|
||||
|
|
||||
| Return Values : Pointer to the next field.
|
||||
@ -3319,7 +3319,7 @@ Next_Field_On_Page(FIELD *field)
|
||||
|
|
||||
| Return Values : Pointer to calculated field.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELD *)
|
||||
FORM_EXPORT(FIELD *)
|
||||
_nc_First_Active_Field(FORM *form)
|
||||
{
|
||||
FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
|
||||
@ -3367,7 +3367,7 @@ _nc_First_Active_Field(FORM *form)
|
||||
|
|
||||
| Description : Get the previous field before the given field on the
|
||||
| current page. The order of fields is the one defined by
|
||||
| the fields array. Only visible and active fields are
|
||||
| the field's array. Only visible and active fields are
|
||||
| counted.
|
||||
|
|
||||
| Return Values : Pointer to the previous field.
|
||||
@ -3501,10 +3501,10 @@ Right_Neighbor_Field(FIELD *field)
|
||||
| Function : static FIELD *Upper_Neighbor_Field(FIELD * field)
|
||||
|
|
||||
| Description : Because of the row-major nature of sorting the fields,
|
||||
| it is more difficult to define whats the upper neighbor
|
||||
| it is more difficult to define what the upper neighbor
|
||||
| field really means. We define that it must be on a
|
||||
| 'previous' line (cyclic order!) and is the rightmost
|
||||
| field laying on the left side of the given field. If
|
||||
| field lying on the left side of the given field. If
|
||||
| this set is empty, we take the first field on the line.
|
||||
|
|
||||
| Return Values : Pointer to the upper neighbor field.
|
||||
@ -3551,7 +3551,7 @@ Upper_Neighbor_Field(FIELD *field)
|
||||
| Function : static FIELD *Down_Neighbor_Field(FIELD * field)
|
||||
|
|
||||
| Description : Because of the row-major nature of sorting the fields,
|
||||
| its more difficult to define whats the down neighbor
|
||||
| it's more difficult to define what the down neighbor
|
||||
| field really means. We define that it must be on a
|
||||
| 'next' line (cyclic order!) and is the leftmost
|
||||
| field laying on the right side of the given field. If
|
||||
@ -3873,7 +3873,7 @@ FN_Down_Field(FORM *form)
|
||||
| E_BAD_ARGUMENT - invalid field pointer
|
||||
| E_SYSTEM_ERROR - some severe basic error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_Set_Form_Page(FORM *form, int page, FIELD *field)
|
||||
{
|
||||
int res = E_OK;
|
||||
@ -3952,7 +3952,7 @@ Previous_Page_Number(const FORM *form)
|
||||
| that the field is left and a new field is entered.
|
||||
| So the field must be validated and the field init/term
|
||||
| hooks must be called. Because also the page is changed,
|
||||
| the forms init/term hooks must be called also.
|
||||
| the form's init/term hooks must be called also.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_INVALID_FIELD - field is invalid
|
||||
@ -4354,10 +4354,10 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
|
||||
| E_NOT_CONNECTED - no fields are connected to the form
|
||||
| E_UNKNOWN_COMMAND - command not known
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
form_driver(FORM *form, int c)
|
||||
{
|
||||
const Binding_Info *BI = (Binding_Info *) 0;
|
||||
const Binding_Info *BI = (Binding_Info *)0;
|
||||
int res = E_UNKNOWN_COMMAND;
|
||||
|
||||
move_after_insert = TRUE;
|
||||
@ -4412,7 +4412,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 = (size_t) ((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */
|
||||
size_t method = (size_t)((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */
|
||||
|
||||
if ((method >= nMethods) || !(BI->cmd))
|
||||
res = E_SYSTEM_ERROR;
|
||||
@ -4561,10 +4561,10 @@ form_driver(FORM *form, int c)
|
||||
| E_NOT_CONNECTED - no fields are connected to the form
|
||||
| E_UNKNOWN_COMMAND - command not known
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
form_driver_w(FORM *form, int type, wchar_t c)
|
||||
{
|
||||
const Binding_Info *BI = (Binding_Info *) 0;
|
||||
const Binding_Info *BI = (Binding_Info *)0;
|
||||
int res = E_UNKNOWN_COMMAND;
|
||||
|
||||
T((T_CALLED("form_driver(%p,%d)"), (void *)form, (int)c));
|
||||
@ -4618,7 +4618,7 @@ form_driver_w(FORM *form, int type, wchar_t c)
|
||||
NULL /* Choice Request is generic */
|
||||
};
|
||||
size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0]));
|
||||
size_t method = (size_t) (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */
|
||||
size_t method = (size_t)(BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */
|
||||
|
||||
if ((method >= nMethods) || !(BI->cmd))
|
||||
res = E_SYSTEM_ERROR;
|
||||
@ -4736,14 +4736,14 @@ form_driver_w(FORM *form, int type, wchar_t c)
|
||||
| For dynamic fields this may grow the fieldbuffers if
|
||||
| the length of the value exceeds the current buffer
|
||||
| length. For buffer 0 only printable values are allowed.
|
||||
| For static fields, the value needs not to be zero ter-
|
||||
| minated. It is copied up to the length of the buffer.
|
||||
| For static fields, the value must not be zero terminated.
|
||||
| It is copied up to the length of the buffer.
|
||||
|
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid argument
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_field_buffer(FIELD *field, int buffer, const char *value)
|
||||
{
|
||||
FIELD_CELL *p;
|
||||
@ -4860,7 +4860,7 @@ set_field_buffer(FIELD *field, int buffer, const char *value)
|
||||
|
|
||||
| Return Values : Pointer to buffer or NULL if arguments were invalid.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(char *)
|
||||
FORM_EXPORT(char *)
|
||||
field_buffer(const FIELD *field, int buffer)
|
||||
{
|
||||
char *result = 0;
|
||||
@ -4928,7 +4928,7 @@ field_buffer(const FIELD *field, int buffer)
|
||||
| Convert a multibyte string to a wide-character string. The result must be
|
||||
| freed by the caller.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(wchar_t *)
|
||||
FORM_EXPORT(wchar_t *)
|
||||
_nc_Widen_String(char *source, int *lengthp)
|
||||
{
|
||||
wchar_t *result = 0;
|
||||
@ -4972,7 +4972,7 @@ _nc_Widen_String(char *source, int *lengthp)
|
||||
{
|
||||
result[need] = wch;
|
||||
}
|
||||
passed += (size_t) status;
|
||||
passed += (size_t)status;
|
||||
++need;
|
||||
}
|
||||
else
|
||||
|
@ -33,11 +33,11 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_hook.c,v 1.19 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_hook.c,v 1.20 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/* "Template" macro to generate function to set application specific hook */
|
||||
#define GEN_HOOK_SET_FUNCTION( typ, name ) \
|
||||
NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
|
||||
FORM_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
|
||||
{\
|
||||
TR_FUNC_BFR(1); \
|
||||
T((T_CALLED("set_" #typ"_"#name"(%p,%s)"), (void *) form, TR_FUNC_ARG(0, func)));\
|
||||
@ -47,7 +47,7 @@ NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook f
|
||||
|
||||
/* "Template" macro to generate function to get application specific hook */
|
||||
#define GEN_HOOK_GET_FUNCTION( typ, name ) \
|
||||
NCURSES_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\
|
||||
FORM_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\
|
||||
{\
|
||||
T((T_CALLED(#typ "_" #name "(%p)"), (const void *) form));\
|
||||
returnFormHook( Normalize_Form( form ) -> typ ## name );\
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_opts.c,v 1.18 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_opts.c,v 1.20 2020/12/12 00:37:00 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -45,12 +45,12 @@ MODULE_ID("$Id: frm_opts.c,v 1.18 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid options
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_form_opts(FORM *form, Form_Options opts)
|
||||
{
|
||||
T((T_CALLED("set_form_opts(%p,%d)"), (void *)form, opts));
|
||||
|
||||
opts &= (Form_Options) ALL_FORM_OPTS;
|
||||
opts &= (Form_Options)ALL_FORM_OPTS;
|
||||
if ((unsigned)opts & ~ALL_FORM_OPTS)
|
||||
RETURN(E_BAD_ARGUMENT);
|
||||
else
|
||||
@ -68,11 +68,11 @@ set_form_opts(FORM *form, Form_Options opts)
|
||||
|
|
||||
| Return Values : The option flags.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(Form_Options)
|
||||
FORM_EXPORT(Form_Options)
|
||||
form_opts(const FORM *form)
|
||||
{
|
||||
T((T_CALLED("form_opts(%p)"), (const void *)form));
|
||||
returnCode((Form_Options) ((unsigned)Normalize_Form(form)->opts & ALL_FORM_OPTS));
|
||||
returnCode((Form_Options)((unsigned)Normalize_Form(form)->opts & ALL_FORM_OPTS));
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
@ -85,12 +85,12 @@ form_opts(const FORM *form)
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid options
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
form_opts_on(FORM *form, Form_Options opts)
|
||||
{
|
||||
T((T_CALLED("form_opts_on(%p,%d)"), (void *)form, opts));
|
||||
|
||||
opts &= (Form_Options) ALL_FORM_OPTS;
|
||||
opts &= (Form_Options)ALL_FORM_OPTS;
|
||||
if ((unsigned)opts & ~ALL_FORM_OPTS)
|
||||
RETURN(E_BAD_ARGUMENT);
|
||||
else
|
||||
@ -110,12 +110,12 @@ form_opts_on(FORM *form, Form_Options opts)
|
||||
| Return Values : E_OK - success
|
||||
| E_BAD_ARGUMENT - invalid options
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
form_opts_off(FORM *form, Form_Options opts)
|
||||
{
|
||||
T((T_CALLED("form_opts_off(%p,%d)"), (void *)form, opts));
|
||||
|
||||
opts &= (Form_Options) ALL_FORM_OPTS;
|
||||
opts &= (Form_Options)ALL_FORM_OPTS;
|
||||
if ((unsigned)opts & ~ALL_FORM_OPTS)
|
||||
RETURN(E_BAD_ARGUMENT);
|
||||
else
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_page.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_page.c,v 1.14 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -47,7 +47,7 @@ MODULE_ID("$Id: frm_page.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_INVALID_FIELD - current field can't be left
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_form_page(FORM *form, int page)
|
||||
{
|
||||
int err = E_OK;
|
||||
@ -96,7 +96,7 @@ set_form_page(FORM *form, int page)
|
||||
| Return Values : >= 0 : current page number
|
||||
| -1 : invalid form pointer
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
form_page(const FORM *form)
|
||||
{
|
||||
T((T_CALLED("form_page(%p)"), (const void *)form));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_post.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_post.c,v 1.14 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -48,7 +48,7 @@ MODULE_ID("$Id: frm_post.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_NO_ROOM - form doesn't fit into subwindow
|
||||
| E_SYSTEM_ERROR - system error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
post_form(FORM *form)
|
||||
{
|
||||
WINDOW *formwin;
|
||||
@ -98,7 +98,7 @@ post_form(FORM *form)
|
||||
| E_NOT_POSTED - form isn't posted
|
||||
| E_BAD_STATE - called from a hook routine
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
unpost_form(FORM *form)
|
||||
{
|
||||
T((T_CALLED("unpost_form(%p)"), (void *)form));
|
||||
|
@ -38,7 +38,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_req_name.c,v 1.20 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_req_name.c,v 1.21 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
#define DATA(s) { s }
|
||||
|
||||
@ -120,7 +120,7 @@ static const char request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1][13] =
|
||||
| Return Values : Pointer to name - on success
|
||||
| NULL - on invalid request code
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(const char *)
|
||||
FORM_EXPORT(const char *)
|
||||
form_request_name(int request)
|
||||
{
|
||||
T((T_CALLED("form_request_name(%d)"), request));
|
||||
@ -143,7 +143,7 @@ form_request_name(int request)
|
||||
| Return Values : Request Id - on success
|
||||
| E_NO_MATCH - request not found
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
form_request_by_name(const char *str)
|
||||
{
|
||||
/* because the table is so small, it doesn't really hurt
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_scale.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_scale.c,v 1.12 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -45,7 +45,7 @@ MODULE_ID("$Id: frm_scale.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
| E_BAD_ARGUMENT - invalid form pointer
|
||||
| E_NOT_CONNECTED - no fields connected to form
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
scale_form(const FORM *form, int *rows, int *cols)
|
||||
{
|
||||
T((T_CALLED("scale_form(%p,%p,%p)"),
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_sub.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_sub.c,v 1.14 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -44,7 +44,7 @@ MODULE_ID("$Id: frm_sub.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_POSTED - form is posted
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_form_sub(FORM *form, WINDOW *win)
|
||||
{
|
||||
T((T_CALLED("set_form_sub(%p,%p)"), (void *)form, (void *)win));
|
||||
@ -73,7 +73,7 @@ set_form_sub(FORM *form, WINDOW *win)
|
||||
|
|
||||
| Return Values : The pointer to the Subwindow.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(WINDOW *)
|
||||
FORM_EXPORT(WINDOW *)
|
||||
form_sub(const FORM *form)
|
||||
{
|
||||
const FORM *f;
|
||||
|
@ -33,18 +33,18 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_user.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_user.c,v 1.18 2020/12/12 01:05:20 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
| Function : int set_form_userptr(FORM *form, void *usrptr)
|
||||
|
|
||||
| Description : Set the pointer that is reserved in any form to store
|
||||
| application relevant informations
|
||||
| application relevant information.
|
||||
|
|
||||
| Return Values : E_OK - on success
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_form_userptr(FORM *form, void *usrptr)
|
||||
{
|
||||
T((T_CALLED("set_form_userptr(%p,%p)"), (void *)form, (void *)usrptr));
|
||||
@ -58,12 +58,12 @@ set_form_userptr(FORM *form, void *usrptr)
|
||||
| Function : void *form_userptr(const FORM *form)
|
||||
|
|
||||
| Description : Return the pointer that is reserved in any form to
|
||||
| store application relevant informations.
|
||||
| store application relevant information.
|
||||
|
|
||||
| Return Values : Value of pointer. If no such pointer has been set,
|
||||
| NULL is returned
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(void *)
|
||||
FORM_EXPORT(void *)
|
||||
form_userptr(const FORM *form)
|
||||
{
|
||||
T((T_CALLED("form_userptr(%p)"), (const void *)form));
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: frm_win.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: frm_win.c,v 1.18 2020/05/24 01:40:20 anonymous.maarten Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -44,7 +44,7 @@ MODULE_ID("$Id: frm_win.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
|
||||
| Return Values : E_OK - success
|
||||
| E_POSTED - form is posted
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
set_form_win(FORM *form, WINDOW *win)
|
||||
{
|
||||
T((T_CALLED("set_form_win(%p,%p)"), (void *)form, (void *)win));
|
||||
@ -73,7 +73,7 @@ set_form_win(FORM *form, WINDOW *win)
|
||||
|
|
||||
| Return Values : The pointer to the Window or stdscr if there is none.
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(WINDOW *)
|
||||
FORM_EXPORT(WINDOW *)
|
||||
form_win(const FORM *form)
|
||||
{
|
||||
WINDOW *result;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_alnum.c,v 1.25 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_alnum.c,v 1.29 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
#define thisARG alnumARG
|
||||
|
||||
@ -56,7 +56,7 @@ thisARG;
|
||||
static void *
|
||||
Generic_This_Type(void *arg)
|
||||
{
|
||||
thisARG *argp = (thisARG *) 0;
|
||||
thisARG *argp = (thisARG *)0;
|
||||
|
||||
if (arg)
|
||||
{
|
||||
@ -140,7 +140,7 @@ static bool
|
||||
Check_This_Character(int c, const void *argp GCC_UNUSED)
|
||||
{
|
||||
#if USE_WIDEC_SUPPORT
|
||||
if (iswalnum((wint_t) c))
|
||||
if (iswalnum((wint_t)c))
|
||||
return TRUE;
|
||||
#endif
|
||||
return (isalnum(UChar(c)) ? TRUE : FALSE);
|
||||
@ -186,14 +186,14 @@ static FIELDTYPE typeTHIS =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM = &typeTHIS;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_ALNUM(void)
|
||||
{
|
||||
return TYPE_ALNUM;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_alpha.c,v 1.27 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_alpha.c,v 1.31 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
#define thisARG alphaARG
|
||||
|
||||
@ -56,7 +56,7 @@ thisARG;
|
||||
static void *
|
||||
Generic_This_Type(void *arg)
|
||||
{
|
||||
thisARG *argp = (thisARG *) 0;
|
||||
thisARG *argp = (thisARG *)0;
|
||||
|
||||
if (arg)
|
||||
{
|
||||
@ -140,7 +140,7 @@ static bool
|
||||
Check_This_Character(int c, const void *argp GCC_UNUSED)
|
||||
{
|
||||
#if USE_WIDEC_SUPPORT
|
||||
if (iswalpha((wint_t) c))
|
||||
if (iswalpha((wint_t)c))
|
||||
return TRUE;
|
||||
#endif
|
||||
return (isalpha(UChar(c)) ? TRUE : FALSE);
|
||||
@ -186,14 +186,14 @@ static FIELDTYPE typeTHIS =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA = &typeTHIS;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_ALPHA(void)
|
||||
{
|
||||
return TYPE_ALPHA;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_enum.c,v 1.27 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_enum.c,v 1.31 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@ -66,7 +66,7 @@ static void *
|
||||
Generic_Enum_Type(void *arg)
|
||||
{
|
||||
enumARG *argp = (enumARG *)0;
|
||||
enumParams *params = (enumParams *) arg;
|
||||
enumParams *params = (enumParams *)arg;
|
||||
|
||||
if (params)
|
||||
{
|
||||
@ -425,15 +425,14 @@ static FIELDTYPE typeENUM =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE *)
|
||||
TYPE_ENUM = &typeENUM;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM = &typeENUM;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_ENUM(void)
|
||||
{
|
||||
return TYPE_ENUM;
|
||||
|
@ -35,27 +35,28 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_generic.c,v 1.10 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_generic.c,v 1.14 2020/12/12 17:27:44 tom Exp $")
|
||||
|
||||
/*
|
||||
* This is not a full implementation of a field type, but adds some
|
||||
* support for higher level languages with some restrictions to interop
|
||||
* with C language. Especially the collection of arguments for the
|
||||
* with C language. In particular, the collection of arguments for the
|
||||
* various fieldtypes is not based on the vararg C mechanism, but on a
|
||||
* iterator based callback mechanism that allowes the high level language
|
||||
* iterator based callback mechanism that allows the high level language
|
||||
* to provide the arguments as a structure. Most languages have mechanisms
|
||||
* to layout structures so that they can be passed to C.
|
||||
*
|
||||
* The languages can register a new generic fieldtype dynamically and store
|
||||
* a handle (key) to the calling object as an argument. Together with that
|
||||
* it can register a freearg callback, so that the high level language
|
||||
* remains in control of the memory management of the arguments they pass.
|
||||
* The design idea is, that the high-level language - typically a OO
|
||||
* language like C# or Java, uses it's own dispatching mechanisms
|
||||
* language like C# or Java, uses its own dispatching mechanisms
|
||||
* (polymorphism) to call the proper check routines responsible for the
|
||||
* argument type. So these language implement typically only one generic
|
||||
* fieldtype they register with the forms library using this call.
|
||||
*
|
||||
* For that purpose we have extended the fieldtype struc by a new element
|
||||
* For that purpose we have extended the fieldtype structure by a new element
|
||||
* that gets the arguments from a single struct passed by the caller.
|
||||
*
|
||||
*/
|
||||
@ -99,7 +100,7 @@ Generic_This_Type(void *arg)
|
||||
|
|
||||
| Return Values : Fieldtype pointer or NULL if error occurred
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_generic_fieldtype(bool (*const field_check) (FORM *, FIELD *, const void *),
|
||||
bool (*const char_check) (int, FORM *, FIELD *, const
|
||||
void *),
|
||||
@ -220,7 +221,7 @@ GenericArgument(const FIELDTYPE *typ,
|
||||
| Return Values : E_OK if all went well
|
||||
| E_SYSTEM_ERROR if an error occurred
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(int)
|
||||
FORM_EXPORT(int)
|
||||
_nc_set_generic_fieldtype(FIELD *field,
|
||||
FIELDTYPE *ftyp,
|
||||
int (*argiterator) (void **))
|
||||
@ -273,9 +274,9 @@ _nc_set_generic_fieldtype(FIELD *field,
|
||||
| Description : Get the current position of the form cursor position
|
||||
| We also return the field window
|
||||
|
|
||||
| Return Values : The fields Window or NULL on error
|
||||
| Return Values : The field's Window or NULL on error
|
||||
+--------------------------------------------------------------------------*/
|
||||
NCURSES_EXPORT(WINDOW *)
|
||||
FORM_EXPORT(WINDOW *)
|
||||
_nc_form_cursor(const FORM *form, int *pRow, int *pCol)
|
||||
{
|
||||
int code = E_SYSTEM_ERROR;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_int.c,v 1.27 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_int.c,v 1.31 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
#if USE_WIDEC_SUPPORT
|
||||
#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
|
||||
@ -72,8 +72,8 @@ integerPARM;
|
||||
static void *
|
||||
Generic_This_Type(void *arg)
|
||||
{
|
||||
thisARG *argp = (thisARG *) 0;
|
||||
thisARG *param = (thisARG *) arg;
|
||||
thisARG *argp = (thisARG *)0;
|
||||
thisARG *param = (thisARG *)arg;
|
||||
|
||||
if (param)
|
||||
{
|
||||
@ -120,11 +120,12 @@ static void *
|
||||
Copy_This_Type(const void *argp)
|
||||
{
|
||||
const thisARG *ap = (const thisARG *)argp;
|
||||
thisARG *result = (thisARG *) 0;
|
||||
thisARG *result = (thisARG *)0;
|
||||
|
||||
if (argp)
|
||||
{
|
||||
result = typeMalloc(thisARG, 1);
|
||||
|
||||
if (result)
|
||||
{
|
||||
T((T_CREATE("thisARG %p"), (void *)result));
|
||||
@ -278,14 +279,14 @@ static FIELDTYPE typeTHIS =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER = &typeTHIS;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_INTEGER(void)
|
||||
{
|
||||
return TYPE_INTEGER;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_ipv4.c,v 1.11 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_ipv4.c,v 1.14 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
| Facility : libnform
|
||||
@ -104,14 +104,14 @@ static FIELDTYPE typeIPV4 =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4 = &typeIPV4;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_IPV4(void)
|
||||
{
|
||||
return TYPE_IPV4;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_num.c,v 1.32 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_num.c,v 1.36 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
#if HAVE_LOCALE_H
|
||||
#include <locale.h>
|
||||
@ -83,8 +83,8 @@ thisPARM;
|
||||
static void *
|
||||
Generic_This_Type(void *arg)
|
||||
{
|
||||
thisARG *argn = (thisARG *) 0;
|
||||
thisPARM *args = (thisPARM *) arg;
|
||||
thisARG *argn = (thisARG *)0;
|
||||
thisPARM *args = (thisPARM *)arg;
|
||||
|
||||
if (args)
|
||||
{
|
||||
@ -139,11 +139,12 @@ static void *
|
||||
Copy_This_Type(const void *argp)
|
||||
{
|
||||
const thisARG *ap = (const thisARG *)argp;
|
||||
thisARG *result = (thisARG *) 0;
|
||||
thisARG *result = (thisARG *)0;
|
||||
|
||||
if (argp)
|
||||
{
|
||||
result = typeMalloc(thisARG, 1);
|
||||
|
||||
if (result)
|
||||
{
|
||||
T((T_CREATE("thisARG %p"), (void *)result));
|
||||
@ -324,14 +325,14 @@ static FIELDTYPE typeTHIS =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC = &typeTHIS;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_NUMERIC(void)
|
||||
{
|
||||
return TYPE_NUMERIC;
|
||||
|
@ -35,12 +35,12 @@
|
||||
|
||||
#include "form.priv.h"
|
||||
|
||||
MODULE_ID("$Id: fty_regex.c,v 1.28 2020/02/02 23:34:34 tom Exp $")
|
||||
MODULE_ID("$Id: fty_regex.c,v 1.32 2020/12/12 01:15:37 tom Exp $")
|
||||
|
||||
#if HAVE_REGEX_H_FUNCS || HAVE_LIB_PCRE2 /* We prefer POSIX regex */
|
||||
|
||||
#if HAVE_PCRE2_POSIX_H
|
||||
#include <pcre2-posix.h>
|
||||
#if HAVE_PCRE2POSIX_H
|
||||
#include <pcre2posix.h>
|
||||
#elif HAVE_PCREPOSIX_H
|
||||
#include <pcreposix.h>
|
||||
#else
|
||||
@ -340,14 +340,14 @@ static FIELDTYPE typeREGEXP =
|
||||
#endif
|
||||
};
|
||||
|
||||
NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP;
|
||||
FORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP = &typeREGEXP;
|
||||
|
||||
#if NCURSES_INTEROP_FUNCS
|
||||
/* The next routines are to simplify the use of ncurses from
|
||||
programming languages with restictions on interop with C level
|
||||
programming languages with restrictions on interop with C level
|
||||
constructs (e.g. variable access or va_list + ellipsis constructs)
|
||||
*/
|
||||
NCURSES_EXPORT(FIELDTYPE *)
|
||||
FORM_EXPORT(FIELDTYPE *)
|
||||
_nc_TYPE_REGEXP(void)
|
||||
{
|
||||
return TYPE_REGEXP;
|
||||
|
@ -30,7 +30,7 @@
|
||||
# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
|
||||
# and: Eric S. Raymond <esr@snark.thyrsus.com>
|
||||
#
|
||||
# $Id: Caps,v 1.45 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps,v 1.46 2020/10/17 21:30:19 tom Exp $
|
||||
#
|
||||
# This is the master termcap/terminfo capability table.
|
||||
#
|
||||
@ -189,8 +189,12 @@
|
||||
#%indicates that padding may be specified
|
||||
#%.TP
|
||||
#%#[1-9]
|
||||
#%in the description field indicates that the string is passed through tparm with
|
||||
#%parms as given (#\fIi\fP).
|
||||
#%in the description field indicates that the string is passed
|
||||
#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
|
||||
#%.IP
|
||||
#%If no parameters are listed in the description,
|
||||
#%passing the string through \fBtparm\fP(3X) may give unexpected results,
|
||||
#%e.g., if it contains percent (%%) signs.
|
||||
#%.TP
|
||||
#%(P*)
|
||||
#%indicates that padding may vary in proportion to the number of
|
||||
|
@ -28,7 +28,7 @@
|
||||
#
|
||||
# Author: Thomas E. Dickey
|
||||
#
|
||||
# $Id: Caps-ncurses,v 1.8 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps-ncurses,v 1.10 2020/09/29 19:05:19 tom Exp $
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
@ -342,6 +342,7 @@ infoalias ksel kslt IBM key_select
|
||||
# are not listed here.
|
||||
#
|
||||
used_by ncurses
|
||||
userdef CO num n number of indexed colors overlaying RGB space
|
||||
userdef E3 str - clears the terminal's scrollback buffer.
|
||||
userdef RGB bool - use direct colors with 1/3 of color-pair bits per color.
|
||||
userdef RGB num n use direct colors with given number of bits per color.
|
||||
@ -361,6 +362,15 @@ userdef xm str nnnsnn mouse response, p6 = x-ordinate starting region
|
||||
userdef xm str nnnsnnn mouse response, p7 = y-ordinate ending region
|
||||
userdef xm str nnnsnnnn mouse response, p8 = x-ordinate ending region
|
||||
#
|
||||
used_by mintty
|
||||
userdef Rmol str - remove overline-mode
|
||||
userdef Smol str - set overline-mode
|
||||
userdef blink2 str - turn on rapid blinking
|
||||
userdef norm str - turn off bold and half-bright mode
|
||||
userdef opaq str - turn off blank mode
|
||||
userdef setal str n set underline-color
|
||||
userdef smul2 str - begin double underline mode
|
||||
#
|
||||
used_by screen
|
||||
userdef AN bool - turn on autonuke.
|
||||
userdef AX bool - understands ANSI set default fg/bg color (\E[39m / \E[49m).
|
||||
|
@ -29,7 +29,7 @@
|
||||
#
|
||||
# Author: Thomas Dickey
|
||||
#
|
||||
# $Id: Caps.aix4,v 1.17 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps.aix4,v 1.18 2020/10/17 21:30:19 tom Exp $
|
||||
#
|
||||
# This is an adaptation of ncurses' termcap/terminfo capability table, which
|
||||
# is designed to align with AIX 4.x's terminfo.
|
||||
@ -189,8 +189,12 @@
|
||||
#%indicates that padding may be specified
|
||||
#%.TP
|
||||
#%#[1-9]
|
||||
#%in the description field indicates that the string is passed through tparm with
|
||||
#%parms as given (#\fIi\fP).
|
||||
#%in the description field indicates that the string is passed
|
||||
#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
|
||||
#%.IP
|
||||
#%If no parameters are listed in the description,
|
||||
#%passing the string through \fBtparm\fP(3X) may give unexpected results,
|
||||
#%e.g., if it contains percent (%%) signs.
|
||||
#%.TP
|
||||
#%(P*)
|
||||
#%indicates that padding may vary in proportion to the number of
|
||||
|
@ -29,7 +29,7 @@
|
||||
#
|
||||
# Author: Thomas Dickey
|
||||
#
|
||||
# $Id: Caps.hpux11,v 1.15 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps.hpux11,v 1.16 2020/10/17 21:30:19 tom Exp $
|
||||
#
|
||||
# This is an adaptation of ncurses' termcap/terminfo capability table, which
|
||||
# is designed to align with HPUX 11.x's terminfo.
|
||||
@ -189,8 +189,12 @@
|
||||
#%indicates that padding may be specified
|
||||
#%.TP
|
||||
#%#[1-9]
|
||||
#%in the description field indicates that the string is passed through tparm with
|
||||
#%parms as given (#\fIi\fP).
|
||||
#%in the description field indicates that the string is passed
|
||||
#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
|
||||
#%.IP
|
||||
#%If no parameters are listed in the description,
|
||||
#%passing the string through \fBtparm\fP(3X) may give unexpected results,
|
||||
#%e.g., if it contains percent (%%) signs.
|
||||
#%.TP
|
||||
#%(P*)
|
||||
#%indicates that padding may vary in proportion to the number of
|
||||
|
@ -30,7 +30,7 @@
|
||||
# Author: Thomas Dickey
|
||||
# and: Ilya Zakharevich
|
||||
#
|
||||
# $Id: Caps.keys,v 1.14 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps.keys,v 1.15 2020/10/17 21:30:19 tom Exp $
|
||||
#
|
||||
# This is an adaptation of ncurses' termcap/terminfo capability table, which
|
||||
# is illustrates an experimental extension to describe alt-, shift- and
|
||||
@ -191,8 +191,12 @@
|
||||
#%indicates that padding may be specified
|
||||
#%.TP
|
||||
#%#[1-9]
|
||||
#%in the description field indicates that the string is passed through tparm with
|
||||
#%parms as given (#\fIi\fP).
|
||||
#%in the description field indicates that the string is passed
|
||||
#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
|
||||
#%.IP
|
||||
#%If no parameters are listed in the description,
|
||||
#%passing the string through \fBtparm\fP(3X) may give unexpected results,
|
||||
#%e.g., if it contains percent (%%) signs.
|
||||
#%.TP
|
||||
#%(P*)
|
||||
#%indicates that padding may vary in proportion to the number of
|
||||
|
@ -29,7 +29,7 @@
|
||||
#
|
||||
# Author: Thomas Dickey
|
||||
#
|
||||
# $Id: Caps.osf1r5,v 1.13 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps.osf1r5,v 1.14 2020/10/17 21:30:19 tom Exp $
|
||||
#
|
||||
# This is an adaptation of ncurses' termcap/terminfo capability table, which
|
||||
# is designed to align with OSF/1 version 5 (Tru64) terminfo.
|
||||
@ -189,8 +189,12 @@
|
||||
#%indicates that padding may be specified
|
||||
#%.TP
|
||||
#%#[1-9]
|
||||
#%in the description field indicates that the string is passed through tparm with
|
||||
#%parms as given (#\fIi\fP).
|
||||
#%in the description field indicates that the string is passed
|
||||
#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
|
||||
#%.IP
|
||||
#%If no parameters are listed in the description,
|
||||
#%passing the string through \fBtparm\fP(3X) may give unexpected results,
|
||||
#%e.g., if it contains percent (%%) signs.
|
||||
#%.TP
|
||||
#%(P*)
|
||||
#%indicates that padding may vary in proportion to the number of
|
||||
|
@ -29,7 +29,7 @@
|
||||
#
|
||||
# Author: Thomas Dickey
|
||||
#
|
||||
# $Id: Caps.uwin,v 1.12 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Caps.uwin,v 1.13 2020/10/17 21:30:19 tom Exp $
|
||||
#
|
||||
# This is an adaptation of ncurses' termcap/terminfo capability table, which
|
||||
# is designed to align with U/Win's terminfo.
|
||||
@ -189,8 +189,12 @@
|
||||
#%indicates that padding may be specified
|
||||
#%.TP
|
||||
#%#[1-9]
|
||||
#%in the description field indicates that the string is passed through tparm with
|
||||
#%parms as given (#\fIi\fP).
|
||||
#%in the description field indicates that the string is passed
|
||||
#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
|
||||
#%.IP
|
||||
#%If no parameters are listed in the description,
|
||||
#%passing the string through \fBtparm\fP(3X) may give unexpected results,
|
||||
#%e.g., if it contains percent (%%) signs.
|
||||
#%.TP
|
||||
#%(P*)
|
||||
#%indicates that padding may vary in proportion to the number of
|
||||
|
@ -1,5 +1,5 @@
|
||||
#! /bin/sh
|
||||
# $Id: MKkey_defs.sh,v 1.19 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: MKkey_defs.sh,v 1.21 2020/08/17 10:45:33 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright 2019,2020 Thomas E. Dickey #
|
||||
# Copyright 2001-2013,2017 Free Software Foundation, Inc. #
|
||||
@ -63,8 +63,7 @@ fi
|
||||
|
||||
# add keys that we generate automatically:
|
||||
cat >>$data <<EOF
|
||||
key_resize kr1 str R1 KEY_RESIZE + ----- Terminal resize event
|
||||
key_event kv1 str V1 KEY_EVENT + ----- We were interrupted by an event
|
||||
key_resize kr1 str R1 KEY_RESIZE + NCURSES_EXT_FUNCS Terminal resize event
|
||||
EOF
|
||||
|
||||
THIS=./`basename $0`
|
||||
@ -142,6 +141,12 @@ $5 != "-" && $6 != "-" {
|
||||
maxkey = thiskey;
|
||||
if (pass == 2 || pass == 3) {
|
||||
showkey=sprintf(octal_fmt, thiskey);
|
||||
ifdef = 0;
|
||||
if (index($7,"NCURSES_") == 1) {
|
||||
ifdef = 1;
|
||||
printf "\n";
|
||||
printf "#ifdef %s\n", $7;
|
||||
}
|
||||
if ($5 == "KEY_F(0)" ) {
|
||||
printf "#define "
|
||||
print_cols("KEY_F0", 16);
|
||||
@ -160,6 +165,9 @@ $5 != "-" && $6 != "-" {
|
||||
printf " %s", $i
|
||||
print " */"
|
||||
}
|
||||
if (ifdef != 0) {
|
||||
printf "#endif\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
END {
|
||||
|
@ -60,7 +60,7 @@ BEGIN {
|
||||
print "/* and: Thomas E. Dickey 1995-on */"
|
||||
print "/****************************************************************************/"
|
||||
print ""
|
||||
print "/* $Id: MKterm.h.awk.in,v 1.74 2020/02/02 23:34:34 tom Exp $ */"
|
||||
print "/* $Id: MKterm.h.awk.in,v 1.78 2020/10/31 23:14:24 tom Exp $ */"
|
||||
print ""
|
||||
print "/*"
|
||||
print "** term.h -- Definition of struct term"
|
||||
@ -82,6 +82,24 @@ BEGIN {
|
||||
print " * definition (based on the system for which this was configured)."
|
||||
print " */"
|
||||
print ""
|
||||
print "#ifndef __NCURSES_H"
|
||||
print ""
|
||||
print "typedef struct screen SCREEN;"
|
||||
print ""
|
||||
print "#if @NCURSES_SP_FUNCS@"
|
||||
print "#undef NCURSES_SP_FUNCS"
|
||||
print "#define NCURSES_SP_FUNCS @NCURSES_PATCH@"
|
||||
print "#undef NCURSES_SP_NAME"
|
||||
print "#define NCURSES_SP_NAME(name) name##_sp"
|
||||
print ""
|
||||
print "/* Define the sp-funcs helper function */"
|
||||
print "#undef NCURSES_SP_OUTC"
|
||||
print "#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)"
|
||||
print "typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);"
|
||||
print "#endif"
|
||||
print ""
|
||||
print "#endif /* __NCURSES_H */"
|
||||
print ""
|
||||
print "#undef NCURSES_CONST"
|
||||
print "#define NCURSES_CONST @NCURSES_CONST@"
|
||||
print ""
|
||||
@ -127,9 +145,14 @@ BEGIN {
|
||||
print ""
|
||||
print "#else /* !HAVE_TERMIO_H */"
|
||||
print ""
|
||||
print "#if _WIN32"
|
||||
print "# include <ncurses_mingw.h>"
|
||||
print "# define TTY struct termios"
|
||||
print "#if (defined(_WIN32) || defined(_WIN64))"
|
||||
print "#if @EXP_WIN32_DRIVER@"
|
||||
print "#include <win32_curses.h>"
|
||||
print "#define TTY struct winconmode"
|
||||
print "#else"
|
||||
print "#include <ncurses_mingw.h>"
|
||||
print "#define TTY struct termios"
|
||||
print "#endif"
|
||||
print "#else"
|
||||
print "#undef TERMIOS"
|
||||
print "#include <sgtty.h>"
|
||||
@ -143,6 +166,9 @@ BEGIN {
|
||||
print "#ifdef TERMIOS"
|
||||
print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
|
||||
print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
|
||||
print "#elif @EXP_WIN32_DRIVER@ && (defined(_WIN32) || defined(_WIN64))"
|
||||
print "#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf)"
|
||||
print "#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf)"
|
||||
print "#else"
|
||||
print "#define GET_TTY(fd, buf) gtty(fd, buf)"
|
||||
print "#define SET_TTY(fd, buf) stty(fd, buf)"
|
||||
@ -298,6 +324,7 @@ END {
|
||||
print "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int);"
|
||||
print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
|
||||
print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
|
||||
print "extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...);"
|
||||
print ""
|
||||
print "#endif /* NCURSES_INTERNALS */"
|
||||
print ""
|
||||
@ -330,7 +357,6 @@ END {
|
||||
print "extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */"
|
||||
print "#else"
|
||||
print "extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long); /* special */"
|
||||
print "extern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...); /* special */"
|
||||
print "#endif"
|
||||
print ""
|
||||
print "extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */"
|
||||
@ -361,7 +387,6 @@ END {
|
||||
print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...); /* special */"
|
||||
print "#else"
|
||||
print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long); /* special */"
|
||||
print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm_varargs) (SCREEN*, const char *, ...); /* special */"
|
||||
print "#endif"
|
||||
print ""
|
||||
print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.in,v 1.46 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: Makefile.in,v 1.51 2020/09/18 22:55:10 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright 2019,2020 Thomas E. Dickey #
|
||||
# Copyright 1998-2013,2015 Free Software Foundation, Inc. #
|
||||
@ -28,7 +28,7 @@
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
#
|
||||
# Author: Thomas E. Dickey 1996-2001
|
||||
# Author: Thomas E. Dickey 1996-on
|
||||
#
|
||||
# Makefile for ncurses source code.
|
||||
#
|
||||
@ -59,6 +59,10 @@ INSTALL_DATA = @INSTALL_DATA@
|
||||
AWK = @AWK@
|
||||
LN_S = @LN_S@
|
||||
|
||||
CC = @CC@
|
||||
CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
|
||||
CPPFLAGS = -DHAVE_CONFIG_H -I. @CPPFLAGS@
|
||||
|
||||
CTAGS = @CTAGS@
|
||||
ETAGS = @ETAGS@
|
||||
|
||||
@ -100,6 +104,7 @@ curses.h : $(CAPLIST) \
|
||||
$(srcdir)/MKkey_defs.sh
|
||||
cat curses.head >$@
|
||||
AWK=$(AWK) $(SHELL) $(srcdir)/MKkey_defs.sh $(CAPLIST) >>$@
|
||||
$(SHELL) -c 'if test "@NCURSES_WGETCH_EVENTS@" = "1" ; then cat $(srcdir)/curses.events >>$@ ; fi'
|
||||
$(SHELL) -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi'
|
||||
cat $(srcdir)/curses.tail >>$@
|
||||
|
||||
@ -141,6 +146,17 @@ distclean :: clean
|
||||
|
||||
realclean :: distclean
|
||||
|
||||
# Verify that each header-file can be compiled without including another.
|
||||
check:
|
||||
@$(SHELL) -c "for header in *.h;\
|
||||
do \
|
||||
echo \"** testing \$${header}\" ; \
|
||||
echo \"#include <\$${header}>\" >headers.c; \
|
||||
echo \"int main(void) { return 0; }\" >>headers.c; \
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \
|
||||
done"
|
||||
-@rm -f headers.*
|
||||
|
||||
###############################################################################
|
||||
# The remainder of this file is automatically generated during configuration
|
||||
###############################################################################
|
||||
|
55
contrib/ncurses/include/curses.events
Normal file
55
contrib/ncurses/include/curses.events
Normal file
@ -0,0 +1,55 @@
|
||||
/* $Id*/
|
||||
/*
|
||||
* vile:cmode:
|
||||
* This file is part of ncurses, designed to be appended after curses.h.in
|
||||
* (see that file for the relevant copyright).
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is an extension to support events...
|
||||
*/
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
#if !defined(__BEOS__) || defined(__HAIKU__)
|
||||
/* Fix _nc_timed_wait() on BEOS... */
|
||||
# define NCURSES_EVENT_VERSION 1
|
||||
#endif /* !defined(__BEOS__) */
|
||||
|
||||
/*
|
||||
* Bits to set in _nc_event.data.flags
|
||||
*/
|
||||
# define _NC_EVENT_TIMEOUT_MSEC 1
|
||||
# define _NC_EVENT_FILE 2
|
||||
# define _NC_EVENT_FILE_READABLE 2
|
||||
# if 0 /* Not supported yet... */
|
||||
# define _NC_EVENT_FILE_WRITABLE 4
|
||||
# define _NC_EVENT_FILE_EXCEPTION 8
|
||||
# endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type;
|
||||
union
|
||||
{
|
||||
long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */
|
||||
struct
|
||||
{
|
||||
unsigned int flags;
|
||||
int fd;
|
||||
unsigned int result;
|
||||
} fev; /* _NC_EVENT_FILE */
|
||||
} data;
|
||||
} _nc_event;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int count;
|
||||
int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */
|
||||
_nc_event *events[1];
|
||||
} _nc_eventlist;
|
||||
|
||||
extern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */
|
||||
extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */
|
||||
|
||||
#define KEY_EVENT 0633 /* We were interrupted by an event */
|
||||
|
||||
#endif /* NCURSES_WGETCH_EVENTS */
|
@ -33,7 +33,7 @@
|
||||
* and: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: curses.h.in,v 1.266 2020/02/08 10:51:53 tom Exp $ */
|
||||
/* $Id: curses.h.in,v 1.269 2020/08/17 14:14:12 tom Exp $ */
|
||||
|
||||
#ifndef __NCURSES_H
|
||||
#define __NCURSES_H
|
||||
@ -497,55 +497,6 @@ struct _win_st
|
||||
};
|
||||
#endif /* NCURSES_OPAQUE */
|
||||
|
||||
/*
|
||||
* This is an extension to support events...
|
||||
*/
|
||||
#if @NCURSES_EXT_FUNCS@
|
||||
#ifdef NCURSES_WGETCH_EVENTS
|
||||
#if !defined(__BEOS__) || defined(__HAIKU__)
|
||||
/* Fix _nc_timed_wait() on BEOS... */
|
||||
# define NCURSES_EVENT_VERSION 1
|
||||
#endif /* !defined(__BEOS__) */
|
||||
|
||||
/*
|
||||
* Bits to set in _nc_event.data.flags
|
||||
*/
|
||||
# define _NC_EVENT_TIMEOUT_MSEC 1
|
||||
# define _NC_EVENT_FILE 2
|
||||
# define _NC_EVENT_FILE_READABLE 2
|
||||
# if 0 /* Not supported yet... */
|
||||
# define _NC_EVENT_FILE_WRITABLE 4
|
||||
# define _NC_EVENT_FILE_EXCEPTION 8
|
||||
# endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type;
|
||||
union
|
||||
{
|
||||
long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */
|
||||
struct
|
||||
{
|
||||
unsigned int flags;
|
||||
int fd;
|
||||
unsigned int result;
|
||||
} fev; /* _NC_EVENT_FILE */
|
||||
} data;
|
||||
} _nc_event;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int count;
|
||||
int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */
|
||||
_nc_event *events[1];
|
||||
} _nc_eventlist;
|
||||
|
||||
extern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *); /* experimental */
|
||||
extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *);/* experimental */
|
||||
|
||||
#endif /* NCURSES_WGETCH_EVENTS */
|
||||
#endif /* NCURSES_EXT_FUNCS */
|
||||
|
||||
/*
|
||||
* GCC (and some other compilers) define '__attribute__'; we're using this
|
||||
* macro to alert the compiler to flag inconsistencies in printf/scanf-like
|
||||
@ -590,7 +541,7 @@ extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *)
|
||||
#endif
|
||||
|
||||
#undef GCC_DEPRECATED
|
||||
#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2))
|
||||
#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS)
|
||||
#define GCC_DEPRECATED(msg) __attribute__((deprecated))
|
||||
#else
|
||||
#define GCC_DEPRECATED(msg) /* nothing */
|
||||
@ -895,7 +846,6 @@ extern NCURSES_EXPORT(int) putp (const char *); /* implemented */
|
||||
extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */
|
||||
#else
|
||||
extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */
|
||||
extern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...); /* special */
|
||||
#endif
|
||||
|
||||
extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: headers,v 1.14 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: headers,v 1.15 2020/08/29 18:51:13 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright 2020 Thomas E. Dickey #
|
||||
# Copyright 1998-2012,2013 Free Software Foundation, Inc. #
|
||||
@ -49,5 +49,7 @@ $(srcdir)/nc_tparm.h
|
||||
@ port_win32con
|
||||
$(srcdir)/ncurses_mingw.h
|
||||
$(srcdir)/nc_mingw.h
|
||||
@ port_win32
|
||||
$(srcdir)/win32_curses.h
|
||||
|
||||
# vile:makemode
|
||||
|
@ -30,7 +30,7 @@
|
||||
/****************************************************************************
|
||||
* Author: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
/* $Id: nc_alloc.h,v 1.26 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: nc_alloc.h,v 1.27 2020/07/04 20:01:13 tom Exp $ */
|
||||
|
||||
#ifndef NC_ALLOC_included
|
||||
#define NC_ALLOC_included 1
|
||||
@ -78,7 +78,7 @@ extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN GCC_DEPRECATED("use
|
||||
#ifdef NCURSES_INTERNALS
|
||||
extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
|
||||
extern NCURSES_EXPORT(void) _nc_free_tparm(void);
|
||||
extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
|
||||
extern void _nc_leaks_dump_entry(void);
|
||||
extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
|
||||
|
||||
#if NCURSES_SP_FUNCS
|
||||
|
@ -31,12 +31,13 @@
|
||||
* Author: Thomas Dickey, 2008-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: nc_mingw.h,v 1.7 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: nc_mingw.h,v 1.9 2020/07/11 22:13:19 tom Exp $ */
|
||||
|
||||
#ifndef NC_MINGW_H
|
||||
#define NC_MINGW_H 1
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#ifdef WINVER
|
||||
# if WINVER < 0x0501
|
||||
# error WINVER must at least be 0x0501
|
||||
@ -52,9 +53,21 @@
|
||||
#undef gettimeofday
|
||||
#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz)
|
||||
|
||||
#if HAVE_SYS_TIME_H
|
||||
#include <sys/time.h> /* for struct timeval */
|
||||
#endif
|
||||
|
||||
extern int _nc_gettimeofday(struct timeval *, void *);
|
||||
#ifdef _MSC_VER
|
||||
#include <winsock2.h> /* for struct timeval */
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <ncurses_dll.h>
|
||||
|
||||
NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *);
|
||||
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
@ -65,7 +78,11 @@ extern int _nc_gettimeofday(struct timeval *, void *);
|
||||
|
||||
#undef wcwidth
|
||||
#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs))
|
||||
extern int _nc_wcwidth(wchar_t);
|
||||
NCURSES_EXPORT(int) _nc_wcwidth(wchar_t);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* Author: Thomas E. Dickey 2011 *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: nc_termios.h,v 1.7 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: nc_termios.h,v 1.8 2020/08/29 20:53:19 tom Exp $ */
|
||||
|
||||
#ifndef NC_TERMIOS_included
|
||||
#define NC_TERMIOS_included 1
|
||||
@ -70,9 +70,13 @@
|
||||
#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)
|
||||
#endif
|
||||
|
||||
#if defined(EXP_WIN32_DRIVER)
|
||||
#undef TERMIOS
|
||||
#endif
|
||||
|
||||
#else /* !HAVE_TERMIO_H */
|
||||
|
||||
#if _WIN32
|
||||
#if defined(_WIN32) && !defined(EXP_WIN32_DRIVER)
|
||||
|
||||
/* lflag bits */
|
||||
#define ISIG 0x0001
|
||||
|
@ -31,7 +31,7 @@
|
||||
* Author: Thomas E. Dickey 2006 *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: nc_tparm.h,v 1.10 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: nc_tparm.h,v 1.11 2020/05/27 23:33:31 tom Exp $ */
|
||||
|
||||
#ifndef NC_TPARM_included
|
||||
#define NC_TPARM_included 1
|
||||
@ -77,4 +77,16 @@
|
||||
#define TPARM_0(a) TPARM_1(a,0)
|
||||
#endif
|
||||
|
||||
#ifdef NCURSES_INTERNALS
|
||||
#define TIPARM_1(s,a) _nc_tiparm(1,s,a)
|
||||
#define TIPARM_2(s,a,b) _nc_tiparm(2,s,a,b)
|
||||
#define TIPARM_3(s,a,b,c) _nc_tiparm(3,s,a,b,c)
|
||||
#define TIPARM_4(s,a,b,c,d) _nc_tiparm(4,s,a,b,c,d)
|
||||
#define TIPARM_5(s,a,b,c,d,e) _nc_tiparm(5,s,a,b,c,d,e)
|
||||
#define TIPARM_6(s,a,b,c,d,e,f) _nc_tiparm(6,s,a,b,c,d,e,f)
|
||||
#define TIPARM_7(s,a,b,c,d,e,f,g) _nc_tiparm(7,s,a,b,c,d,e,f,g)
|
||||
#define TIPARM_8(s,a,b,c,d,e,f,g,h) _nc_tiparm(8,s,a,b,c,d,e,f,g,h)
|
||||
#define TIPARM_9(s,a,b,c,d,e,f,g,h,i) _nc_tiparm(9,s,a,b,c,d,e,f,g,h,i)
|
||||
#endif
|
||||
|
||||
#endif /* NC_TPARM_included */
|
||||
|
183
contrib/ncurses/include/nc_win32.h
Normal file
183
contrib/ncurses/include/nc_win32.h
Normal file
@ -0,0 +1,183 @@
|
||||
/****************************************************************************
|
||||
* Copyright 2018-2019,2020 Thomas E. Dickey *
|
||||
* Copyright 2008-2010,2017 Free Software Foundation, Inc. *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a *
|
||||
* copy of this software and associated documentation files (the *
|
||||
* "Software"), to deal in the Software without restriction, including *
|
||||
* without limitation the rights to use, copy, modify, merge, publish, *
|
||||
* distribute, distribute with modifications, sublicense, and/or sell *
|
||||
* copies of the Software, and to permit persons to whom the Software is *
|
||||
* furnished to do so, subject to the following conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included *
|
||||
* in all copies or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
||||
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
||||
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
* *
|
||||
* Except as contained in this notice, the name(s) of the above copyright *
|
||||
* holders shall not be used in advertising or otherwise to promote the *
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Thomas Dickey, 2008-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: nc_win32.h,v 1.9 2020/09/13 00:17:30 tom Exp $ */
|
||||
|
||||
#ifndef NC_WIN32_H
|
||||
#define NC_WIN32_H 1
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
|
||||
#ifndef _NC_WINDOWS
|
||||
#define _NC_WINDOWS
|
||||
#endif
|
||||
|
||||
#ifdef TERMIOS
|
||||
#error TERMIOS must not be defined on Windows
|
||||
#endif
|
||||
|
||||
/* We no longer support WindowsXP.
|
||||
Minimum requirement is Windows Vista or Server2008,
|
||||
aka Windows NT 6.0
|
||||
*/
|
||||
#ifdef WINVER
|
||||
# if WINVER < 0x0600
|
||||
# error WINVER must at least be 0x0600
|
||||
# endif
|
||||
#else
|
||||
# define WINVER 0x0600
|
||||
#endif
|
||||
|
||||
#undef _NC_CHECK_MINTTY
|
||||
#if WINVER >= 0x0600
|
||||
#define _NC_CHECK_MINTTY
|
||||
#endif
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#if HAVE_SYS_TIME_H
|
||||
#include <sys/time.h> /* for struct timeval */
|
||||
#endif
|
||||
|
||||
#ifdef _NC_MSC
|
||||
#include <winsock2.h> /* for struct timeval */
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <ncurses_dll.h>
|
||||
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
extern NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *);
|
||||
|
||||
#undef wcwidth
|
||||
#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs))
|
||||
extern NCURSES_EXPORT(int) _nc_wcwidth(wchar_t);
|
||||
|
||||
#ifdef EVENTLIST_2nd /* test.priv.h just needs the preceding */
|
||||
|
||||
extern NCURSES_EXPORT(void) _nc_console_size(int* Lines, int* Cols);
|
||||
extern NCURSES_EXPORT(HANDLE) _nc_console_handle(int fd);
|
||||
extern NCURSES_EXPORT(int) _nc_console_isatty(int fd);
|
||||
extern NCURSES_EXPORT(int) _nc_console_test(int fd);
|
||||
extern NCURSES_EXPORT(int) _nc_console_read(SCREEN *sp,HANDLE hdl,int *buf);
|
||||
extern NCURSES_EXPORT(int) _nc_console_twait(SCREEN *, HANDLE,int,int,int * EVENTLIST_2nd(_nc_eventlist * evl));
|
||||
extern NCURSES_EXPORT(WORD) _nc_console_MapColor(bool fore, int color);
|
||||
extern NCURSES_EXPORT(void) _nc_console_selectActiveHandle(void);
|
||||
extern NCURSES_EXPORT(bool) _nc_console_get_SBI(void);
|
||||
extern NCURSES_EXPORT(void) _nc_console_set_scrollback(bool normal, CONSOLE_SCREEN_BUFFER_INFO * info);
|
||||
extern NCURSES_EXPORT(int) _nc_console_testmouse(SCREEN *,HANDLE,int EVENTLIST_2nd(_nc_eventlist*));
|
||||
extern NCURSES_EXPORT(int) _nc_console_keyok(int keycode,int flag);
|
||||
extern NCURSES_EXPORT(bool) _nc_console_keyExist(int keycode);
|
||||
extern NCURSES_EXPORT(bool) _nc_console_checkinit(bool initFlag, bool assumeTermInfo);
|
||||
extern NCURSES_EXPORT(int) _nc_console_vt_supported(void);
|
||||
|
||||
#ifdef _NC_CHECK_MINTTY
|
||||
extern NCURSES_EXPORT(int) _nc_console_checkmintty(int fd, LPHANDLE pMinTTY);
|
||||
#endif
|
||||
|
||||
#undef VALID_TERM_ENV
|
||||
#define MS_TERMINAL "ms-terminal"
|
||||
#define VALID_TERM_ENV(term_env, no_terminal) \
|
||||
(term_env = (NonEmpty(term_env) \
|
||||
? term_env \
|
||||
: (_nc_console_vt_supported() \
|
||||
? MS_TERMINAL \
|
||||
: no_terminal)), \
|
||||
NonEmpty(term_env))
|
||||
|
||||
/*
|
||||
* Various Console mode definitions
|
||||
*/
|
||||
|
||||
/* Flags to enable virtual Terminal processing */
|
||||
#define VT_FLAG_OUT ENABLE_VIRTUAL_TERMINAL_PROCESSING
|
||||
#define VT_FLAG_IN ENABLE_VIRTUAL_TERMINAL_INPUT
|
||||
|
||||
/* Default flags for input/output modes */
|
||||
#define CONMODE_IN_DEFAULT (ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT | ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT)
|
||||
#define CONMODE_OUT_DEFAULT (ENABLE_PROCESSED_OUTPUT | DISABLE_NEWLINE_AUTO_RETURN | ENABLE_LVB_GRID_WORLDWIDE)
|
||||
|
||||
/* Flags to reset from RAW/CBREAK */
|
||||
#define CONMODE_NORAW (ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT)
|
||||
#define CONMODE_NOCBREAK (ENABLE_LINE_INPUT)
|
||||
|
||||
|
||||
#if defined(USE_TERM_DRIVER) && defined(USE_WIN32CON_DRIVER)
|
||||
extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER;
|
||||
#endif
|
||||
|
||||
#define CON_NUMPAIRS 64
|
||||
typedef struct {
|
||||
BOOL initialized;
|
||||
BOOL buffered;
|
||||
BOOL window_only;
|
||||
BOOL progMode;
|
||||
BOOL isMinTTY;
|
||||
BOOL isTermInfoConsole;
|
||||
HANDLE out;
|
||||
HANDLE inp;
|
||||
HANDLE hdl;
|
||||
HANDLE lastOut;
|
||||
int numButtons;
|
||||
LPDWORD ansi_map;
|
||||
LPDWORD map;
|
||||
LPDWORD rmap;
|
||||
WORD pairs[CON_NUMPAIRS];
|
||||
COORD origin;
|
||||
CHAR_INFO *save_screen;
|
||||
COORD save_size;
|
||||
SMALL_RECT save_region;
|
||||
CONSOLE_SCREEN_BUFFER_INFO SBI;
|
||||
CONSOLE_SCREEN_BUFFER_INFO save_SBI;
|
||||
CONSOLE_CURSOR_INFO save_CI;
|
||||
TTY originalMode;
|
||||
} ConsoleInfo;
|
||||
|
||||
extern NCURSES_EXPORT_VAR(ConsoleInfo) _nc_CONSOLE;
|
||||
#define WINCONSOLE _nc_CONSOLE
|
||||
|
||||
#define TypeAlloca(type,count)(type*) _alloca(sizeof(type)*(size_t)(count))
|
||||
|
||||
#endif /* EVENTLIST_2nd */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _WIN32 || _WIN64 */
|
||||
|
||||
#endif /* NC_WIN32_H */
|
@ -31,7 +31,7 @@
|
||||
* Author: Thomas E. Dickey 1997-on *
|
||||
****************************************************************************/
|
||||
/*
|
||||
* $Id: ncurses_cfg.hin,v 1.12 2020/02/02 23:34:34 tom Exp $
|
||||
* $Id: ncurses_cfg.hin,v 1.13 2020/03/08 12:37:59 tom Exp $
|
||||
*
|
||||
* Both ncurses_cfg.h and ncurses_def.h are internal header-files used when
|
||||
* building ncurses.
|
||||
@ -43,7 +43,7 @@
|
||||
* 971222) to autoconf 2.12 or 2.13 to do this.
|
||||
*
|
||||
* See:
|
||||
* http://invisible-island.net/autoconf/
|
||||
* https://invisible-island.net/autoconf/
|
||||
* ftp://ftp.invisible-island.net/autoconf/
|
||||
*/
|
||||
#ifndef NC_CONFIG_H
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: ncurses_defs,v 1.92 2020/02/02 23:34:34 tom Exp $
|
||||
# $Id: ncurses_defs,v 1.95 2020/08/01 19:48:21 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright 2018-2019,2020 Thomas E. Dickey #
|
||||
# Copyright 2000-2016,2017 Free Software Foundation, Inc. #
|
||||
@ -63,6 +63,8 @@ HAVE_DERWIN 1
|
||||
HAVE_DIRENT_H
|
||||
HAVE_DUPWIN 1
|
||||
HAVE_ERRNO
|
||||
HAVE_EXIT_CURSES 1
|
||||
HAVE_EXIT_TERMINFO 1
|
||||
HAVE_FCNTL_H
|
||||
HAVE_FILTER 1
|
||||
HAVE_FORM_H
|
||||
@ -120,7 +122,7 @@ HAVE_NANOSLEEP
|
||||
HAVE_NC_ALLOC_H
|
||||
HAVE_NEWPAD 1
|
||||
HAVE_PANEL_H
|
||||
HAVE_PCRE2_POSIX_H
|
||||
HAVE_PCRE2POSIX_H
|
||||
HAVE_PCREPOSIX_H
|
||||
HAVE_POLL
|
||||
HAVE_POLL_H
|
||||
|
@ -26,7 +26,7 @@
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
****************************************************************************/
|
||||
/* $Id: ncurses_dll.h.in,v 1.12 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */
|
||||
|
||||
#ifndef NCURSES_DLL_H_incl
|
||||
#define NCURSES_DLL_H_incl 1
|
||||
@ -66,52 +66,34 @@
|
||||
* using functions to access them.
|
||||
*/
|
||||
#define NCURSES_PUBLIC_VAR(name) @NCURSES_WRAP_PREFIX@##name
|
||||
#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
|
||||
|
||||
/* no longer needed on cygwin or mingw, thanks to auto-import */
|
||||
/* but this structure may be useful at some point for an MSVC build */
|
||||
/* so, for now unconditionally define the important flags */
|
||||
/* "the right way" for proper static and dll+auto-import behavior */
|
||||
#undef NCURSES_DLL
|
||||
#define NCURSES_STATIC
|
||||
|
||||
#if defined(__CYGWIN__) || defined(_WIN32)
|
||||
# if defined(NCURSES_DLL)
|
||||
# if defined(NCURSES_STATIC)
|
||||
# undef NCURSES_STATIC
|
||||
# endif
|
||||
# endif
|
||||
# undef NCURSES_IMPEXP
|
||||
# undef NCURSES_API
|
||||
# undef NCURSES_EXPORT
|
||||
# undef NCURSES_EXPORT_VAR
|
||||
# if defined(NCURSES_DLL)
|
||||
/* building a DLL */
|
||||
# define NCURSES_IMPEXP __declspec(dllexport)
|
||||
# elif defined(NCURSES_STATIC)
|
||||
/* building or linking to a static library */
|
||||
# define NCURSES_IMPEXP /* nothing */
|
||||
# else
|
||||
/* linking to the DLL */
|
||||
# define NCURSES_IMPEXP __declspec(dllimport)
|
||||
# endif
|
||||
# define NCURSES_API __cdecl
|
||||
# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
|
||||
# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
|
||||
#if defined(BUILDING_NCURSES)
|
||||
# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT
|
||||
#else
|
||||
# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT
|
||||
#endif
|
||||
|
||||
/* Take care of non-cygwin platforms */
|
||||
#if !defined(NCURSES_IMPEXP)
|
||||
# define NCURSES_IMPEXP /* nothing */
|
||||
#endif
|
||||
#if !defined(NCURSES_API)
|
||||
# define NCURSES_API /* nothing */
|
||||
#endif
|
||||
#if !defined(NCURSES_EXPORT)
|
||||
# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
|
||||
#endif
|
||||
#if !defined(NCURSES_EXPORT_VAR)
|
||||
# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
|
||||
#define NCURSES_WRAPPED_VAR(type,name) extern NCURSES_IMPEXP type NCURSES_PUBLIC_VAR(name)(void)
|
||||
|
||||
#define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
|
||||
#define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
|
||||
|
||||
/*
|
||||
* These symbols hide dllimport/dllexport, for compilers which care about it.
|
||||
*/
|
||||
#if defined(__CYGWIN__) || (defined(_WIN32) || defined(_WIN64))
|
||||
# if defined(NCURSES_STATIC) /* "static" here only implies "not-a-DLL" */
|
||||
# define NCURSES_EXPORT_GENERAL_IMPORT
|
||||
# define NCURSES_EXPORT_GENERAL_EXPORT
|
||||
# else
|
||||
# define NCURSES_EXPORT_GENERAL_IMPORT __declspec(dllimport)
|
||||
# define NCURSES_EXPORT_GENERAL_EXPORT __declspec(dllexport)
|
||||
# endif
|
||||
# define NCURSES_API __cdecl
|
||||
#else
|
||||
# define NCURSES_EXPORT_GENERAL_IMPORT
|
||||
# define NCURSES_EXPORT_GENERAL_EXPORT
|
||||
# define NCURSES_API /* FIXME: __attribute__ ((cdecl)) is only available on x86 */
|
||||
#endif
|
||||
|
||||
#endif /* NCURSES_DLL_H_incl */
|
||||
|
@ -33,7 +33,7 @@
|
||||
* and: Thomas E. Dickey 1998-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: term_entry.h,v 1.59 2020/02/02 23:34:34 tom Exp $ */
|
||||
/* $Id: term_entry.h,v 1.60 2020/02/29 15:46:00 anonymous.maarten Exp $ */
|
||||
|
||||
/*
|
||||
* term_entry.h -- interface to entry-manipulation code
|
||||
@ -200,8 +200,8 @@ extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *);
|
||||
extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */
|
||||
extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool);
|
||||
extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *);
|
||||
extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */
|
||||
extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE2 *, bool);
|
||||
extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */
|
||||
extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2)(TERMTYPE2 *, bool);
|
||||
|
||||
/* trace_xnames.c */
|
||||
extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
|
||||
|
75
contrib/ncurses/include/win32_curses.h
Normal file
75
contrib/ncurses/include/win32_curses.h
Normal file
@ -0,0 +1,75 @@
|
||||
/****************************************************************************
|
||||
* Copyright 2018,2020 Thomas E. Dickey *
|
||||
* Copyright 2008-2014,2017 Free Software Foundation, Inc. *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a *
|
||||
* copy of this software and associated documentation files (the *
|
||||
* "Software"), to deal in the Software without restriction, including *
|
||||
* without limitation the rights to use, copy, modify, merge, publish, *
|
||||
* distribute, distribute with modifications, sublicense, and/or sell *
|
||||
* copies of the Software, and to permit persons to whom the Software is *
|
||||
* furnished to do so, subject to the following conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included *
|
||||
* in all copies or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
||||
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
||||
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
* *
|
||||
* Except as contained in this notice, the name(s) of the above copyright *
|
||||
* holders shall not be used in advertising or otherwise to promote the *
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Author: Juergen Pfeifer, 2008-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: win32_curses.h,v 1.2 2020/11/14 23:52:46 tom Exp $ */
|
||||
|
||||
/*
|
||||
* This is the interface we use on Windows to mimic the control of the settings
|
||||
* of what acts like the classic TTY - the Windows Console.
|
||||
*/
|
||||
|
||||
#if (defined(_WIN32) || defined(_WIN64))
|
||||
#ifndef _NC_WIN32_CURSES_H
|
||||
#define _NC_WIN32_CURSES_H 1
|
||||
|
||||
struct winconmode
|
||||
{
|
||||
unsigned long dwFlagIn;
|
||||
unsigned long dwFlagOut;
|
||||
};
|
||||
|
||||
extern NCURSES_EXPORT(void*) _nc_console_fd2handle(int fd);
|
||||
extern NCURSES_EXPORT(int) _nc_console_setmode(void* handle, const struct winconmode* arg);
|
||||
extern NCURSES_EXPORT(int) _nc_console_getmode(void* handle, struct winconmode* arg);
|
||||
extern NCURSES_EXPORT(int) _nc_console_flush(void* handle);
|
||||
|
||||
/*
|
||||
A few definitions of Unix functions we need to emulate
|
||||
*/
|
||||
#define SIGHUP 1
|
||||
#define SIGKILL 9
|
||||
|
||||
#undef getlogin
|
||||
#define getlogin() getenv("USERNAME")
|
||||
|
||||
#undef ttyname
|
||||
#define ttyname(fd) NULL
|
||||
|
||||
#undef sleep
|
||||
#define sleep(n) Sleep((n) * 1000)
|
||||
|
||||
#undef gettimeofday
|
||||
#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz)
|
||||
|
||||
#endif /* _NC_WIN32_CURSES_H */
|
||||
#endif /* _WIN32||_WIN64 */
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_add_wch.3x,v 1.26 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_add_wch.3x,v 1.28 2020/10/17 23:10:38 tom Exp $
|
||||
.TH curs_add_wch 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -55,7 +55,7 @@
|
||||
.B "int mvadd_wch( int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
|
||||
.br
|
||||
.B "int mvwadd_wch( WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
|
||||
.br
|
||||
.sp
|
||||
.B "int echo_wchar( const cchar_t *\fIwch\fB );"
|
||||
.br
|
||||
.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
|
||||
@ -212,6 +212,25 @@ U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
.PP
|
||||
All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
|
||||
.PP
|
||||
X/Open does not define any error conditions.
|
||||
This implementation returns an error
|
||||
.bP
|
||||
if the window pointer is null or
|
||||
.bP
|
||||
if it is not possible to add a complete character in the window.
|
||||
.PP
|
||||
The latter may be due to different causes:
|
||||
.bP
|
||||
If \fBscrollok\fR is not enabled,
|
||||
writing a character at the lower right margin succeeds.
|
||||
However, an error is returned because
|
||||
it is not possible to wrap to a new line
|
||||
.bP
|
||||
If an error is detected when converting a multibyte character to a sequence
|
||||
of bytes,
|
||||
or if it is not possible to add all of the resulting bytes in the window,
|
||||
an error is returned.
|
||||
.PP
|
||||
Functions with a \*(``mv\*('' prefix first perform a cursor movement using
|
||||
\fBwmove\fP, and return an error if the position is outside the window,
|
||||
or if the window pointer is null.
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_add_wchstr.3x,v 1.13 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_add_wchstr.3x,v 1.15 2020/12/19 21:39:06 tom Exp $
|
||||
.TH curs_add_wchstr 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -61,7 +61,7 @@
|
||||
\fBint wadd_wchstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint wadd_wchnstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint mvadd_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint mvadd_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
@ -115,8 +115,8 @@ All functions except \fBwadd_wchnstr\fR may be macros.
|
||||
.SH PORTABILITY
|
||||
These entry points are described in the XSI Curses standard, Issue 4.
|
||||
.SH SEE ALSO
|
||||
\fBcurs_addwstr\fR(3X),
|
||||
\fBcurses\fR(3X).
|
||||
\fBcurses\fR(3X),
|
||||
\fBcurs_addwstr\fR(3X).
|
||||
.PP
|
||||
Comparable functions in the narrow-character (ncurses) library are
|
||||
described in
|
||||
|
@ -28,7 +28,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_addch.3x,v 1.51 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_addch.3x,v 1.55 2020/10/24 09:12:31 tom Exp $
|
||||
.TH curs_addch 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -48,17 +48,17 @@
|
||||
.SH SYNOPSIS
|
||||
\fB#include <curses.h>\fR
|
||||
.PP
|
||||
\fBint addch(const chtype ch);\fR
|
||||
\fBint addch(const chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
\fBint waddch(WINDOW *win, const chtype ch);\fR
|
||||
\fBint waddch(WINDOW *\fP\fIwin\fP\fB, const chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvaddch(int y, int x, const chtype ch);\fR
|
||||
\fBint mvaddch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvwaddch(WINDOW *win, int y, int x, const chtype ch);\fR
|
||||
\fBint mvwaddch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype \fP\fIch\fP\fB);\fR
|
||||
.sp
|
||||
\fBint echochar(const chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
\fBint echochar(const chtype ch);\fR
|
||||
.br
|
||||
\fBint wechochar(WINDOW *win, const chtype ch);\fR
|
||||
\fBint wechochar(WINDOW *\fP\fIwin\fP\fB, const chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
.SS Adding characters
|
||||
@ -94,11 +94,12 @@ scrolling the window if on the last line.
|
||||
Tabs are considered to be at every eighth column.
|
||||
The tab interval may be altered by setting the \fBTABSIZE\fR variable.
|
||||
.PP
|
||||
If \fIch\fR is any other control character, it
|
||||
is drawn in \fB^\fR\fIX\fR notation.
|
||||
If \fIch\fR is any other nonprintable character,
|
||||
it is drawn in printable form,
|
||||
i.e., the \fB^\fR\fIX\fR notation used by \fBunctrl\fR(3X).
|
||||
Calling \fBwinch\fR after adding a
|
||||
control character does not return the character itself, but instead returns
|
||||
the ^-representation of the control character.
|
||||
nonprintable character does not return the character itself,
|
||||
but instead returns the printable representation of the character.
|
||||
.PP
|
||||
Video attributes can be combined with a character argument passed to
|
||||
\fBaddch\fR or related functions by logical-ORing them into the character.
|
||||
@ -175,6 +176,19 @@ unless otherwise noted in the preceding routine descriptions.
|
||||
Functions with a \*(``mv\*('' prefix first perform a cursor movement using
|
||||
\fBwmove\fP, and return an error if the position is outside the window,
|
||||
or if the window pointer is null.
|
||||
.PP
|
||||
If it is not possible to add a complete character,
|
||||
an error is returned:
|
||||
.bP
|
||||
If \fBscrollok\fR is not enabled,
|
||||
writing a character at the lower right margin succeeds.
|
||||
However, an error is returned because
|
||||
it is not possible to wrap to a new line
|
||||
.bP
|
||||
If an error is detected when converting a multibyte character to a sequence
|
||||
of bytes,
|
||||
or if it is not possible to add all of the resulting bytes in the window,
|
||||
an error is returned.
|
||||
.SH NOTES
|
||||
Note that \fBaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, and
|
||||
\fBechochar\fR may be macros.
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_addchstr.3x,v 1.19 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_addchstr.3x,v 1.22 2020/12/19 21:39:20 tom Exp $
|
||||
.TH curs_addchstr 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -54,21 +54,21 @@
|
||||
.nf
|
||||
\fB#include <curses.h>\fR
|
||||
.PP
|
||||
\fBint addchstr(const chtype *chstr);\fR
|
||||
\fBint addchstr(const chtype *\fP\fIchstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint addchnstr(const chtype *chstr, int n);\fR
|
||||
\fBint addchnstr(const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint waddchstr(WINDOW *win, const chtype *chstr);\fR
|
||||
\fBint waddchstr(WINDOW *\fP\fIwin\fP\fB, const chtype *\fP\fIchstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint waddchnstr(WINDOW *win, const chtype *chstr, int n);\fR
|
||||
\fBint waddchnstr(WINDOW *\fP\fIwin\fP\fB, const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.sp
|
||||
\fBint mvaddchstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvaddchstr(int y, int x, const chtype *chstr);\fR
|
||||
\fBint mvaddchnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvaddchnstr(int y, int x, const chtype *chstr, int n);\fR
|
||||
\fBint mvwaddchstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR
|
||||
.br
|
||||
\fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR
|
||||
\fBint mvwaddchnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
These functions copy the (null-terminated)
|
||||
@ -109,8 +109,8 @@ All functions except \fBwaddchnstr\fR may be macros.
|
||||
.SH PORTABILITY
|
||||
These entry points are described in the XSI Curses standard, Issue 4.
|
||||
.SH SEE ALSO
|
||||
\fBcurs_addstr\fR(3X),
|
||||
\fBcurses\fR(3X).
|
||||
\fBcurses\fR(3X),
|
||||
\fBcurs_addstr\fR(3X).
|
||||
.PP
|
||||
Comparable functions in the wide-character (ncursesw) library are
|
||||
described in
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_addstr.3x,v 1.20 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_addstr.3x,v 1.23 2020/10/17 23:11:02 tom Exp $
|
||||
.TH curs_addstr 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -61,7 +61,7 @@
|
||||
\fBint waddstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint waddnstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint mvaddstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint mvaddnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
@ -73,14 +73,14 @@
|
||||
.SH DESCRIPTION
|
||||
These functions write the (null-terminated) character string
|
||||
\fIstr\fR on the given window.
|
||||
It is similar to calling \fBwaddch\fR once for each character in the string.
|
||||
It is similar to calling \fBwaddch\fR once for each byte in the string.
|
||||
.PP
|
||||
The \fImv\fR functions perform cursor movement once, before writing any
|
||||
characters.
|
||||
Thereafter, the cursor is advanced as a side-effect of writing to the window.
|
||||
.PP
|
||||
The four functions with \fIn\fR as the last argument
|
||||
write at most \fIn\fR characters,
|
||||
write at most \fIn\fR bytes,
|
||||
or until a terminating null is reached.
|
||||
If \fIn\fR is \-1, then the entire string will be added.
|
||||
.SH RETURN VALUE
|
||||
@ -98,6 +98,18 @@ if the corresponding calls to \fBwaddch\fP return an error.
|
||||
Functions with a \*(``mv\*('' prefix first perform a cursor movement using
|
||||
\fBwmove\fP, and return an error if the position is outside the window,
|
||||
or if the window pointer is null.
|
||||
If an error is returned by the \fBwmove\fP,
|
||||
no characters are added to the window.
|
||||
.PP
|
||||
If an error is returned by \fBwaddch\fP
|
||||
(e.g.,
|
||||
because the window is not large enough,
|
||||
or an illegal byte sequence was detected)
|
||||
only part of the string may be added.
|
||||
Aside from that,
|
||||
there is a special case in \fBwaddch\fP where an error may be
|
||||
returned after successfully writing a character to the lower-right corner
|
||||
of a window when \fBscrollok\fP is disabled.
|
||||
.SH NOTES
|
||||
All of these functions except \fBwaddnstr\fR may be macros.
|
||||
.SH PORTABILITY
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_addwstr.3x,v 1.14 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_addwstr.3x,v 1.15 2020/10/17 23:12:22 tom Exp $
|
||||
.TH curs_addwstr 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -61,7 +61,7 @@
|
||||
\fBint waddwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint waddnwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint mvaddwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint mvaddnwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_bkgd.3x,v 1.30 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_bkgd.3x,v 1.31 2020/10/17 23:12:52 tom Exp $
|
||||
.de bP
|
||||
.ie n .IP \(bu 4
|
||||
.el .IP \(bu 2
|
||||
@ -43,11 +43,11 @@
|
||||
\fBvoid bkgdset(chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
\fBvoid wbkgdset(WINDOW *\fP\fIwin, chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint bkgd(chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
\fBint wbkgd(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBchtype getbkgd(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_bkgrnd.3x,v 1.11 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_bkgrnd.3x,v 1.12 2020/10/17 23:13:15 tom Exp $
|
||||
.de bP
|
||||
.ie n .IP \(bu 4
|
||||
.el .IP \(bu 2
|
||||
@ -47,11 +47,11 @@
|
||||
\fBint bkgrnd(\fR\fB const cchar_t *\fR\fIwch\fR\fB);\fR
|
||||
.br
|
||||
\fBint wbkgrnd(\fR\fB WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBvoid bkgrndset(const cchar_t *\fR\fIwch\fR \fB);\fR
|
||||
.br
|
||||
\fBvoid wbkgrndset(WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint getbkgrnd(cchar_t *\fR\fIwch\fR\fB);\fR
|
||||
.br
|
||||
\fBint wgetbkgrnd(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwch\fR\fB);\fR
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_border.3x,v 1.25 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_border.3x,v 1.27 2020/10/18 00:33:06 tom Exp $
|
||||
.TH curs_border 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -51,31 +51,31 @@
|
||||
.hy
|
||||
.SH SYNOPSIS
|
||||
\fB#include <curses.h>\fR
|
||||
.sp
|
||||
\fBint border(chtype \fP\fIls\fP\fB, chtype \fP\fIrs\fP\fB, chtype \fP\fIts\fP\fB, chtype \fP\fIbs\fP\fB,\fR
|
||||
\fBchtype \fP\fItl\fP\fB, chtype \fP\fItr\fP\fB, chtype \fP\fIbl\fP\fB, chtype \fP\fIbr\fP\fB);\fR
|
||||
.br
|
||||
\fBint border(chtype ls, chtype rs, chtype ts, chtype bs,\fR
|
||||
\fBchtype tl, chtype tr, chtype bl, chtype br);\fR
|
||||
\fBint wborder(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIls\fP\fB, chtype \fP\fIrs\fP\fB,\fR
|
||||
\fBchtype \fP\fIts\fP\fB, chtype \fP\fIbs\fP\fB, chtype \fP\fItl\fP\fB, chtype \fP\fItr\fP\fB,\fR
|
||||
\fBchtype \fP\fIbl\fP\fB, chtype \fP\fIbr\fP\fB);\fR
|
||||
.sp
|
||||
\fBint box(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIverch\fP\fB, chtype \fP\fIhorch\fP\fB);\fR
|
||||
.sp
|
||||
\fBint hline(chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint wborder(WINDOW *win, chtype ls, chtype rs,\fR
|
||||
\fBchtype ts, chtype bs, chtype tl, chtype tr,\fR
|
||||
\fBchtype bl, chtype br);\fR
|
||||
\fBint whline(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint box(WINDOW *win, chtype verch, chtype horch);\fR
|
||||
\fBint vline(chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint hline(chtype ch, int n);\fR
|
||||
\fBint wvline(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.sp
|
||||
\fBint mvhline(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint whline(WINDOW *win, chtype ch, int n);\fR
|
||||
\fBint mvwhline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint vline(chtype ch, int n);\fR
|
||||
\fBint mvvline(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint wvline(WINDOW *win, chtype ch, int n);\fR
|
||||
.br
|
||||
\fBint mvhline(int y, int x, chtype ch, int n);\fR
|
||||
.br
|
||||
\fBint mvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
|
||||
.br
|
||||
\fBint mvvline(int y, int x, chtype ch, int n);\fR
|
||||
.br
|
||||
\fBint mvwvline(WINDOW *, int y, int x, chtype ch, int n);\fR
|
||||
\fBint mvwvline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The \fBborder\fR, \fBwborder\fR and \fBbox\fR routines
|
||||
|
@ -27,10 +27,14 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_clear.3x,v 1.17 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_clear.3x,v 1.20 2020/10/24 09:19:37 tom Exp $
|
||||
.TH curs_clear 3X ""
|
||||
.na
|
||||
.hy 0
|
||||
.de bP
|
||||
.ie n .IP \(bu 4
|
||||
.el .IP \(bu 2
|
||||
..
|
||||
.SH NAME
|
||||
\fBerase\fR,
|
||||
\fBwerase\fR,
|
||||
@ -43,23 +47,23 @@
|
||||
.ad
|
||||
.hy
|
||||
.SH SYNOPSIS
|
||||
\fB# include <curses.h>\fR
|
||||
\fB#include <curses.h>\fR
|
||||
.sp
|
||||
\fBint erase(void);\fR
|
||||
.br
|
||||
\fBint werase(WINDOW *win);\fR
|
||||
.br
|
||||
\fBint werase(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.sp
|
||||
\fBint clear(void);\fR
|
||||
.br
|
||||
\fBint wclear(WINDOW *win);\fR
|
||||
.br
|
||||
\fBint wclear(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.sp
|
||||
\fBint clrtobot(void);\fR
|
||||
.br
|
||||
\fBint wclrtobot(WINDOW *win);\fR
|
||||
.br
|
||||
\fBint wclrtobot(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.sp
|
||||
\fBint clrtoeol(void);\fR
|
||||
.br
|
||||
\fBint wclrtoeol(WINDOW *win);\fR
|
||||
\fBint wclrtoeol(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The \fBerase\fR and \fBwerase\fR routines copy blanks to every
|
||||
@ -82,12 +86,14 @@ Blanks created by erasure have the current background rendition (as set
|
||||
by \fBwbkgdset\fR) merged into them.
|
||||
.SH RETURN VALUE
|
||||
All routines return the integer \fBOK\fR on success and \fBERR\fP on failure.
|
||||
The SVr4.0 manual says "or a
|
||||
non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
|
||||
.PP
|
||||
X/Open defines no error conditions.
|
||||
In this implementation,
|
||||
functions using a window pointer parameter return an error if it is null.
|
||||
.bP
|
||||
functions using a window pointer parameter return an error if it is null
|
||||
.bP
|
||||
\fBwclrtoeol\fP returns an error
|
||||
if the cursor position is about to wrap.
|
||||
.SH NOTES
|
||||
Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
|
||||
\fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
|
||||
@ -97,6 +103,12 @@ The
|
||||
standard specifies that they return \fBERR\fR on failure, but specifies no
|
||||
error conditions.
|
||||
.PP
|
||||
The SVr4.0 manual says that these functions could
|
||||
return "a non-negative integer if \fBimmedok\fR is set",
|
||||
referring to the return-value of \fBwrefresh\fP.
|
||||
In that implementation, \fBwrefresh\fP would return a count of
|
||||
the number of characters written to the terminal.
|
||||
.PP
|
||||
Some historic curses implementations had, as an undocumented feature, the
|
||||
ability to do the equivalent of \fBclearok(..., 1)\fR by saying
|
||||
\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_color.3x,v 1.62 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_color.3x,v 1.63 2020/10/24 09:35:23 tom Exp $
|
||||
.TH curs_color 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -66,31 +66,31 @@
|
||||
.br
|
||||
\fBbool can_change_color(void);\fR
|
||||
.sp
|
||||
\fBint init_pair(short pair, short f, short b);\fR
|
||||
\fBint init_pair(short \fP\fIpair\fP\fB, short \fP\fIf\fP\fB, short \fP\fIb\fP\fB);\fR
|
||||
.br
|
||||
\fBint init_color(short color, short r, short g, short b);\fR
|
||||
\fBint init_color(short \fP\fIcolor\fP\fB, short \fP\fIr\fP\fB, short \fP\fIg\fP\fB, short \fP\fIb\fP\fB);\fR
|
||||
.br
|
||||
/* extensions */
|
||||
.br
|
||||
\fBint init_extended_pair(int pair, int f, int b);\fR
|
||||
\fBint init_extended_pair(int \fP\fIpair\fP\fB, int \fP\fIf\fP\fB, int \fP\fIb\fP\fB);\fR
|
||||
.br
|
||||
\fBint init_extended_color(int color, int r, int g, int b);\fR
|
||||
\fBint init_extended_color(int \fP\fIcolor\fP\fB, int \fP\fIr\fP\fB, int \fP\fIg\fP\fB, int \fP\fIb\fP\fB);\fR
|
||||
.sp
|
||||
\fBint color_content(short color, short *r, short *g, short *b);\fR
|
||||
\fBint color_content(short \fP\fIcolor\fP\fB, short *\fP\fIr\fP\fB, short *\fP\fIg\fP\fB, short *\fP\fIb\fP\fB);\fR
|
||||
.br
|
||||
\fBint pair_content(short pair, short *f, short *b);\fR
|
||||
\fBint pair_content(short \fP\fIpair\fP\fB, short *\fP\fIf\fP\fB, short *\fP\fIb\fP\fB);\fR
|
||||
.br
|
||||
/* extensions */
|
||||
.br
|
||||
\fBint extended_color_content(int color, int *r, int *g, int *b);\fR
|
||||
\fBint extended_color_content(int \fP\fIcolor\fP\fB, int *\fP\fIr\fP\fB, int *\fP\fIg\fP\fB, int *\fP\fIb\fP\fB);\fR
|
||||
.br
|
||||
\fBint extended_pair_content(int pair, int *f, int *b);\fR
|
||||
\fBint extended_pair_content(int \fP\fIpair\fP\fB, int *\fP\fIf\fP\fB, int *\fP\fIb\fP\fB);\fR
|
||||
.sp
|
||||
/* extensions */
|
||||
.br
|
||||
\fBvoid reset_color_pairs(void);\fR
|
||||
.sp
|
||||
\fBint COLOR_PAIR(int n);\fR
|
||||
\fBint COLOR_PAIR(int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBPAIR_NUMBER(\fR\fIattrs\fR\fB);\fP
|
||||
.br
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_delch.3x,v 1.14 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_delch.3x,v 1.15 2020/10/24 09:36:43 tom Exp $
|
||||
.TH curs_delch 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -43,11 +43,11 @@
|
||||
.sp
|
||||
\fBint delch(void);\fR
|
||||
.br
|
||||
\fBint wdelch(WINDOW *win);\fR
|
||||
\fBint wdelch(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvdelch(int y, int x);\fR
|
||||
\fBint mvdelch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvwdelch(WINDOW *win, int y, int x);\fR
|
||||
\fBint mvwdelch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
These routines delete the character under the cursor; all characters to the
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_deleteln.3x,v 1.15 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_deleteln.3x,v 1.17 2020/10/18 00:28:51 tom Exp $
|
||||
.TH curs_deleteln 3X ""
|
||||
.SH NAME
|
||||
\fBdeleteln\fR,
|
||||
@ -41,15 +41,15 @@
|
||||
.sp
|
||||
\fBint deleteln(void);\fR
|
||||
.br
|
||||
\fBint wdeleteln(WINDOW *win);\fR
|
||||
.br
|
||||
\fBint insdelln(int n);\fR
|
||||
.br
|
||||
\fBint winsdelln(WINDOW *win, int n);\fR
|
||||
\fBint wdeleteln(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.sp
|
||||
\fBint insdelln(int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint winsdelln(WINDOW *\fP\fIwin\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.sp
|
||||
\fBint insertln(void);\fR
|
||||
.br
|
||||
\fBint winsertln(WINDOW *win);\fR
|
||||
\fBint winsertln(WINDOW *\fP\fIwin\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The \fBdeleteln\fR and \fBwdeleteln\fR routines delete the line under the
|
||||
|
@ -29,7 +29,7 @@
|
||||
.\"
|
||||
.\" Author: Thomas E. Dickey 1999-on
|
||||
.\"
|
||||
.\" $Id: curs_extend.3x,v 1.23 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_extend.3x,v 1.24 2020/10/24 09:37:07 tom Exp $
|
||||
.TH curs_extend 3X ""
|
||||
.SH NAME
|
||||
\fBcurses_version\fP,
|
||||
@ -40,7 +40,7 @@
|
||||
.sp
|
||||
\fBconst char * curses_version(void);\fP
|
||||
.br
|
||||
\fBint use_extended_names(bool enable);\fP
|
||||
\fBint use_extended_names(bool \fP\fIenable\fP\fB);\fP
|
||||
.SH DESCRIPTION
|
||||
These functions are extensions to the curses library
|
||||
which do not fit easily into other categories.
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_get_wch.3x,v 1.13 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_get_wch.3x,v 1.14 2020/10/17 23:17:05 tom Exp $
|
||||
.TH curs_get_wch 3X ""
|
||||
.na
|
||||
.hy 0
|
||||
@ -57,7 +57,7 @@
|
||||
\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
|
||||
.br
|
||||
\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint unget_wch(const wchar_t \fR\fIwch\fR\fB);\fR
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_get_wstr.3x,v 1.20 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_get_wstr.3x,v 1.21 2020/10/17 23:17:24 tom Exp $
|
||||
.TH curs_get_wstr 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -61,7 +61,7 @@
|
||||
\fBint wget_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint wgetn_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint mvget_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
|
||||
.br
|
||||
\fBint mvgetn_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
|
||||
|
@ -28,7 +28,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_getch.3x,v 1.55 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_getch.3x,v 1.57 2020/12/19 21:38:20 tom Exp $
|
||||
.TH curs_getch 3X ""
|
||||
.na
|
||||
.hy 0
|
||||
@ -55,12 +55,14 @@
|
||||
\fBint getch(void);\fR
|
||||
.br
|
||||
\fBint wgetch(WINDOW *\fP\fIwin);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint mvgetch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvwgetch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
.sp
|
||||
\fBint ungetch(int \fP\fIch\fP\fB);\fR
|
||||
.sp
|
||||
/* extension */
|
||||
.br
|
||||
\fBint has_key(int \fP\fIch\fP\fB);\fR
|
||||
.br
|
||||
@ -404,9 +406,9 @@ any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro.
|
||||
.SH SEE ALSO
|
||||
\fBcurses\fR(3X),
|
||||
\fBcurs_inopts\fR(3X),
|
||||
\fBcurs_outopts\fR(3X),
|
||||
\fBcurs_mouse\fR(3X),
|
||||
\fBcurs_move\fR(3X),
|
||||
\fBcurs_outopts\fR(3X),
|
||||
\fBcurs_refresh\fR(3X),
|
||||
\fBcurs_variables\fR(3X),
|
||||
\fBresizeterm\fR(3X).
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_getstr.3x,v 1.29 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_getstr.3x,v 1.31 2020/10/18 00:27:44 tom Exp $
|
||||
.TH curs_getstr 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -53,21 +53,21 @@
|
||||
.SH SYNOPSIS
|
||||
\fB#include <curses.h>\fR
|
||||
.sp
|
||||
\fBint getstr(char *str);\fR
|
||||
\fBint getstr(char *\fP\fIstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint getnstr(char *str, int n);\fR
|
||||
\fBint getnstr(char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint wgetstr(WINDOW *win, char *str);\fR
|
||||
\fBint wgetstr(WINDOW *\fP\fIwin\fP\fB, char *\fP\fIstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint wgetnstr(WINDOW *win, char *str, int n);\fR
|
||||
\fBint wgetnstr(WINDOW *\fP\fIwin\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.sp
|
||||
\fBint mvgetstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvgetstr(int y, int x, char *str);\fR
|
||||
\fBint mvwgetstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvwgetstr(WINDOW *win, int y, int x, char *str);\fR
|
||||
\fBint mvgetnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
\fBint mvgetnstr(int y, int x, char *str, int n);\fR
|
||||
.br
|
||||
\fBint mvwgetnstr(WINDOW *, int y, int x, char *str, int n);\fR
|
||||
\fBint mvwgetnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The function \fBgetstr\fR is equivalent to a series of calls to \fBgetch\fR,
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_getyx.3x,v 1.19 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_getyx.3x,v 1.20 2020/10/24 09:38:43 tom Exp $
|
||||
.TH curs_getyx 3X ""
|
||||
.SH NAME
|
||||
\fBgetyx\fR,
|
||||
@ -37,13 +37,13 @@
|
||||
.SH SYNOPSIS
|
||||
\fB#include <curses.h>\fR
|
||||
.sp
|
||||
\fBvoid getyx(WINDOW *win, int y, int x);\fR
|
||||
\fBvoid getyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
\fBvoid getparyx(WINDOW *win, int y, int x);\fR
|
||||
\fBvoid getparyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
\fBvoid getbegyx(WINDOW *win, int y, int x);\fR
|
||||
\fBvoid getbegyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
\fBvoid getmaxyx(WINDOW *win, int y, int x);\fR
|
||||
\fBvoid getmaxyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
The \fBgetyx\fR macro places the current cursor position of the given window in
|
||||
|
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: curs_in_wch.3x,v 1.9 2020/02/02 23:34:34 tom Exp $
|
||||
.\" $Id: curs_in_wch.3x,v 1.10 2020/10/17 23:19:29 tom Exp $
|
||||
.TH curs_in_wch 3X ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -43,11 +43,11 @@
|
||||
.sp
|
||||
\fBint in_wch(cchar_t *\fR\fIwcval\fR\fB);\fR
|
||||
.br
|
||||
\fBint win_wch(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
|
||||
.sp
|
||||
\fBint mvin_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
|
||||
.br
|
||||
\fBint mvwin_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
|
||||
.br
|
||||
\fBint win_wch(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
|
||||
.SH DESCRIPTION
|
||||
These functions extract the complex character and rendition from
|
||||
the current position in the named window into the \fBcchar_t\fR object
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user